@@ -43,7 +43,7 @@ function determineAppMode(): AppMode {
4343// ENCLAVED MODE CONFIGURATION
4444// ============================================================================
4545
46- const defaultEnclavedConfig : EnclavedConfig = {
46+ const defaultEnclavedConfig : Partial < EnclavedConfig > = {
4747 appMode : AppMode . ENCLAVED ,
4848 port : 3080 ,
4949 bind : 'localhost' ,
@@ -68,6 +68,12 @@ function determineTlsMode(): TlsMode {
6868}
6969
7070function enclavedEnvConfig ( ) : Partial < EnclavedConfig > {
71+ const kmsUrl = readEnvVar ( 'KMS_URL' ) ;
72+
73+ if ( ! kmsUrl ) {
74+ throw new Error ( 'KMS_URL environment variable is required and cannot be empty' ) ;
75+ }
76+
7177 return {
7278 appMode : AppMode . ENCLAVED ,
7379 port : Number ( readEnvVar ( 'MASTER_BITGO_EXPRESS_PORT' ) ) ,
@@ -80,6 +86,8 @@ function enclavedEnvConfig(): Partial<EnclavedConfig> {
8086 timeout : Number ( readEnvVar ( 'MASTER_BITGO_EXPRESS_TIMEOUT' ) ) ,
8187 keepAliveTimeout : Number ( readEnvVar ( 'MASTER_BITGO_EXPRESS_KEEP_ALIVE_TIMEOUT' ) ) ,
8288 headersTimeout : Number ( readEnvVar ( 'MASTER_BITGO_EXPRESS_HEADERS_TIMEOUT' ) ) ,
89+ // KMS settings
90+ kmsUrl,
8391 // TLS settings
8492 keyPath : readEnvVar ( 'MASTER_BITGO_EXPRESS_KEYPATH' ) ,
8593 crtPath : readEnvVar ( 'MASTER_BITGO_EXPRESS_CRTPATH' ) ,
@@ -95,7 +103,7 @@ function enclavedEnvConfig(): Partial<EnclavedConfig> {
95103
96104function mergeEnclavedConfigs ( ...configs : Partial < EnclavedConfig > [ ] ) : EnclavedConfig {
97105 function get < T extends keyof EnclavedConfig > ( k : T ) : EnclavedConfig [ T ] {
98- return configs . reduce (
106+ return ( configs as unknown as any [ ] ) . reduce (
99107 ( entry : EnclavedConfig [ T ] , config ) =>
100108 ! isNilOrNaN ( config [ k ] ) ? ( config [ k ] as EnclavedConfig [ T ] ) : entry ,
101109 defaultEnclavedConfig [ k ] ,
@@ -112,6 +120,7 @@ function mergeEnclavedConfigs(...configs: Partial<EnclavedConfig>[]): EnclavedCo
112120 timeout : get ( 'timeout' ) ,
113121 keepAliveTimeout : get ( 'keepAliveTimeout' ) ,
114122 headersTimeout : get ( 'headersTimeout' ) ,
123+ kmsUrl : get ( 'kmsUrl' ) ,
115124 keyPath : get ( 'keyPath' ) ,
116125 crtPath : get ( 'crtPath' ) ,
117126 tlsKey : get ( 'tlsKey' ) ,
0 commit comments