@memberjunction/encryption 5.14.0 → 5.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/EncryptionEngine.d.ts +48 -0
  2. package/dist/EncryptionEngine.d.ts.map +1 -1
  3. package/dist/EncryptionEngine.js +91 -2
  4. package/dist/EncryptionEngine.js.map +1 -1
  5. package/dist/EncryptionKeySourceBase.d.ts +33 -1
  6. package/dist/EncryptionKeySourceBase.d.ts.map +1 -1
  7. package/dist/EncryptionKeySourceBase.js.map +1 -1
  8. package/dist/EncryptionStartupValidator.d.ts +58 -0
  9. package/dist/EncryptionStartupValidator.d.ts.map +1 -0
  10. package/dist/EncryptionStartupValidator.js +185 -0
  11. package/dist/EncryptionStartupValidator.js.map +1 -0
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/interfaces.d.ts +23 -0
  17. package/dist/interfaces.d.ts.map +1 -1
  18. package/dist/providers/AWSKMSKeySource.d.ts +8 -0
  19. package/dist/providers/AWSKMSKeySource.d.ts.map +1 -1
  20. package/dist/providers/AWSKMSKeySource.js +76 -0
  21. package/dist/providers/AWSKMSKeySource.js.map +1 -1
  22. package/dist/providers/AzureKeyVaultKeySource.d.ts +8 -0
  23. package/dist/providers/AzureKeyVaultKeySource.d.ts.map +1 -1
  24. package/dist/providers/AzureKeyVaultKeySource.js +86 -2
  25. package/dist/providers/AzureKeyVaultKeySource.js.map +1 -1
  26. package/dist/providers/ConfigFileKeySource.d.ts +8 -0
  27. package/dist/providers/ConfigFileKeySource.d.ts.map +1 -1
  28. package/dist/providers/ConfigFileKeySource.js +65 -0
  29. package/dist/providers/ConfigFileKeySource.js.map +1 -1
  30. package/dist/providers/EnvVarKeySource.d.ts +8 -0
  31. package/dist/providers/EnvVarKeySource.d.ts.map +1 -1
  32. package/dist/providers/EnvVarKeySource.js +69 -0
  33. package/dist/providers/EnvVarKeySource.js.map +1 -1
  34. package/package.json +6 -6
@@ -290,6 +290,9 @@ export declare class EncryptionEngine extends BaseSingleton<EncryptionEngine> {
290
290
  * Call after key rotation or configuration changes to ensure
291
291
  * fresh data is loaded. The base class metadata caches are
292
292
  * handled separately via RefreshAllItems().
293
+ *
294
+ * Key material buffers are explicitly zeroed before removal
295
+ * to minimize the window where sensitive bytes linger in memory.
293
296
  */
294
297
  ClearCaches(): void;
295
298
  /**
@@ -299,6 +302,22 @@ export declare class EncryptionEngine extends BaseSingleton<EncryptionEngine> {
299
302
  * when you need to completely refresh all cached data.
300
303
  */
301
304
  ClearAllCaches(): Promise<void>;
305
+ /**
306
+ * Zeros all key material buffers and clears the cache.
307
+ *
308
+ * Overwrites each cached Buffer with 0x00 bytes before removing
309
+ * references, reducing the window where key material persists
310
+ * in process memory awaiting garbage collection.
311
+ *
312
+ * @private
313
+ */
314
+ private zeroAndClearKeyMaterialCache;
315
+ /**
316
+ * Zeros a single key material buffer (e.g. when replacing a stale cache entry).
317
+ *
318
+ * @private
319
+ */
320
+ private zeroBuffer;
302
321
  /**
303
322
  * Ensures the engine is configured before operations.
304
323
  *
@@ -353,5 +372,34 @@ export declare class EncryptionEngine extends BaseSingleton<EncryptionEngine> {
353
372
  * @private
354
373
  */
355
374
  private isValidUUID;
375
+ /**
376
+ * Validates that ALL active encryption keys have accessible key material.
377
+ *
378
+ * This method iterates through every active encryption key in the system,
379
+ * instantiates the appropriate key source provider, and delegates validation
380
+ * to each provider's `ValidateKeyAccessibility()` method. Each provider
381
+ * encapsulates its own validation logic and generates source-specific
382
+ * error messages with actionable remediation steps.
383
+ *
384
+ * The engine never touches key material during validation — that stays
385
+ * encapsulated within each provider.
386
+ *
387
+ * @param contextUser - User context for database access
388
+ * @returns Array of validation results, one per active key
389
+ */
390
+ ValidateAllKeys(contextUser?: UserInfo): Promise<Array<{
391
+ KeyName: string;
392
+ KeyId: string;
393
+ SourceType: string;
394
+ LookupValue: string;
395
+ IsAccessible: boolean;
396
+ Error?: string;
397
+ }>>;
398
+ /**
399
+ * Validates a single encryption key by delegating to its source provider.
400
+ *
401
+ * @private
402
+ */
403
+ private validateSingleKey;
356
404
  }
