@@ -31,6 +31,9 @@ import {
3131 TextInputType ,
3232 TextAreaInputType ,
3333 SwitchInputType ,
34+ HMACEncryptionType ,
35+ RSAEncryptionType ,
36+ ECDSAEncryptionType ,
3437} from '../constants' ;
3538import { UpdateEnvVariables } from '../graphql/mutation' ;
3639import { getObjectDiff , capitalizeFirstLetter } from '../utils' ;
@@ -48,6 +51,8 @@ interface envVarTypes {
4851 JWT_TYPE : string ;
4952 JWT_SECRET : string ;
5053 JWT_ROLE_CLAIM : string ;
54+ JWT_PRIVATE_KEY : string ;
55+ JWT_PUBLIC_KEY : string ;
5156 REDIS_URL : string ;
5257 SMTP_HOST : string ;
5358 SMTP_PORT : string ;
@@ -92,6 +97,8 @@ export default function Environment() {
9297 JWT_TYPE : '' ,
9398 JWT_SECRET : '' ,
9499 JWT_ROLE_CLAIM : '' ,
100+ JWT_PRIVATE_KEY : '' ,
101+ JWT_PUBLIC_KEY : '' ,
95102 REDIS_URL : '' ,
96103 SMTP_HOST : '' ,
97104 SMTP_PORT : '' ,
@@ -177,7 +184,6 @@ export default function Environment() {
177184 const {
178185 data : { _env : envData } ,
179186 } = await client . query ( EnvVariablesQuery ) . toPromise ( ) ;
180-
181187 const diff = getObjectDiff ( envVariables , envData ) ;
182188 const updatedEnvVariables = diff . reduce (
183189 ( acc : any , property : string ) => ( {
@@ -374,39 +380,67 @@ export default function Environment() {
374380 < Flex w = "30%" justifyContent = "start" alignItems = "center" >
375381 < Text fontSize = "sm" > JWT Type:</ Text >
376382 </ Flex >
377- < Center w = "70%" >
378- < Flex w = "100%" justifyContent = "space-between" >
379- < Flex flex = "2" >
383+ < Flex w = "70%" >
384+ < InputField
385+ variables = { envVariables }
386+ setVariables = { setEnvVariables }
387+ inputType = { SelectInputType . JWT_TYPE }
388+ value = { SelectInputType . JWT_TYPE }
389+ options = { {
390+ ...HMACEncryptionType ,
391+ ...RSAEncryptionType ,
392+ ...ECDSAEncryptionType ,
393+ } }
394+ />
395+ </ Flex >
396+ </ Flex >
397+ { Object . values ( HMACEncryptionType ) . includes ( envVariables . JWT_TYPE ) ? (
398+ < Flex >
399+ < Flex w = "30%" justifyContent = "start" alignItems = "center" >
400+ < Text fontSize = "sm" > JWT Secret</ Text >
401+ </ Flex >
402+ < Center w = "70%" >
403+ < InputField
404+ variables = { envVariables }
405+ setVariables = { setEnvVariables }
406+ fieldVisibility = { fieldVisibility }
407+ setFieldVisibility = { setFieldVisibility }
408+ inputType = { HiddenInputType . JWT_SECRET }
409+ />
410+ </ Center >
411+ </ Flex >
412+ ) : (
413+ < >
414+ < Flex >
415+ < Flex w = "30%" justifyContent = "start" alignItems = "center" >
416+ < Text fontSize = "sm" > Public Key</ Text >
417+ </ Flex >
418+ < Center w = "70%" >
380419 < InputField
381420 variables = { envVariables }
382421 setVariables = { setEnvVariables }
383- inputType = { SelectInputType . JWT_TYPE }
384- isDisabled = { true }
385- defaultValue = { SelectInputType . JWT_TYPE }
422+ inputType = { TextAreaInputType . JWT_PUBLIC_KEY }
423+ placeholder = "Add public key here"
424+ minH = "25vh"
386425 />
426+ </ Center >
427+ </ Flex >
428+ < Flex >
429+ < Flex w = "30%" justifyContent = "start" alignItems = "center" >
430+ < Text fontSize = "sm" > Private Key</ Text >
387431 </ Flex >
388- < Flex flex = "3" justifyContent = "center" alignItems = "center" >
389- < Text fontSize = "sm" >
390- More JWT types will be enabled in upcoming releases.
391- </ Text >
392- </ Flex >
432+ < Center w = "70%" >
433+ < InputField
434+ variables = { envVariables }
435+ setVariables = { setEnvVariables }
436+ inputType = { TextAreaInputType . JWT_PRIVATE_KEY }
437+ placeholder = "Add private key here"
438+ minH = "25vh"
439+ />
440+ </ Center >
393441 </ Flex >
394- </ Center >
395- </ Flex >
396- < Flex >
397- < Flex w = "30%" justifyContent = "start" alignItems = "center" >
398- < Text fontSize = "sm" > JWT Secret</ Text >
399- </ Flex >
400- < Center w = "70%" >
401- < InputField
402- variables = { envVariables }
403- setVariables = { setEnvVariables }
404- fieldVisibility = { fieldVisibility }
405- setFieldVisibility = { setFieldVisibility }
406- inputType = { HiddenInputType . JWT_SECRET }
407- />
408- </ Center >
409- </ Flex >
442+ </ >
443+ ) }
410444 < Flex >
411445 < Flex w = "30%" justifyContent = "start" alignItems = "center" >
412446 < Text fontSize = "sm" > JWT Role Claim:</ Text >
0 commit comments