357
405
  //# sourceMappingURL=EncryptionEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionEngine.d.ts","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EncryptionEngine.d.ts","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"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"}
@@ -443,9 +443,12 @@ export class EncryptionEngine extends BaseSingleton {
443
443
  * Call after key rotation or configuration changes to ensure
444
444
  * fresh data is loaded. The base class metadata caches are
445
445
  * handled separately via RefreshAllItems().
446
+ *
447
+ * Key material buffers are explicitly zeroed before removal
448
+ * to minimize the window where sensitive bytes linger in memory.
446
449
  */
447
450
  ClearCaches() {
448
- this._keyMaterialCache.clear();
451
+ this.zeroAndClearKeyMaterialCache();
449
452
  // Don't clear source cache - sources can be reused
450
453
  }
451
454
  /**
@@ -455,12 +458,35 @@ export class EncryptionEngine extends BaseSingleton {
455
458
  * when you need to completely refresh all cached data.
456
459
  */
457
460
  async ClearAllCaches() {
458
- this._keyMaterialCache.clear();
461
+ this.zeroAndClearKeyMaterialCache();
459
462
  await this.RefreshAllItems();
460
463
  }
461
464
  // ========================================================================
462
465
  // PRIVATE METHODS
463
466
  // ========================================================================
467
+ /**
468
+ * Zeros all key material buffers and clears the cache.
469
+ *
470
+ * Overwrites each cached Buffer with 0x00 bytes before removing
471
+ * references, reducing the window where key material persists
472
+ * in process memory awaiting garbage collection.
473
+ *
474
+ * @private
475
+ */
476
+ zeroAndClearKeyMaterialCache() {
477
+ for (const entry of this._keyMaterialCache.values()) {
478
+ entry.value.fill(0);
479
+ }
480
+ this._keyMaterialCache.clear();
481
+ }
482
+ /**
483
+ * Zeros a single key material buffer (e.g. when replacing a stale cache entry).
484
+ *
485
+ * @private
486
+ */
487
+ zeroBuffer(buf) {
488
+ buf.fill(0);
489
+ }
464
490
  /**
465
491
  * Ensures the engine is configured before operations.
466
492
  *
@@ -613,6 +639,10 @@ export class EncryptionEngine extends BaseSingleton {
613
639
  if (cached && cached.expiry > new Date()) {
614
640
  return cached.value;
615
641
  }
642
+ // Zero the stale buffer before replacing it
643
+ if (cached) {
644
+ this.zeroBuffer(cached.value);
645
+ }
616
646
  // Get or create the key source
617
647
  const source = await this.getOrCreateKeySource(config.source.driverClass);
618
648
  // Get key from source
@@ -703,5 +733,64 @@ export class EncryptionEngine extends BaseSingleton {
703
733
  const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
704
734
  return uuidPattern.test(value);
705
735
  }
736
+ // ========================================================================
737
+ // KEY VALIDATION
738
+ // ========================================================================
739
+ /**
740
+ * Validates that ALL active encryption keys have accessible key material.
741
+ *
742
+ * This method iterates through every active encryption key in the system,
743
+ * instantiates the appropriate key source provider, and delegates validation
744
+ * to each provider's `ValidateKeyAccessibility()` method. Each provider
745
+ * encapsulates its own validation logic and generates source-specific
746
+ * error messages with actionable remediation steps.
747
+ *
748
+ * The engine never touches key material during validation — that stays
749
+ * encapsulated within each provider.
750
+ *
751
+ * @param contextUser - User context for database access
752
+ * @returns Array of validation results, one per active key
753
+ */
754
+ async ValidateAllKeys(contextUser) {
755
+ await this.ensureConfigured(contextUser);
756
+ const activeKeys = this.ActiveEncryptionKeys;
757
+ // Validate all keys concurrently — each validation is independent
758
+ return Promise.all(activeKeys.map(key => this.validateSingleKey(key)));
759
+ }
760
+ /**
761
+ * Validates a single encryption key by delegating to its source provider.
762
+ *
763
+ * @private
764
+ */
765
+ async validateSingleKey(key) {
766
+ const result = {
767
+ KeyName: key.Name,
768
+ KeyId: key.ID,
769
+ SourceType: '',
770
+ LookupValue: key.KeyLookupValue || '',
771
+ IsAccessible: false,
772
+ Error: undefined
773
+ };
774
+ try {
775
+ // Validate metadata configuration (key, algorithm, source all active)
776
+ const keyConfig = this.buildKeyConfiguration(key.ID);
777
+ result.SourceType = keyConfig.source.driverClass;
778
+ result.LookupValue = keyConfig.source.lookupValue;
779
+ // Get or create the key source provider
780
+ const source = await this.getOrCreateKeySource(keyConfig.source.driverClass);
781
+ // Delegate validation entirely to the provider — each provider
782
+ // encapsulates its own validation logic, error messages, and
783
+ // remediation guidance. Key material never flows back to the engine.
784
+ const expectedBytes = keyConfig.algorithm.keyLengthBits / 8;
785
+ const validation = await source.ValidateKeyAccessibility(keyConfig.source.lookupValue, keyConfig.keyVersion, expectedBytes);
786
+ result.IsAccessible = validation.IsAccessible;
787
+ result.Error = validation.Error;
788
+ }
789
+ catch (err) {
790
+ const message = err instanceof Error ? err.message : String(err);
791
+ result.Error = message;
792
+ }
793
+ return result;
794
+ }
706
795
  }
707
796
  //# sourceMappingURL=EncryptionEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionEngine.js","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EncryptionEngine.js","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@
39
39
  *
40
40
  * @module @memberjunction/encryption
41
41
  */
42
- import { EncryptionKeySourceConfig } from './interfaces.js';
42
+ import { EncryptionKeySourceConfig, KeyValidationResult } from './interfaces.js';
43
43
  /**
44
44
  * Abstract base class for encryption key source providers.
45
45
  *
@@ -169,6 +169,38 @@ export declare abstract class EncryptionKeySourceBase {
169
169
  * ```
170
170
  */
171
171
  abstract KeyExists(lookupValue: string): Promise<boolean>;
172
+ /**
173
+ * Validates that a specific key is accessible and usable from this source.
174
+ *
175
+ * Each provider implements source-specific validation logic and returns
176
+ * actionable remediation messages on failure. This keeps key-source-specific
177
+ * knowledge encapsulated within the provider rather than in the engine.
178
+ *
179
+ * ## Contract
180
+ *
181
+ * - **MUST NOT** expose key material to the caller — key bytes stay inside the provider
182
+ * - **MUST** return `{ IsAccessible: true }` only if key material can be retrieved
183
+ * and passes all validation (exists, valid format, correct length if expectedKeyLengthBytes provided)
184
+ * - **MUST** return a human-readable `Error` string with remediation steps on failure
185
+ * - **SHOULD** catch all exceptions internally and return them as Error strings
186
+ *
187
+ * @param lookupValue - Identifier for the key in this source
188
+ * @param keyVersion - Optional version for versioned key stores
189
+ * @param expectedKeyLengthBytes - Optional expected key length in bytes for validation.
190
+ * When provided, the provider should retrieve the key and verify its length matches.
191
+ * @returns Promise resolving to a validation result
192
+ *
193
+ * @example
194
+ * ```typescript
195
+ * const result = await source.ValidateKeyAccessibility('MJ_BASE_ENCRYPTION_KEY', '1', 32);
196
+ * if (!result.IsAccessible) {
197
+ * console.error(result.Error);
198
+ * // "Environment variable "MJ_BASE_ENCRYPTION_KEY" is not set.
199
+ * // Set it with: export MJ_BASE_ENCRYPTION_KEY=$(openssl rand -base64 32)"
200
+ * }
201
+ * ```
202
+ */
203
+ abstract ValidateKeyAccessibility(lookupValue: string, keyVersion?: string, expectedKeyLengthBytes?: number): Promise<KeyValidationResult>;
172
204
  /**
173
205
  * Optional async initialization for sources that need setup.
174
206
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionKeySourceBase.d.ts","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,8BAAsB,uBAAuB;IACzC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE7C;;;;;;;;OAQG;gBACS,MAAM,CAAC,EAAE,yBAAyB;IAI9C;;;;;;;OAOG;IACH,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC;IAElC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,qBAAqB,IAAI,OAAO;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;;;;;;;;;OAaG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;;OAYG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjC"}
1
+ {"version":3,"file":"EncryptionKeySourceBase.d.ts","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,8BAAsB,uBAAuB;IACzC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE7C;;;;;;;;OAQG;gBACS,MAAM,CAAC,EAAE,yBAAyB;IAI9C;;;;;;;OAOG;IACH,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC;IAElC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,qBAAqB,IAAI,OAAO;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,wBAAwB,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAE/B;;;;;;;;;;;;;OAaG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;;OAYG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionKeySourceBase.js","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAgB,uBAAuB;IASzC;;;;;;;;OAQG;IACH,YAAY,MAAkC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;IAChC,CAAC;IAsFD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,UAAU;QACZ,oDAAoD;QACpD,0CAA0C;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO;QACT,6CAA6C;QAC7C,+CAA+C;IACnD,CAAC;CACJ"}
1
+ {"version":3,"file":"EncryptionKeySourceBase.js","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAgB,uBAAuB;IASzC;;;;;;;;OAQG;IACH,YAAY,MAAkC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;IAChC,CAAC;IA2HD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,UAAU;QACZ,oDAAoD;QACpD,0CAA0C;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO;QACT,6CAA6C;QAC7C,+CAA+C;IACnD,CAAC;CACJ"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview Startup validator for encryption key configuration.
3
+ *
4
+ * This class is registered with @RegisterForStartup to run during server bootstrap.
5
+ * It performs two critical validations:
6
+ *
7
+ * 1. **Field metadata check**: Ensures no entity fields have `Encrypt=true` with a null
8
+ * `EncryptionKeyID`, which would cause saves to be rejected at runtime.
9
+ *
10
+ * 2. **Key material accessibility**: Probes each active encryption key's source provider
11
+ * (env vars, config files, cloud vaults) to verify key material is actually accessible.
12
+ * This catches misconfigurations (missing env vars, unreachable vaults) at startup
13
+ * rather than at the first save/load attempt.
14
+ *
15
+ * Priority is set to 200 (runs after EncryptionEngineBase at default 100) to ensure
16
+ * encryption metadata is loaded before validation begins.
17
+ *
18
+ * @module @memberjunction/encryption
19
+ */
20
+ import { IMetadataProvider, IStartupSink, UserInfo } from '@memberjunction/core';
21
+ import { BaseSingleton } from '@memberjunction/global';
22
+ /**
23
+ * Validates encryption key configuration at server startup.
24
+ *
25
+ * Registered with `@RegisterForStartup` at priority 200 (after metadata engines load).
26
+ * Severity is 'error' — validation failures are logged prominently but don't prevent
27
+ * startup, allowing the server to come up for non-encryption operations while making
28
+ * the misconfiguration impossible to miss.
29
+ */
30
+ export declare class EncryptionStartupValidator extends BaseSingleton<EncryptionStartupValidator> implements IStartupSink {
31
+ protected constructor();
32
+ static get Instance(): EncryptionStartupValidator;
33
+ /**
34
+ * Called by StartupManager during server bootstrap.
35
+ *
36
+ * Performs two critical validations:
37
+ * 1. Checks that no entity fields have `Encrypt=true` with a null `EncryptionKeyID`
38
+ * 2. Validates that all active encryption keys have accessible key material
39
+ */
40
+ HandleStartup(contextUser?: UserInfo, _provider?: IMetadataProvider): Promise<void>;
41
+ /**
42
+ * Finds entity fields that have Encrypt=true but no EncryptionKeyID set.
43
+ */
44
+ private findMisconfiguredEncryptedFields;
45
+ /**
46
+ * Logs a prominent warning about fields configured for encryption but missing key references.
47
+ */
48
+ private logMisconfiguredFieldsWarning;
49
+ /**
50
+ * Logs a prominent error about encryption keys that cannot access their key material.
51
+ */
52
+ private logKeyValidationFailures;
53
+ /**
54
+ * Wraps text to the specified max line length, breaking at word boundaries.
55
+ */
56
+ private wrapText;
57
+ }
58
+ //# sourceMappingURL=EncryptionStartupValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionStartupValidator.d.ts","sourceRoot":"","sources":["../src/EncryptionStartupValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAgC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,aAAa,CAAC,0BAA0B,CAAE,YAAW,YAAY;IAC7G,SAAS;IAIT,WAAkB,QAAQ,IAAI,0BAA0B,CAEvD;IAED;;;;;;OAMG;IACU,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoChG;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAkBxC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,QAAQ;CAgBnB"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * @fileoverview Startup validator for encryption key configuration.
3
+ *
4
+ * This class is registered with @RegisterForStartup to run during server bootstrap.
5
+ * It performs two critical validations:
6
+ *
7
+ * 1. **Field metadata check**: Ensures no entity fields have `Encrypt=true` with a null
8
+ * `EncryptionKeyID`, which would cause saves to be rejected at runtime.
9
+ *
10
+ * 2. **Key material accessibility**: Probes each active encryption key's source provider
11
+ * (env vars, config files, cloud vaults) to verify key material is actually accessible.
12
+ * This catches misconfigurations (missing env vars, unreachable vaults) at startup
13
+ * rather than at the first save/load attempt.
14
+ *
15
+ * Priority is set to 200 (runs after EncryptionEngineBase at default 100) to ensure
16
+ * encryption metadata is loaded before validation begins.
17
+ *
18
+ * @module @memberjunction/encryption
19
+ */
20
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
21
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
24
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
25
+ };
26
+ var __metadata = (this && this.__metadata) || function (k, v) {
27
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
28
+ };
29
+ import { Metadata, RegisterForStartup } from '@memberjunction/core';
30
+ import { BaseSingleton } from '@memberjunction/global';
31
+ import { EncryptionEngine } from './EncryptionEngine.js';
32
+ /**
33
+ * Validates encryption key configuration at server startup.
34
+ *
35
+ * Registered with `@RegisterForStartup` at priority 200 (after metadata engines load).
36
+ * Severity is 'error' — validation failures are logged prominently but don't prevent
37
+ * startup, allowing the server to come up for non-encryption operations while making
38
+ * the misconfiguration impossible to miss.
39
+ */
40
+ let EncryptionStartupValidator = class EncryptionStartupValidator extends BaseSingleton {
41
+ constructor() {
42
+ super();
43
+ }
44
+ static get Instance() {
45
+ return super.getInstance();
46
+ }
47
+ /**
48
+ * Called by StartupManager during server bootstrap.
49
+ *
50
+ * Performs two critical validations:
51
+ * 1. Checks that no entity fields have `Encrypt=true` with a null `EncryptionKeyID`
52
+ * 2. Validates that all active encryption keys have accessible key material
53
+ */
54
+ async HandleStartup(contextUser, _provider) {
55
+ const engine = EncryptionEngine.Instance;
56
+ await engine.Config(false, contextUser);
57
+ let hasErrors = false;
58
+ // Phase 1: Check for fields marked Encrypt=true but missing EncryptionKeyID
59
+ const misconfiguredFields = this.findMisconfiguredEncryptedFields();
60
+ if (misconfiguredFields.length > 0) {
61
+ this.logMisconfiguredFieldsWarning(misconfiguredFields);
62
+ hasErrors = true;
63
+ }
64
+ // Phase 2: Validate all active keys have accessible key material
65
+ const activeKeys = engine.ActiveEncryptionKeys;
66
+ if (activeKeys.length > 0) {
67
+ const results = await engine.ValidateAllKeys(contextUser);
68
+ const failures = results.filter(r => !r.IsAccessible);
69
+ if (failures.length > 0) {
70
+ this.logKeyValidationFailures(failures, results.length);
71
+ hasErrors = true;
72
+ }
73
+ else {
74
+ console.log(` ✓ All ${results.length} encryption key(s) validated successfully`);
75
+ }
76
+ }
77
+ if (hasErrors) {
78
+ throw new Error('Encryption configuration validation failed. ' +
79
+ 'See console output above for details and remediation steps. ' +
80
+ 'The server will continue to start, but encrypted field operations may fail.');
81
+ }
82
+ }
83
+ /**
84
+ * Finds entity fields that have Encrypt=true but no EncryptionKeyID set.
85
+ */
86
+ findMisconfiguredEncryptedFields() {
87
+ const md = new Metadata();
88
+ const misconfigured = [];
89
+ for (const entity of md.Entities) {
90
+ for (const field of entity.Fields) {
91
+ if (field.Encrypt && !field.EncryptionKeyID) {
92
+ misconfigured.push({
93
+ entityName: entity.Name,
94
+ fieldName: field.Name
95
+ });
96
+ }
97
+ }
98
+ }
99
+ return misconfigured;
100
+ }
101
+ /**
102
+ * Logs a prominent warning about fields configured for encryption but missing key references.
103
+ */
104
+ logMisconfiguredFieldsWarning(fields) {
105
+ const border = '═'.repeat(70);
106
+ const lines = [
107
+ '',
108
+ `╔${border}╗`,
109
+ `║ ENCRYPTION CONFIGURATION WARNING`.padEnd(71) + `║`,
110
+ `║`.padEnd(71) + `║`,
111
+ `║ The following fields are marked Encrypt=true but have no`.padEnd(71) + `║`,
112
+ `║ EncryptionKeyID configured. Data in these fields will be REJECTED`.padEnd(71) + `║`,
113
+ `║ on save to prevent storing cleartext sensitive data.`.padEnd(71) + `║`,
114
+ `║`.padEnd(71) + `║`,
115
+ ];
116
+ for (const f of fields) {
117
+ lines.push(`║ • ${f.entityName}.${f.fieldName}`.padEnd(71) + `║`);
118
+ }
119
+ lines.push(`║`.padEnd(71) + `║`);
120
+ lines.push(`║ Fix: Set EncryptionKeyID on these EntityField records.`.padEnd(71) + `║`);
121
+ lines.push(`╚${border}╝`);
122
+ lines.push('');
123
+ console.error(lines.join('\n'));
124
+ }
125
+ /**
126
+ * Logs a prominent error about encryption keys that cannot access their key material.
127
+ */
128
+ logKeyValidationFailures(failures, totalKeys) {
129
+ const border = '═'.repeat(70);
130
+ const lines = [
131
+ '',
132
+ `╔${border}╗`,
133
+ `║ ENCRYPTION KEY VALIDATION FAILED`.padEnd(71) + `║`,
134
+ `║`.padEnd(71) + `║`,
135
+ `║ ${failures.length} of ${totalKeys} active encryption key(s) cannot access key material.`.padEnd(71) + `║`,
136
+ `║ Encrypted fields using these keys will FAIL on save/load.`.padEnd(71) + `║`,
137
+ `║`.padEnd(71) + `║`,
138
+ ];
139
+ for (const f of failures) {
140
+ lines.push(`║ Key: "${f.KeyName}"`.padEnd(71) + `║`);
141
+ lines.push(`║ Source: ${f.SourceType}`.padEnd(71) + `║`);
142
+ lines.push(`║ Lookup: ${f.LookupValue}`.padEnd(71) + `║`);
143
+ if (f.Error) {
144
+ // Wrap long error messages
145
+ const errorPrefix = ' Error: ';
146
+ const maxLineLen = 68 - errorPrefix.length;
147
+ const errorLines = this.wrapText(f.Error, maxLineLen);
148
+ for (let i = 0; i < errorLines.length; i++) {
149
+ const prefix = i === 0 ? errorPrefix : ' '.repeat(errorPrefix.length);
150
+ lines.push(`║ ${prefix}${errorLines[i]}`.padEnd(71) + `║`);
151
+ }
152
+ }
153
+ lines.push(`║`.padEnd(71) + `║`);
154
+ }
155
+ lines.push(`╚${border}╝`);
156
+ lines.push('');
157
+ console.error(lines.join('\n'));
158
+ }
159
+ /**
160
+ * Wraps text to the specified max line length, breaking at word boundaries.
161
+ */
162
+ wrapText(text, maxLen) {
163
+ const words = text.split(/\s+/);
164
+ const lines = [];
165
+ let current = '';
166
+ for (const word of words) {
167
+ if (current.length + word.length + 1 > maxLen && current.length > 0) {
168
+ lines.push(current);
169
+ current = word;
170
+ }
171
+ else {
172
+ current = current ? `${current} ${word}` : word;
173
+ }
174
+ }
175
+ if (current)
176
+ lines.push(current);
177
+ return lines.length > 0 ? lines : [''];
178
+ }
179
+ };
180
+ EncryptionStartupValidator = __decorate([
181
+ RegisterForStartup({ priority: 200, severity: 'error', description: 'Encryption key material validation' }),
182
+ __metadata("design:paramtypes", [])
183
+ ], EncryptionStartupValidator);
184
+ export { EncryptionStartupValidator };
185
+ //# sourceMappingURL=EncryptionStartupValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionStartupValidator.js","sourceRoot":"","sources":["../src/EncryptionStartupValidator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -59,9 +59,10 @@
59
59
  * @module @memberjunction/encryption
60
60
  * @packageDocumentation
61
61
  */
62
- export { EncryptionKeySourceConfig, EncryptedValueParts, KeyConfiguration, RotateKeyParams, RotateKeyResult, EnableFieldEncryptionParams, EnableFieldEncryptionResult } from './interfaces.js';
62
+ export { EncryptionKeySourceConfig, EncryptedValueParts, KeyConfiguration, KeyValidationResult, RotateKeyParams, RotateKeyResult, EnableFieldEncryptionParams, EnableFieldEncryptionResult } from './interfaces.js';
63
63
  export { EncryptionKeySourceBase } from './EncryptionKeySourceBase.js';
64
64
  export { EncryptionEngine } from './EncryptionEngine.js';
65
+ export { EncryptionStartupValidator } from './EncryptionStartupValidator.js';
65
66
  export { EnvVarKeySource } from './providers/EnvVarKeySource.js';
66
67
  export { ConfigFileKeySource } from './providers/ConfigFileKeySource.js';
67
68
  export { AWSKMSKeySource } from './providers/AWSKMSKeySource.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAGH,OAAO,EACH,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAGH,OAAO,EACH,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC"}
package/dist/index.js CHANGED
@@ -63,6 +63,8 @@
63
63
  export { EncryptionKeySourceBase } from './EncryptionKeySourceBase.js';
64
64
  // Core encryption engine
65
65
  export { EncryptionEngine } from './EncryptionEngine.js';
66
+ // Startup validation (auto-registered via @RegisterForStartup)
67
+ export { EncryptionStartupValidator } from './EncryptionStartupValidator.js';
66
68
  // Built-in key source providers
67
69
  export { EnvVarKeySource } from './providers/EnvVarKeySource.js';
68
70
  export { ConfigFileKeySource } from './providers/ConfigFileKeySource.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAaH,sCAAsC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,gCAAgC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAcH,sCAAsC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,+DAA+D;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,gCAAgC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC"}