@astram/guard 0.13.0 → 0.15.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 (134) hide show
  1. package/dist/auth/auth.module.d.ts.map +1 -1
  2. package/dist/auth/auth.module.js +57 -30
  3. package/dist/auth/connections.d.ts +2 -2
  4. package/dist/auth/connections.d.ts.map +1 -1
  5. package/dist/auth/connections.js +4 -13
  6. package/dist/authentication/mariadb-api-key-store.d.ts +10 -1
  7. package/dist/authentication/mariadb-api-key-store.d.ts.map +1 -1
  8. package/dist/authentication/mariadb-api-key-store.js +20 -10
  9. package/dist/authentication/mariadb-credential-resolver.d.ts +8 -1
  10. package/dist/authentication/mariadb-credential-resolver.d.ts.map +1 -1
  11. package/dist/authentication/mariadb-credential-resolver.js +15 -5
  12. package/dist/authentication/mariadb-credential-writer.d.ts +6 -1
  13. package/dist/authentication/mariadb-credential-writer.d.ts.map +1 -1
  14. package/dist/authentication/mariadb-credential-writer.js +9 -3
  15. package/dist/authentication/mariadb-email-address-changer.d.ts +10 -1
  16. package/dist/authentication/mariadb-email-address-changer.d.ts.map +1 -1
  17. package/dist/authentication/mariadb-email-address-changer.js +22 -9
  18. package/dist/authentication/mariadb-email-change-token-store.d.ts +8 -1
  19. package/dist/authentication/mariadb-email-change-token-store.d.ts.map +1 -1
  20. package/dist/authentication/mariadb-email-change-token-store.js +18 -9
  21. package/dist/authentication/mariadb-mfa-device-store.d.ts +6 -1
  22. package/dist/authentication/mariadb-mfa-device-store.d.ts.map +1 -1
  23. package/dist/authentication/mariadb-mfa-device-store.js +22 -13
  24. package/dist/authentication/mariadb-profile-resolver.d.ts +6 -1
  25. package/dist/authentication/mariadb-profile-resolver.d.ts.map +1 -1
  26. package/dist/authentication/mariadb-profile-resolver.js +12 -6
  27. package/dist/authentication/mariadb-profile-writer.d.ts +6 -1
  28. package/dist/authentication/mariadb-profile-writer.d.ts.map +1 -1
  29. package/dist/authentication/mariadb-profile-writer.js +11 -4
  30. package/dist/authentication/mariadb-recovery-code-store.d.ts +6 -1
  31. package/dist/authentication/mariadb-recovery-code-store.d.ts.map +1 -1
  32. package/dist/authentication/mariadb-recovery-code-store.js +11 -5
  33. package/dist/authentication/mariadb-reset-token-store.d.ts +6 -1
  34. package/dist/authentication/mariadb-reset-token-store.d.ts.map +1 -1
  35. package/dist/authentication/mariadb-reset-token-store.js +11 -5
  36. package/dist/authentication/mariadb-session-sweeper.d.ts +6 -1
  37. package/dist/authentication/mariadb-session-sweeper.d.ts.map +1 -1
  38. package/dist/authentication/mariadb-session-sweeper.js +11 -5
  39. package/dist/authz/cross-tenant-grant-writer.d.ts.map +1 -1
  40. package/dist/authz/cross-tenant-grant-writer.js +4 -3
  41. package/dist/authz/list-scope-sql.d.ts +10 -2
  42. package/dist/authz/list-scope-sql.d.ts.map +1 -1
  43. package/dist/authz/list-scope-sql.js +4 -4
  44. package/dist/authz/mariadb-cross-tenant-grant-adapter.d.ts.map +1 -1
  45. package/dist/authz/mariadb-cross-tenant-grant-adapter.js +4 -3
  46. package/dist/authz/mariadb-list-scope-adapter.d.ts.map +1 -1
  47. package/dist/authz/mariadb-list-scope-adapter.js +4 -3
  48. package/dist/authz/mariadb-policy-store.d.ts.map +1 -1
  49. package/dist/authz/mariadb-policy-store.js +4 -3
  50. package/dist/authz/mariadb-record-rule-adapter.d.ts.map +1 -1
  51. package/dist/authz/mariadb-record-rule-adapter.js +4 -3
  52. package/dist/authz/mariadb-record-share-adapter.d.ts.map +1 -1
  53. package/dist/authz/mariadb-record-share-adapter.js +4 -3
  54. package/dist/authz/record-share-cascade.d.ts.map +1 -1
  55. package/dist/authz/record-share-cascade.js +4 -3
  56. package/dist/authz/record-share-writer.d.ts.map +1 -1
  57. package/dist/authz/record-share-writer.js +4 -3
  58. package/dist/authz/wire-record-authorization.d.ts +8 -0
  59. package/dist/authz/wire-record-authorization.d.ts.map +1 -1
  60. package/dist/authz/wire-record-authorization.js +14 -6
  61. package/dist/boot/boot-sequence.d.ts +4 -0
  62. package/dist/boot/boot-sequence.d.ts.map +1 -1
  63. package/dist/boot/boot-sequence.js +13 -1
  64. package/dist/boot/migration-ledger-check.d.ts +94 -0
  65. package/dist/boot/migration-ledger-check.d.ts.map +1 -0
  66. package/dist/boot/migration-ledger-check.js +280 -0
  67. package/dist/config/app-config.d.ts +72 -3
  68. package/dist/config/app-config.d.ts.map +1 -1
  69. package/dist/config/app-config.js +129 -7
  70. package/dist/config/config.module.d.ts +7 -0
  71. package/dist/config/config.module.d.ts.map +1 -1
  72. package/dist/config/config.module.js +13 -2
  73. package/dist/config/framework-schema-names.d.ts +29 -0
  74. package/dist/config/framework-schema-names.d.ts.map +1 -0
  75. package/dist/config/framework-schema-names.js +41 -0
  76. package/dist/config/loopback-host.d.ts +9 -0
  77. package/dist/config/loopback-host.d.ts.map +1 -0
  78. package/dist/config/loopback-host.js +19 -0
  79. package/dist/encryption/local-kek-crypto.d.ts +6 -0
  80. package/dist/encryption/local-kek-crypto.d.ts.map +1 -1
  81. package/dist/encryption/local-kek-crypto.js +8 -0
  82. package/dist/identity/identity-actions.d.ts +18 -7
  83. package/dist/identity/identity-actions.d.ts.map +1 -1
  84. package/dist/identity/identity-actions.js +16 -17
  85. package/dist/identity/module-registry.bridge.d.ts.map +1 -1
  86. package/dist/identity/module-registry.bridge.js +5 -3
  87. package/dist/identity/permission-facts.adapter.d.ts +7 -1
  88. package/dist/identity/permission-facts.adapter.d.ts.map +1 -1
  89. package/dist/identity/permission-facts.adapter.js +15 -6
  90. package/dist/index.d.ts +14 -3
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +68 -22
  93. package/dist/module/shield-tokens.d.ts +11 -0
  94. package/dist/module/shield-tokens.d.ts.map +1 -1
  95. package/dist/module/shield-tokens.js +12 -1
  96. package/dist/module/shield.module.d.ts +10 -0
  97. package/dist/module/shield.module.d.ts.map +1 -1
  98. package/dist/module/shield.module.js +78 -12
  99. package/dist/secrets/boot-secrets.d.ts +33 -0
  100. package/dist/secrets/boot-secrets.d.ts.map +1 -0
  101. package/dist/secrets/boot-secrets.js +180 -0
  102. package/dist/session/mariadb-session-record-store.d.ts +8 -1
  103. package/dist/session/mariadb-session-record-store.d.ts.map +1 -1
  104. package/dist/session/mariadb-session-record-store.js +23 -13
  105. package/dist/session/session-restriction-store.d.ts +8 -1
  106. package/dist/session/session-restriction-store.d.ts.map +1 -1
  107. package/dist/session/session-restriction-store.js +15 -5
  108. package/dist/storage/file-intake.interceptor.d.ts +54 -0
  109. package/dist/storage/file-intake.interceptor.d.ts.map +1 -0
  110. package/dist/storage/file-intake.interceptor.js +223 -0
  111. package/dist/storage/node-sha256-digest.d.ts +6 -0
  112. package/dist/storage/node-sha256-digest.d.ts.map +1 -0
  113. package/dist/storage/node-sha256-digest.js +15 -0
  114. package/dist/storage/object-store-boot-check.d.ts +16 -0
  115. package/dist/storage/object-store-boot-check.d.ts.map +1 -0
  116. package/dist/storage/object-store-boot-check.js +52 -0
  117. package/dist/storage/optional-peer.d.ts +10 -0
  118. package/dist/storage/optional-peer.d.ts.map +1 -0
  119. package/dist/storage/optional-peer.js +26 -0
  120. package/dist/storage/s3-object-store.d.ts +35 -0
  121. package/dist/storage/s3-object-store.d.ts.map +1 -0
  122. package/dist/storage/s3-object-store.js +238 -0
  123. package/dist/storage/storage.providers.d.ts +10 -0
  124. package/dist/storage/storage.providers.d.ts.map +1 -0
  125. package/dist/storage/storage.providers.js +104 -0
  126. package/migrations/1710000000006-CreateAuthzSchema.cjs +15 -4
  127. package/migrations/1710000000007-ExtendPermissionAndRolePermission.cjs +11 -3
  128. package/migrations/1710000000008-CreateAccessBundleTables.cjs +14 -4
  129. package/migrations/1710000000009-CreateRecordPermissionRule.cjs +15 -4
  130. package/migrations/1710000000014-CreateRecordShare.cjs +15 -4
  131. package/migrations/1710000000015-CreateScopeClosure.cjs +14 -4
  132. package/migrations/1710000000016-AlterCompanyParentFkRestrict.cjs +20 -9
  133. package/migrations/1710000000017-CreateServiceAccountKey.cjs +14 -4
  134. package/package.json +11 -3
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  */
17
17
  export { guardMigrationsDir } from './migrations-dir.js';
18
18
  export { buildIdentityModuleRegistry } from './identity/module-registry.bridge.js';
19
- export { MODULE_KEY, IDENTITY_ACTIONS, actionsFor } from './identity/identity-actions.js';
19
+ export { MODULE_KEY, IDENTITY_ACTIONS, CROSS_TENANT_GRANT_ACTIONS, RECORD_SHARE_ACTIONS, SERVICE_ACCOUNT_ACTIONS, actionsFor, actionsOf, } from './identity/identity-actions.js';
20
20
  export { ShieldModule, SHIELD_DECISION_AUTHORITY, SHIELD_RECORD_AUTHORIZATION, type ShieldModuleOptions, type ShieldModuleAsyncOptions, type RecordAuthorizationInputs, } from './module/shield.module.js';
21
21
  export { Public, Classified, CLASSIFICATION_METADATA, DEFAULT_CLASSIFIED_ACTION, normalizeClassification, } from './enforcement/classification.decorator.js';
22
22
  export type { Classification } from './enforcement/classification.decorator.js';
@@ -35,6 +35,14 @@ export { stubDecisionAuthority, type Effect, type CoreDecisionAuthority, type Co
35
35
  export { Argon2idPasswordHasher, argon2idHasherProvider, SHIELD_PASSWORD_HASHER, type Argon2idParams, } from './authentication/argon2id-password-hasher.js';
36
36
  export { LocalKekCrypto } from './encryption/local-kek-crypto.js';
37
37
  export { EncryptedFileSecretsProvider } from './secrets/encrypted-file-secrets.js';
38
+ export { resolveBootSecrets, createSecretsProviderFromEnv, assertNoUnresolvedSecretRefs, wasResolvedFromSecretRef, type ResolveBootSecretsOptions, } from './secrets/boot-secrets.js';
39
+ export { S3ObjectStore, type S3ObjectStoreConfig, type S3ObjectStoreOptions, } from './storage/s3-object-store.js';
40
+ export { NodeSha256Digest } from './storage/node-sha256-digest.js';
41
+ export { ObjectStoreBootCheck } from './storage/object-store-boot-check.js';
42
+ export { FileIntake, FILE_INTAKE_REQUEST_KEY, FILE_INTAKE_DEFAULT_MAX_BYTES, type FileIntakeOptions, type FileIntakeResult, } from './storage/file-intake.interceptor.js';
43
+ export type { ShieldStorageOption } from './storage/storage.providers.js';
44
+ export { SHIELD_OBJECT_STORE, SHIELD_FILE_INGEST } from './module/shield-tokens.js';
45
+ export { loadObjectStorageConfig, DEFAULT_OBJECT_STORAGE_MAX_BYTES, type ObjectStorageConfig, type LoadObjectStorageConfigOptions, } from './config/app-config.js';
38
46
  export { MariaDbSessionRecordStore, SHIELD_SESSION_RECORD_STORE, RedisHotSessionStore, SHIELD_HOT_SESSION_STORE, RedisRecentRotationStore, type RedisRecentRotationStoreOptions, CryptoTokenGenerator, Sha256RefreshTokenHasher, SystemClock, cryptoTokenGeneratorProvider, refreshHasherProvider, systemClockProvider, SHIELD_TOKEN_GENERATOR, SHIELD_REFRESH_HASHER, SHIELD_CLOCK, HotRevokingSessionRecordStore, type SessionHotRevoker, type LineageSessionLookup, SHIELD_SESSION_LIFETIMES, ROTATE_GRACE_MS, accessBindingTtlMs, } from './session/index.js';
39
47
  export { MariaDbRecordPermissionRuleAdapter, SHIELD_RECORD_RULE_PORT, type RuleQueryable, } from './authz/mariadb-record-rule-adapter.js';
40
48
  export { MariaDbPolicyStore, SHIELD_POLICY_STORE, type RuleQueryable as PolicyStoreQueryable, } from './authz/mariadb-policy-store.js';
@@ -53,9 +61,12 @@ export { SHIELD_PERMISSION_VERSION_CACHE } from './auth/tokens.js';
53
61
  export { SHIELD_SESSION_RESTRICTIONS } from './auth/tokens.js';
54
62
  export { MariaDbSessionRestrictionStore, type SessionRestrictionStore, type SessionRebuildFacts, } from './session/session-restriction-store.js';
55
63
  export { buildListScopeFn, type ListScopeFn } from './authz/wire-record-authorization.js';
56
- export { BootSequence, assertPoolBudget } from './boot/boot-sequence.js';
64
+ export { BootSequence, assertPoolBudget, frameworkDatabasesLogLine } from './boot/boot-sequence.js';
65
+ export { FrameworkMigrationLedgerCheck, MigrationLedgerRegistry, SHIELD_MIGRATION_LEDGER_REGISTRY, assertFrameworkMigrationsApplied, frameworkMigrationIds, resolveMigrationLedger, resolveMigrationLedgerCheck, type MigrationLedgerCheckLocation, type FrameworkMigrationsCheckOptions, type FrameworkMigrationsCheckResult, type LedgerCheckLogger, type LedgerQuery, type MigrationLedgerLocation, } from './boot/migration-ledger-check.js';
57
66
  export { APP_CONFIG } from './config/config.module.js';
58
- export { loadAppConfig, loadPoolBudget, evaluatePoolBudget, DEFAULT_POOL_BUDGET, SCHEMA_SVC_POOL_HARD_CAP, type AppConfig, type PoolBudgetConfig, type PoolBudgetEvaluation, type RuntimeAccountPools, loadDbConfig, loadRedisConfig, loadSessionLifetimes, loadRefreshHmacKey, assertRefreshHmacKey, DEFAULT_DB_CONFIG, DEFAULT_REDIS_URL, type DbConfig, type RedisConfig, type SessionLifetimeOverrides, loadLoginIpLimit, loadRefreshReplayWindowMs, DEFAULT_LOGIN_IP_LIMIT, isDevOrTestNodeEnv, type LoginIpLimitConfig, loadDbTlsConfig, type DbTlsConfig, } from './config/app-config.js';
67
+ export { FRAMEWORK_SCHEMAS } from './config/config.module.js';
68
+ export type { FrameworkSchemaNames } from './config/framework-schema-names.js';
69
+ export { frameworkSchemasOf, loadAppConfig, loadPoolBudget, evaluatePoolBudget, DEFAULT_POOL_BUDGET, SCHEMA_SVC_POOL_HARD_CAP, type AppConfig, type PoolBudgetConfig, type PoolBudgetEvaluation, type RuntimeAccountPools, loadDbConfig, loadRedisConfig, loadSessionLifetimes, loadRefreshHmacKey, assertRefreshHmacKey, DEFAULT_DB_CONFIG, DEFAULT_REDIS_URL, type DbConfig, type RedisConfig, type SessionLifetimeOverrides, loadLoginIpLimit, loadRefreshReplayWindowMs, DEFAULT_LOGIN_IP_LIMIT, isDevOrTestNodeEnv, type LoginIpLimitConfig, loadDbTlsConfig, type DbTlsConfig, } from './config/app-config.js';
59
70
  export { mariadbSslOption } from './auth/connections.js';
60
71
  export { SHIELD_REDIS, SHIELD_CREDENTIAL_RESOLVER, SHIELD_PROFILE_RESOLVER, SHIELD_AUTHENTICATOR, SHIELD_SESSION_AUTHORITY, SHIELD_CREDENTIAL_WRITER, SHIELD_RESET_TOKEN_STORE, SHIELD_EMAIL_CHANGE_TOKEN_STORE, SHIELD_EMAIL_SENDER, SHIELD_RECOVERY_CODE_STORE, SHIELD_PROFILE_WRITER, SHIELD_SESSION_SWEEPER, SHIELD_AUDIT_SINK, SHIELD_MFA_DEVICE_STORE, SHIELD_TOTP_VERIFIER_OVERRIDE, } from './auth/tokens.js';
61
72
  export { MariaDbCredentialResolver } from './authentication/mariadb-credential-resolver.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,10 +16,10 @@
16
16
  * `@nestjs/core`, `reflect-metadata`, `rxjs` so the host owns one copy of each.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.SHIELD_TOKEN_GENERATOR = exports.systemClockProvider = exports.refreshHasherProvider = exports.cryptoTokenGeneratorProvider = exports.SystemClock = exports.Sha256RefreshTokenHasher = exports.CryptoTokenGenerator = exports.RedisRecentRotationStore = exports.SHIELD_HOT_SESSION_STORE = exports.RedisHotSessionStore = exports.SHIELD_SESSION_RECORD_STORE = exports.MariaDbSessionRecordStore = exports.EncryptedFileSecretsProvider = exports.LocalKekCrypto = exports.SHIELD_PASSWORD_HASHER = exports.argon2idHasherProvider = exports.Argon2idPasswordHasher = exports.stubDecisionAuthority = exports.GlobalEnforcementGuard = exports.NO_SESSION_FACTS = exports.SHIELD_SESSION_FACTS_ALS = exports.MariaDbApiKeyStore = exports.isApiKey = exports.extractBearerToken = exports.principalFromClaims = exports.resolveRequestAuth = exports.resolveRequestPrincipal = exports.SessionTokenBinder = exports.SHIELD_SERVICE_AUTHENTICATOR = exports.SHIELD_SESSION_TOKEN_BINDER = exports.CatalogGatabilityError = exports.CatalogReconciler = exports.OperationInventoryScanner = exports.uuidArrayField = exports.optionalUuidField = exports.uuidField = exports.UuidPipe = exports.normalizeClassification = exports.DEFAULT_CLASSIFIED_ACTION = exports.CLASSIFICATION_METADATA = exports.Classified = exports.Public = exports.SHIELD_RECORD_AUTHORIZATION = exports.SHIELD_DECISION_AUTHORITY = exports.ShieldModule = exports.actionsFor = exports.IDENTITY_ACTIONS = exports.MODULE_KEY = exports.buildIdentityModuleRegistry = exports.guardMigrationsDir = void 0;
20
- exports.loadSessionLifetimes = exports.loadRedisConfig = exports.loadDbConfig = exports.SCHEMA_SVC_POOL_HARD_CAP = exports.DEFAULT_POOL_BUDGET = exports.evaluatePoolBudget = exports.loadPoolBudget = exports.loadAppConfig = exports.APP_CONFIG = exports.assertPoolBudget = exports.BootSequence = exports.buildListScopeFn = exports.MariaDbSessionRestrictionStore = exports.SHIELD_SESSION_RESTRICTIONS = exports.SHIELD_PERMISSION_VERSION_CACHE = exports.DEFAULT_PERMISSION_VERSION_TTL_MS = exports.PERMISSION_VERSION_KEY_PREFIX = exports.RedisPermissionVersionCache = exports.withRedisPermissionVersion = exports.buildRecordAuthorization = exports.SHIELD_OPERATION_AUTHORITY_PORT = exports.ManifestOperationAuthorityAdapter = exports.GrantStoreUnavailableError = exports.InvalidGrantError = exports.GrantNotPermittedError = exports.SHIELD_CROSS_TENANT_GRANT_WRITER = exports.CrossTenantGrantWriter = exports.SHIELD_CROSS_TENANT_GRANT_PORT = exports.MariaDbCrossTenantGrantAdapter = exports.makeShareDeleteCascade = exports.ShareStoreUnavailableError = exports.ShareNotPermittedError = exports.SHIELD_RECORD_SHARE_WRITER = exports.RecordShareWriter = exports.SHIELD_RECORD_SHARE_PORT = exports.MariaDbRecordShareAdapter = exports.UnknownScopeFieldError = exports.translateListScope = exports.SHIELD_LIST_SCOPE_PORT = exports.MariaDbListScopeAdapter = exports.SHIELD_POLICY_STORE = exports.MariaDbPolicyStore = exports.SHIELD_RECORD_RULE_PORT = exports.MariaDbRecordPermissionRuleAdapter = exports.accessBindingTtlMs = exports.ROTATE_GRACE_MS = exports.SHIELD_SESSION_LIFETIMES = exports.HotRevokingSessionRecordStore = exports.SHIELD_CLOCK = exports.SHIELD_REFRESH_HASHER = void 0;
21
- exports.AccountController = exports.generateRecoveryCodes = exports.buildOtpauthUri = exports.generateTotpSecret = exports.SHIELD_LOGIN_TOTP_VERIFIER = exports.SHIELD_MFA_STEP_UP = exports.SHIELD_MFA_LIMITER = exports.challengeMatches = exports.credentialFingerprint = exports.CredentialMfaStepUp = exports.RedisPendingMfaStore = exports.PendingMfaStore = exports.AuthController = exports.SHIELD_SCOPE_SUBTREE_RESOLVER = exports.SHIELD_SESSION_FACTS_PROJECTOR = exports.ProfileNameTakenError = exports.MariaDbEmailAddressChanger = exports.maskEmail = exports.isEmailShaped = exports.canonicalEmail = exports.hmacSha1 = exports.resolveTotpVerifier = exports.makeDefaultTotpVerifier = exports.AuthModule = exports.MariaDbCredentialResolver = exports.SHIELD_TOTP_VERIFIER_OVERRIDE = exports.SHIELD_MFA_DEVICE_STORE = exports.SHIELD_AUDIT_SINK = exports.SHIELD_SESSION_SWEEPER = exports.SHIELD_PROFILE_WRITER = exports.SHIELD_RECOVERY_CODE_STORE = exports.SHIELD_EMAIL_SENDER = exports.SHIELD_EMAIL_CHANGE_TOKEN_STORE = exports.SHIELD_RESET_TOKEN_STORE = exports.SHIELD_CREDENTIAL_WRITER = exports.SHIELD_SESSION_AUTHORITY = exports.SHIELD_AUTHENTICATOR = exports.SHIELD_PROFILE_RESOLVER = exports.SHIELD_CREDENTIAL_RESOLVER = exports.SHIELD_REDIS = exports.mariadbSslOption = exports.loadDbTlsConfig = exports.isDevOrTestNodeEnv = exports.DEFAULT_LOGIN_IP_LIMIT = exports.loadRefreshReplayWindowMs = exports.loadLoginIpLimit = exports.DEFAULT_REDIS_URL = exports.DEFAULT_DB_CONFIG = exports.assertRefreshHmacKey = exports.loadRefreshHmacKey = void 0;
22
- exports.ScopeUnknownParentError = exports.ScopeDepthError = exports.ScopeCycleError = exports.buildClosureRows = exports.ConfirmEmailController = void 0;
19
+ exports.FileIntake = exports.ObjectStoreBootCheck = exports.NodeSha256Digest = exports.S3ObjectStore = exports.wasResolvedFromSecretRef = exports.assertNoUnresolvedSecretRefs = exports.createSecretsProviderFromEnv = exports.resolveBootSecrets = exports.EncryptedFileSecretsProvider = exports.LocalKekCrypto = exports.SHIELD_PASSWORD_HASHER = exports.argon2idHasherProvider = exports.Argon2idPasswordHasher = exports.stubDecisionAuthority = exports.GlobalEnforcementGuard = exports.NO_SESSION_FACTS = exports.SHIELD_SESSION_FACTS_ALS = exports.MariaDbApiKeyStore = exports.isApiKey = exports.extractBearerToken = exports.principalFromClaims = exports.resolveRequestAuth = exports.resolveRequestPrincipal = exports.SessionTokenBinder = exports.SHIELD_SERVICE_AUTHENTICATOR = exports.SHIELD_SESSION_TOKEN_BINDER = exports.CatalogGatabilityError = exports.CatalogReconciler = exports.OperationInventoryScanner = exports.uuidArrayField = exports.optionalUuidField = exports.uuidField = exports.UuidPipe = exports.normalizeClassification = exports.DEFAULT_CLASSIFIED_ACTION = exports.CLASSIFICATION_METADATA = exports.Classified = exports.Public = exports.SHIELD_RECORD_AUTHORIZATION = exports.SHIELD_DECISION_AUTHORITY = exports.ShieldModule = exports.actionsOf = exports.actionsFor = exports.SERVICE_ACCOUNT_ACTIONS = exports.RECORD_SHARE_ACTIONS = exports.CROSS_TENANT_GRANT_ACTIONS = exports.IDENTITY_ACTIONS = exports.MODULE_KEY = exports.buildIdentityModuleRegistry = exports.guardMigrationsDir = void 0;
20
+ exports.withRedisPermissionVersion = exports.buildRecordAuthorization = exports.SHIELD_OPERATION_AUTHORITY_PORT = exports.ManifestOperationAuthorityAdapter = exports.GrantStoreUnavailableError = exports.InvalidGrantError = exports.GrantNotPermittedError = exports.SHIELD_CROSS_TENANT_GRANT_WRITER = exports.CrossTenantGrantWriter = exports.SHIELD_CROSS_TENANT_GRANT_PORT = exports.MariaDbCrossTenantGrantAdapter = exports.makeShareDeleteCascade = exports.ShareStoreUnavailableError = exports.ShareNotPermittedError = exports.SHIELD_RECORD_SHARE_WRITER = exports.RecordShareWriter = exports.SHIELD_RECORD_SHARE_PORT = exports.MariaDbRecordShareAdapter = exports.UnknownScopeFieldError = exports.translateListScope = exports.SHIELD_LIST_SCOPE_PORT = exports.MariaDbListScopeAdapter = exports.SHIELD_POLICY_STORE = exports.MariaDbPolicyStore = exports.SHIELD_RECORD_RULE_PORT = exports.MariaDbRecordPermissionRuleAdapter = exports.accessBindingTtlMs = exports.ROTATE_GRACE_MS = exports.SHIELD_SESSION_LIFETIMES = exports.HotRevokingSessionRecordStore = exports.SHIELD_CLOCK = exports.SHIELD_REFRESH_HASHER = exports.SHIELD_TOKEN_GENERATOR = exports.systemClockProvider = exports.refreshHasherProvider = exports.cryptoTokenGeneratorProvider = exports.SystemClock = exports.Sha256RefreshTokenHasher = exports.CryptoTokenGenerator = exports.RedisRecentRotationStore = exports.SHIELD_HOT_SESSION_STORE = exports.RedisHotSessionStore = exports.SHIELD_SESSION_RECORD_STORE = exports.MariaDbSessionRecordStore = exports.DEFAULT_OBJECT_STORAGE_MAX_BYTES = exports.loadObjectStorageConfig = exports.SHIELD_FILE_INGEST = exports.SHIELD_OBJECT_STORE = exports.FILE_INTAKE_DEFAULT_MAX_BYTES = exports.FILE_INTAKE_REQUEST_KEY = void 0;
21
+ exports.SHIELD_SESSION_SWEEPER = exports.SHIELD_PROFILE_WRITER = exports.SHIELD_RECOVERY_CODE_STORE = exports.SHIELD_EMAIL_SENDER = exports.SHIELD_EMAIL_CHANGE_TOKEN_STORE = exports.SHIELD_RESET_TOKEN_STORE = exports.SHIELD_CREDENTIAL_WRITER = exports.SHIELD_SESSION_AUTHORITY = exports.SHIELD_AUTHENTICATOR = exports.SHIELD_PROFILE_RESOLVER = exports.SHIELD_CREDENTIAL_RESOLVER = exports.SHIELD_REDIS = exports.mariadbSslOption = exports.loadDbTlsConfig = exports.isDevOrTestNodeEnv = exports.DEFAULT_LOGIN_IP_LIMIT = exports.loadRefreshReplayWindowMs = exports.loadLoginIpLimit = exports.DEFAULT_REDIS_URL = exports.DEFAULT_DB_CONFIG = exports.assertRefreshHmacKey = exports.loadRefreshHmacKey = exports.loadSessionLifetimes = exports.loadRedisConfig = exports.loadDbConfig = exports.SCHEMA_SVC_POOL_HARD_CAP = exports.DEFAULT_POOL_BUDGET = exports.evaluatePoolBudget = exports.loadPoolBudget = exports.loadAppConfig = exports.frameworkSchemasOf = exports.FRAMEWORK_SCHEMAS = exports.APP_CONFIG = exports.resolveMigrationLedgerCheck = exports.resolveMigrationLedger = exports.frameworkMigrationIds = exports.assertFrameworkMigrationsApplied = exports.SHIELD_MIGRATION_LEDGER_REGISTRY = exports.MigrationLedgerRegistry = exports.FrameworkMigrationLedgerCheck = exports.frameworkDatabasesLogLine = exports.assertPoolBudget = exports.BootSequence = exports.buildListScopeFn = exports.MariaDbSessionRestrictionStore = exports.SHIELD_SESSION_RESTRICTIONS = exports.SHIELD_PERMISSION_VERSION_CACHE = exports.DEFAULT_PERMISSION_VERSION_TTL_MS = exports.PERMISSION_VERSION_KEY_PREFIX = exports.RedisPermissionVersionCache = void 0;
22
+ exports.ScopeUnknownParentError = exports.ScopeDepthError = exports.ScopeCycleError = exports.buildClosureRows = exports.ConfirmEmailController = exports.AccountController = exports.generateRecoveryCodes = exports.buildOtpauthUri = exports.generateTotpSecret = exports.SHIELD_LOGIN_TOTP_VERIFIER = exports.SHIELD_MFA_STEP_UP = exports.SHIELD_MFA_LIMITER = exports.challengeMatches = exports.credentialFingerprint = exports.CredentialMfaStepUp = exports.RedisPendingMfaStore = exports.PendingMfaStore = exports.AuthController = exports.SHIELD_SCOPE_SUBTREE_RESOLVER = exports.SHIELD_SESSION_FACTS_PROJECTOR = exports.ProfileNameTakenError = exports.MariaDbEmailAddressChanger = exports.maskEmail = exports.isEmailShaped = exports.canonicalEmail = exports.hmacSha1 = exports.resolveTotpVerifier = exports.makeDefaultTotpVerifier = exports.AuthModule = exports.MariaDbCredentialResolver = exports.SHIELD_TOTP_VERIFIER_OVERRIDE = exports.SHIELD_MFA_DEVICE_STORE = exports.SHIELD_AUDIT_SINK = void 0;
23
23
  // Framework authz migrations (shield_authz DDL — permission / role_permission /
24
24
  // authz_permission_version). Absolute path a consumer's `@astram/migrate` setup merges in.
25
25
  var migrations_dir_js_1 = require("./migrations-dir.js");
@@ -36,7 +36,11 @@ Object.defineProperty(exports, "buildIdentityModuleRegistry", { enumerable: true
36
36
  var identity_actions_js_1 = require("./identity/identity-actions.js");
37
37
  Object.defineProperty(exports, "MODULE_KEY", { enumerable: true, get: function () { return identity_actions_js_1.MODULE_KEY; } });
38
38
  Object.defineProperty(exports, "IDENTITY_ACTIONS", { enumerable: true, get: function () { return identity_actions_js_1.IDENTITY_ACTIONS; } });
39
+ Object.defineProperty(exports, "CROSS_TENANT_GRANT_ACTIONS", { enumerable: true, get: function () { return identity_actions_js_1.CROSS_TENANT_GRANT_ACTIONS; } });
40
+ Object.defineProperty(exports, "RECORD_SHARE_ACTIONS", { enumerable: true, get: function () { return identity_actions_js_1.RECORD_SHARE_ACTIONS; } });
41
+ Object.defineProperty(exports, "SERVICE_ACCOUNT_ACTIONS", { enumerable: true, get: function () { return identity_actions_js_1.SERVICE_ACCOUNT_ACTIONS; } });
39
42
  Object.defineProperty(exports, "actionsFor", { enumerable: true, get: function () { return identity_actions_js_1.actionsFor; } });
43
+ Object.defineProperty(exports, "actionsOf", { enumerable: true, get: function () { return identity_actions_js_1.actionsOf; } });
40
44
  // The single registration seam.
41
45
  var shield_module_js_1 = require("./module/shield.module.js");
42
46
  Object.defineProperty(exports, "ShieldModule", { enumerable: true, get: function () { return shield_module_js_1.ShieldModule; } });
@@ -129,6 +133,32 @@ Object.defineProperty(exports, "LocalKekCrypto", { enumerable: true, get: functi
129
133
  // real values are resolved at boot. Vault / AWS SM / GCP SM implement the same port.
130
134
  var encrypted_file_secrets_js_1 = require("./secrets/encrypted-file-secrets.js");
131
135
  Object.defineProperty(exports, "EncryptedFileSecretsProvider", { enumerable: true, get: function () { return encrypted_file_secrets_js_1.EncryptedFileSecretsProvider; } });
136
+ // Boot `secret-ref:` resolution (FILE_STORAGE SPEC §5 L-N): `resolveBootSecrets()` first in
137
+ // main.ts; the provider is built from `SECRETS_*`; the backstop aborts boot on a leftover reference.
138
+ var boot_secrets_js_1 = require("./secrets/boot-secrets.js");
139
+ Object.defineProperty(exports, "resolveBootSecrets", { enumerable: true, get: function () { return boot_secrets_js_1.resolveBootSecrets; } });
140
+ Object.defineProperty(exports, "createSecretsProviderFromEnv", { enumerable: true, get: function () { return boot_secrets_js_1.createSecretsProviderFromEnv; } });
141
+ Object.defineProperty(exports, "assertNoUnresolvedSecretRefs", { enumerable: true, get: function () { return boot_secrets_js_1.assertNoUnresolvedSecretRefs; } });
142
+ Object.defineProperty(exports, "wasResolvedFromSecretRef", { enumerable: true, get: function () { return boot_secrets_js_1.wasResolvedFromSecretRef; } });
143
+ // Object storage (FILE_STORAGE SPEC §5 E-H, §6): the SSE-S3 adapter, the node sha256 digest, the
144
+ // env loader, the boot check, the multipart intake interceptor and the two DI tokens
145
+ // (`ShieldModule.forRoot({ storage })` binds them).
146
+ var s3_object_store_js_1 = require("./storage/s3-object-store.js");
147
+ Object.defineProperty(exports, "S3ObjectStore", { enumerable: true, get: function () { return s3_object_store_js_1.S3ObjectStore; } });
148
+ var node_sha256_digest_js_1 = require("./storage/node-sha256-digest.js");
149
+ Object.defineProperty(exports, "NodeSha256Digest", { enumerable: true, get: function () { return node_sha256_digest_js_1.NodeSha256Digest; } });
150
+ var object_store_boot_check_js_1 = require("./storage/object-store-boot-check.js");
151
+ Object.defineProperty(exports, "ObjectStoreBootCheck", { enumerable: true, get: function () { return object_store_boot_check_js_1.ObjectStoreBootCheck; } });
152
+ var file_intake_interceptor_js_1 = require("./storage/file-intake.interceptor.js");
153
+ Object.defineProperty(exports, "FileIntake", { enumerable: true, get: function () { return file_intake_interceptor_js_1.FileIntake; } });
154
+ Object.defineProperty(exports, "FILE_INTAKE_REQUEST_KEY", { enumerable: true, get: function () { return file_intake_interceptor_js_1.FILE_INTAKE_REQUEST_KEY; } });
155
+ Object.defineProperty(exports, "FILE_INTAKE_DEFAULT_MAX_BYTES", { enumerable: true, get: function () { return file_intake_interceptor_js_1.FILE_INTAKE_DEFAULT_MAX_BYTES; } });
156
+ var shield_tokens_js_1 = require("./module/shield-tokens.js");
157
+ Object.defineProperty(exports, "SHIELD_OBJECT_STORE", { enumerable: true, get: function () { return shield_tokens_js_1.SHIELD_OBJECT_STORE; } });
158
+ Object.defineProperty(exports, "SHIELD_FILE_INGEST", { enumerable: true, get: function () { return shield_tokens_js_1.SHIELD_FILE_INGEST; } });
159
+ var app_config_js_1 = require("./config/app-config.js");
160
+ Object.defineProperty(exports, "loadObjectStorageConfig", { enumerable: true, get: function () { return app_config_js_1.loadObjectStorageConfig; } });
161
+ Object.defineProperty(exports, "DEFAULT_OBJECT_STORAGE_MAX_BYTES", { enumerable: true, get: function () { return app_config_js_1.DEFAULT_OBJECT_STORAGE_MAX_BYTES; } });
132
162
  // The Session storage/crypto adapters (ADR-0003 / ADR-0013): the concrete durable
133
163
  // (MariaDB) + hot (Redis) stores, the node:crypto token generator, the keyed HMAC
134
164
  // refresh hasher, and the system clock — all implementing `@astram/core`'s Session
@@ -287,6 +317,17 @@ Object.defineProperty(exports, "buildListScopeFn", { enumerable: true, get: func
287
317
  var boot_sequence_js_1 = require("./boot/boot-sequence.js");
288
318
  Object.defineProperty(exports, "BootSequence", { enumerable: true, get: function () { return boot_sequence_js_1.BootSequence; } });
289
319
  Object.defineProperty(exports, "assertPoolBudget", { enumerable: true, get: function () { return boot_sequence_js_1.assertPoolBudget; } });
320
+ Object.defineProperty(exports, "frameworkDatabasesLogLine", { enumerable: true, get: function () { return boot_sequence_js_1.frameworkDatabasesLogLine; } });
321
+ // configurable-framework-db spec 5.D: the boot-time migration ledger check. Guard runs it for its
322
+ // own migrations; `@astram/identity` runs the same helper for its own (ADR-0003).
323
+ var migration_ledger_check_js_1 = require("./boot/migration-ledger-check.js");
324
+ Object.defineProperty(exports, "FrameworkMigrationLedgerCheck", { enumerable: true, get: function () { return migration_ledger_check_js_1.FrameworkMigrationLedgerCheck; } });
325
+ Object.defineProperty(exports, "MigrationLedgerRegistry", { enumerable: true, get: function () { return migration_ledger_check_js_1.MigrationLedgerRegistry; } });
326
+ Object.defineProperty(exports, "SHIELD_MIGRATION_LEDGER_REGISTRY", { enumerable: true, get: function () { return migration_ledger_check_js_1.SHIELD_MIGRATION_LEDGER_REGISTRY; } });
327
+ Object.defineProperty(exports, "assertFrameworkMigrationsApplied", { enumerable: true, get: function () { return migration_ledger_check_js_1.assertFrameworkMigrationsApplied; } });
328
+ Object.defineProperty(exports, "frameworkMigrationIds", { enumerable: true, get: function () { return migration_ledger_check_js_1.frameworkMigrationIds; } });
329
+ Object.defineProperty(exports, "resolveMigrationLedger", { enumerable: true, get: function () { return migration_ledger_check_js_1.resolveMigrationLedger; } });
330
+ Object.defineProperty(exports, "resolveMigrationLedgerCheck", { enumerable: true, get: function () { return migration_ledger_check_js_1.resolveMigrationLedgerCheck; } });
290
331
  // Application config surface (port / environment / ADR-0018 pool budget). The
291
332
  // consumer skeleton reads `loadAppConfig()` for its HTTP port; the boot assertion
292
333
  // validates the pool budget. The `APP_CONFIG` DI token is exported; `ConfigModule`
@@ -294,29 +335,34 @@ Object.defineProperty(exports, "assertPoolBudget", { enumerable: true, get: func
294
335
  // the one seam can honor caller-supplied config.
295
336
  var config_module_js_1 = require("./config/config.module.js");
296
337
  Object.defineProperty(exports, "APP_CONFIG", { enumerable: true, get: function () { return config_module_js_1.APP_CONFIG; } });
297
- var app_config_js_1 = require("./config/app-config.js");
298
- Object.defineProperty(exports, "loadAppConfig", { enumerable: true, get: function () { return app_config_js_1.loadAppConfig; } });
299
- Object.defineProperty(exports, "loadPoolBudget", { enumerable: true, get: function () { return app_config_js_1.loadPoolBudget; } });
300
- Object.defineProperty(exports, "evaluatePoolBudget", { enumerable: true, get: function () { return app_config_js_1.evaluatePoolBudget; } });
301
- Object.defineProperty(exports, "DEFAULT_POOL_BUDGET", { enumerable: true, get: function () { return app_config_js_1.DEFAULT_POOL_BUDGET; } });
302
- Object.defineProperty(exports, "SCHEMA_SVC_POOL_HARD_CAP", { enumerable: true, get: function () { return app_config_js_1.SCHEMA_SVC_POOL_HARD_CAP; } });
338
+ // configurable-framework-db (ADR-0037): the resolved framework database names, provided
339
+ // app-wide by `ShieldModule`; identity and app modules inject it instead of `shield_*` literals.
340
+ var config_module_js_2 = require("./config/config.module.js");
341
+ Object.defineProperty(exports, "FRAMEWORK_SCHEMAS", { enumerable: true, get: function () { return config_module_js_2.FRAMEWORK_SCHEMAS; } });
342
+ var app_config_js_2 = require("./config/app-config.js");
343
+ Object.defineProperty(exports, "frameworkSchemasOf", { enumerable: true, get: function () { return app_config_js_2.frameworkSchemasOf; } });
344
+ Object.defineProperty(exports, "loadAppConfig", { enumerable: true, get: function () { return app_config_js_2.loadAppConfig; } });
345
+ Object.defineProperty(exports, "loadPoolBudget", { enumerable: true, get: function () { return app_config_js_2.loadPoolBudget; } });
346
+ Object.defineProperty(exports, "evaluatePoolBudget", { enumerable: true, get: function () { return app_config_js_2.evaluatePoolBudget; } });
347
+ Object.defineProperty(exports, "DEFAULT_POOL_BUDGET", { enumerable: true, get: function () { return app_config_js_2.DEFAULT_POOL_BUDGET; } });
348
+ Object.defineProperty(exports, "SCHEMA_SVC_POOL_HARD_CAP", { enumerable: true, get: function () { return app_config_js_2.SCHEMA_SVC_POOL_HARD_CAP; } });
303
349
  // Phase 0b Auth-surface config (additive): the DB/Redis/lifetime loaders + the
304
350
  // required-secret resolver/gate + the new config shapes.
305
- Object.defineProperty(exports, "loadDbConfig", { enumerable: true, get: function () { return app_config_js_1.loadDbConfig; } });
306
- Object.defineProperty(exports, "loadRedisConfig", { enumerable: true, get: function () { return app_config_js_1.loadRedisConfig; } });
307
- Object.defineProperty(exports, "loadSessionLifetimes", { enumerable: true, get: function () { return app_config_js_1.loadSessionLifetimes; } });
308
- Object.defineProperty(exports, "loadRefreshHmacKey", { enumerable: true, get: function () { return app_config_js_1.loadRefreshHmacKey; } });
309
- Object.defineProperty(exports, "assertRefreshHmacKey", { enumerable: true, get: function () { return app_config_js_1.assertRefreshHmacKey; } });
310
- Object.defineProperty(exports, "DEFAULT_DB_CONFIG", { enumerable: true, get: function () { return app_config_js_1.DEFAULT_DB_CONFIG; } });
311
- Object.defineProperty(exports, "DEFAULT_REDIS_URL", { enumerable: true, get: function () { return app_config_js_1.DEFAULT_REDIS_URL; } });
351
+ Object.defineProperty(exports, "loadDbConfig", { enumerable: true, get: function () { return app_config_js_2.loadDbConfig; } });
352
+ Object.defineProperty(exports, "loadRedisConfig", { enumerable: true, get: function () { return app_config_js_2.loadRedisConfig; } });
353
+ Object.defineProperty(exports, "loadSessionLifetimes", { enumerable: true, get: function () { return app_config_js_2.loadSessionLifetimes; } });
354
+ Object.defineProperty(exports, "loadRefreshHmacKey", { enumerable: true, get: function () { return app_config_js_2.loadRefreshHmacKey; } });
355
+ Object.defineProperty(exports, "assertRefreshHmacKey", { enumerable: true, get: function () { return app_config_js_2.assertRefreshHmacKey; } });
356
+ Object.defineProperty(exports, "DEFAULT_DB_CONFIG", { enumerable: true, get: function () { return app_config_js_2.DEFAULT_DB_CONFIG; } });
357
+ Object.defineProperty(exports, "DEFAULT_REDIS_URL", { enumerable: true, get: function () { return app_config_js_2.DEFAULT_REDIS_URL; } });
312
358
  // Security hardening #5/#6 (additive): the per-IP login failure limit (D3) and the
313
359
  // raw-NODE_ENV dev/test predicate that gates the dev email logger.
314
- Object.defineProperty(exports, "loadLoginIpLimit", { enumerable: true, get: function () { return app_config_js_1.loadLoginIpLimit; } });
315
- Object.defineProperty(exports, "loadRefreshReplayWindowMs", { enumerable: true, get: function () { return app_config_js_1.loadRefreshReplayWindowMs; } });
316
- Object.defineProperty(exports, "DEFAULT_LOGIN_IP_LIMIT", { enumerable: true, get: function () { return app_config_js_1.DEFAULT_LOGIN_IP_LIMIT; } });
317
- Object.defineProperty(exports, "isDevOrTestNodeEnv", { enumerable: true, get: function () { return app_config_js_1.isDevOrTestNodeEnv; } });
360
+ Object.defineProperty(exports, "loadLoginIpLimit", { enumerable: true, get: function () { return app_config_js_2.loadLoginIpLimit; } });
361
+ Object.defineProperty(exports, "loadRefreshReplayWindowMs", { enumerable: true, get: function () { return app_config_js_2.loadRefreshReplayWindowMs; } });
362
+ Object.defineProperty(exports, "DEFAULT_LOGIN_IP_LIMIT", { enumerable: true, get: function () { return app_config_js_2.DEFAULT_LOGIN_IP_LIMIT; } });
363
+ Object.defineProperty(exports, "isDevOrTestNodeEnv", { enumerable: true, get: function () { return app_config_js_2.isDevOrTestNodeEnv; } });
318
364
  // Phase 16 (additive): TLS to MariaDB (APP_DB_TLS / APP_DB_TLS_CA).
319
- Object.defineProperty(exports, "loadDbTlsConfig", { enumerable: true, get: function () { return app_config_js_1.loadDbTlsConfig; } });
365
+ Object.defineProperty(exports, "loadDbTlsConfig", { enumerable: true, get: function () { return app_config_js_2.loadDbTlsConfig; } });
320
366
  // Phase 16: the driver `ssl` option every framework pool uses (identity's pools build on it).
321
367
  var connections_js_1 = require("./auth/connections.js");
322
368
  Object.defineProperty(exports, "mariadbSslOption", { enumerable: true, get: function () { return connections_js_1.mariadbSslOption; } });
@@ -29,4 +29,15 @@ export { SHIELD_DECISION_AUTHORITY } from '@astram/core';
29
29
  * `ShieldModule.forRoot({ decisionAuthority })`. Two of them fail the boot.
30
30
  */
31
31
  export declare const SHIELD_RECORD_AUTHORIZATION: unique symbol;
32
+ /**
33
+ * The app's `ObjectStore` (`@astram/core`; FILE_STORAGE SPEC §6), provided app-wide by
34
+ * `ShieldModule.forRoot({ storage })`: the given instance, an `S3ObjectStore` built from
35
+ * `OBJECT_STORAGE_*` (`'env'`), or `null` when storage is not configured (callers answer 501).
36
+ */
37
+ export declare const SHIELD_OBJECT_STORE: unique symbol;
38
+ /**
39
+ * The pure file ingest check (`@astram/core` `createFileIngest` over `NodeSha256Digest`) that
40
+ * `FileIntake` runs after multipart parsing. Always provided by `ShieldModule`.
41
+ */
42
+ export declare const SHIELD_FILE_INGEST: unique symbol;
32
43
  //# sourceMappingURL=shield-tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shield-tokens.d.ts","sourceRoot":"","sources":["../../src/module/shield-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,eAAwC,CAAC"}
1
+ {"version":3,"file":"shield-tokens.d.ts","sourceRoot":"","sources":["../../src/module/shield-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,eAA+B,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * with no cycle. `shield.module.ts` re-exports these for the public barrel.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SHIELD_RECORD_AUTHORIZATION = exports.SHIELD_DECISION_AUTHORITY = void 0;
10
+ exports.SHIELD_FILE_INGEST = exports.SHIELD_OBJECT_STORE = exports.SHIELD_RECORD_AUTHORIZATION = exports.SHIELD_DECISION_AUTHORITY = void 0;
11
11
  /**
12
12
  * The Core decision authority (`@astram/core`'s `DecisionAuthority`) — the single
13
13
  * ADR-0001 decision entry both the global enforcement guard and the engine's
@@ -33,3 +33,14 @@ Object.defineProperty(exports, "SHIELD_DECISION_AUTHORITY", { enumerable: true,
33
33
  * `ShieldModule.forRoot({ decisionAuthority })`. Two of them fail the boot.
34
34
  */
35
35
  exports.SHIELD_RECORD_AUTHORIZATION = Symbol('SHIELD_RECORD_AUTHORIZATION');
36
+ /**
37
+ * The app's `ObjectStore` (`@astram/core`; FILE_STORAGE SPEC §6), provided app-wide by
38
+ * `ShieldModule.forRoot({ storage })`: the given instance, an `S3ObjectStore` built from
39
+ * `OBJECT_STORAGE_*` (`'env'`), or `null` when storage is not configured (callers answer 501).
40
+ */
41
+ exports.SHIELD_OBJECT_STORE = Symbol('SHIELD_OBJECT_STORE');
42
+ /**
43
+ * The pure file ingest check (`@astram/core` `createFileIngest` over `NodeSha256Digest`) that
44
+ * `FileIntake` runs after multipart parsing. Always provided by `ShieldModule`.
45
+ */
46
+ exports.SHIELD_FILE_INGEST = Symbol('SHIELD_FILE_INGEST');
@@ -17,6 +17,7 @@ import type { CoreDecisionAuthority } from '../enforcement/core-seam.js';
17
17
  import { type AppConfig } from '../config/app-config.js';
18
18
  import { SHIELD_DECISION_AUTHORITY, SHIELD_RECORD_AUTHORIZATION } from './shield-tokens.js';
19
19
  export { SHIELD_DECISION_AUTHORITY, SHIELD_RECORD_AUTHORIZATION };
20
+ import { type ShieldStorageOption } from '../storage/storage.providers.js';
20
21
  export type { RecordAuthorizationInputs } from '../authz/wire-record-authorization.js';
21
22
  /**
22
23
  * Options for {@link ShieldModule.forRoot}. Intentionally minimal (ADR-0023 §7 —
@@ -196,6 +197,13 @@ export interface ShieldModuleOptions {
196
197
  * loopback (`localhost`, `127.0.0.1`, `::1`, `0.0.0.0`), unless `emailSender: 'disabled'`.
197
198
  */
198
199
  readonly emailChangeLinkBaseUrl?: string;
200
+ /**
201
+ * OPTIONAL object storage (FILE_STORAGE SPEC §6): an `ObjectStore` instance, or `'env'` to build
202
+ * an `S3ObjectStore` from `OBJECT_STORAGE_*` (`loadObjectStorageConfig`; storage stays off when
203
+ * `OBJECT_STORAGE_BUCKET` is unset). Bound under `SHIELD_OBJECT_STORE` (`null` when absent) and
204
+ * pinged at boot (fail closed). `SHIELD_FILE_INGEST` (used by `FileIntake`) is always bound.
205
+ */
206
+ readonly storage?: ShieldStorageOption;
199
207
  }
200
208
  /** Async variant of {@link ShieldModuleOptions} (DI-computed config). */
201
209
  export interface ShieldModuleAsyncOptions {
@@ -303,6 +311,8 @@ export interface ShieldModuleAsyncOptions {
303
311
  readonly membershipChecker?: MembershipChecker;
304
312
  /** See {@link ShieldModuleOptions.emailChangeLinkBaseUrl}. STATIC here (registration-time). */
305
313
  readonly emailChangeLinkBaseUrl?: string;
314
+ /** See {@link ShieldModuleOptions.storage}. STATIC here (registration-time, like `auth`). */
315
+ readonly storage?: ShieldStorageOption;
306
316
  }
307
317
  /**
308
318
  * `ShieldModule` — the SINGLE registration seam (ADR-0023 §4).
@@ -1 +1 @@
1
- {"version":3,"file":"shield.module.d.ts","sourceRoot":"","sources":["../../src/module/shield.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shield.module.d.ts","sourceRoot":"","sources":["../../src/module/shield.module.ts"],"names":[],"mappings":"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"}
@@ -46,8 +46,28 @@ const node_url_1 = require("node:url");
46
46
  const core_seam_js_1 = require("../enforcement/core-seam.js");
47
47
  const enforcement_module_js_1 = require("../enforcement/enforcement.module.js");
48
48
  const boot_module_js_1 = require("../boot/boot.module.js");
49
+ const migration_ledger_check_js_1 = require("../boot/migration-ledger-check.js");
49
50
  const config_module_js_1 = require("../config/config.module.js");
50
51
  const app_config_js_1 = require("../config/app-config.js");
52
+ /**
53
+ * `FRAMEWORK_SCHEMAS` from `APP_CONFIG` (configurable-framework-db, ADR-0037): resolved once
54
+ * at boot, the same frozen names every framework store and module receives.
55
+ */
56
+ const frameworkSchemasProvider = {
57
+ provide: config_module_js_1.FRAMEWORK_SCHEMAS,
58
+ useFactory: (config) => (0, app_config_js_1.frameworkSchemasOf)(config),
59
+ inject: [config_module_js_1.APP_CONFIG],
60
+ };
61
+ /**
62
+ * configurable-framework-db spec 5.D: one {@link MigrationLedgerRegistry} per application, so
63
+ * guard's (`AuthModule`) and identity's ledger checks share ONE read per ledger location. Holds
64
+ * no connection; an enforcement-only app registers no check and so reads nothing.
65
+ */
66
+ const migrationLedgerRegistryProvider = {
67
+ provide: migration_ledger_check_js_1.SHIELD_MIGRATION_LEDGER_REGISTRY,
68
+ useFactory: () => new migration_ledger_check_js_1.MigrationLedgerRegistry(),
69
+ };
70
+ const boot_secrets_js_1 = require("../secrets/boot-secrets.js");
51
71
  // Static import is SAFE: auth.module.ts top-level-imports @astram/core as TYPES
52
72
  // only (it loads core's ESM factory VALUES lazily inside its async provider
53
73
  // factories — see auth.module.ts loadCore()). So pulling AuthModule here does NOT
@@ -64,6 +84,8 @@ const tokens_js_1 = require("../auth/tokens.js");
64
84
  const shield_tokens_js_1 = require("./shield-tokens.js");
65
85
  Object.defineProperty(exports, "SHIELD_DECISION_AUTHORITY", { enumerable: true, get: function () { return shield_tokens_js_1.SHIELD_DECISION_AUTHORITY; } });
66
86
  Object.defineProperty(exports, "SHIELD_RECORD_AUTHORIZATION", { enumerable: true, get: function () { return shield_tokens_js_1.SHIELD_RECORD_AUTHORIZATION; } });
87
+ // FILE_STORAGE SPEC §6: the `storage` option (S3 adapter loaded lazily inside the provider).
88
+ const storage_providers_js_1 = require("../storage/storage.providers.js");
67
89
  /**
68
90
  * A `Function`-wrapped dynamic `import()` that survives the CommonJS **build** — the same
69
91
  * shim as auth.module.ts's `evalImport`. Under `module: commonjs`, `tsc` would rewrite a
@@ -135,7 +157,10 @@ async function resolveDecisionAuthority(options, extras = {}) {
135
157
  'supply the record-authorization inputs (pool + app ports + registry) so the framework ' +
136
158
  'builds the decision authority, OR a pre-built `decisionAuthority`, but not both.');
137
159
  }
138
- const recordAuthorization = provided ?? options.recordAuthorization;
160
+ const supplied = provided ?? options.recordAuthorization;
161
+ const recordAuthorization = supplied && supplied.schemas === undefined && extras.schemas !== undefined
162
+ ? { ...supplied, schemas: extras.schemas }
163
+ : supplied;
139
164
  if (recordAuthorization) {
140
165
  const api = await loadBuildRecordAuthorization();
141
166
  const versionCache = extras.versionCache ?? undefined;
@@ -165,6 +190,15 @@ const OPTIONAL_RECORD_AUTHORIZATION = {
165
190
  token: shield_tokens_js_1.SHIELD_RECORD_AUTHORIZATION,
166
191
  optional: true,
167
192
  };
193
+ /**
194
+ * Config read straight from `process.env`: refuse to boot while a `secret-ref:` is still unresolved
195
+ * there. A caller-supplied `config` (e.g. from `loadAppConfigAsync`) is already resolved and is not
196
+ * re-checked against the raw env.
197
+ */
198
+ function loadEnvAppConfig() {
199
+ (0, boot_secrets_js_1.assertNoUnresolvedSecretRefs)(process.env);
200
+ return (0, app_config_js_1.loadAppConfig)();
201
+ }
168
202
  /**
169
203
  * `ShieldModule` — the SINGLE registration seam (ADR-0023 §4).
170
204
  *
@@ -192,7 +226,7 @@ const OPTIONAL_RECORD_AUTHORIZATION = {
192
226
  let ShieldModule = ShieldModule_1 = class ShieldModule {
193
227
  /** Register Shield with static options (the common path). */
194
228
  static forRoot(options = {}) {
195
- const config = options.config ?? (0, app_config_js_1.loadAppConfig)();
229
+ const config = options.config ?? loadEnvAppConfig();
196
230
  // ADR-0035: with auth on and no explicit projector, sessions cache the facts the framework-built
197
231
  // authority decides on (attached when the authority is built; inactive until then).
198
232
  const defaultProjector = defaultProjectorFor(options.auth, options.sessionFactsProjector);
@@ -262,23 +296,34 @@ let ShieldModule = ShieldModule_1 = class ShieldModule {
262
296
  // stub paths resolve synchronously but flow through the same one seam. Both
263
297
  // supplied → throws (mutual exclusion).
264
298
  provide: shield_tokens_js_1.SHIELD_DECISION_AUTHORITY,
265
- useFactory: (versionCache, providedRecordAuthorization) => resolveDecisionAuthority({
299
+ useFactory: (schemas, versionCache, providedRecordAuthorization) => resolveDecisionAuthority({
266
300
  ...(options.recordAuthorization
267
301
  ? { recordAuthorization: options.recordAuthorization }
268
302
  : {}),
269
303
  ...(options.decisionAuthority
270
304
  ? { decisionAuthority: options.decisionAuthority }
271
305
  : {}),
272
- }, { versionCache, defaultProjector, providedRecordAuthorization }),
306
+ }, { versionCache, defaultProjector, providedRecordAuthorization, schemas }),
307
+ // R2: the resolved framework names (provided below from APP_CONFIG).
273
308
  // ADR-0035: the Redis version cache AuthModule provides under `auth: true`.
274
309
  // Phase 9 #7: the record authorization a feature module provides (IdentityFeatureModule).
275
- inject: [OPTIONAL_VERSION_CACHE, OPTIONAL_RECORD_AUTHORIZATION],
310
+ inject: [config_module_js_1.FRAMEWORK_SCHEMAS, OPTIONAL_VERSION_CACHE, OPTIONAL_RECORD_AUTHORIZATION],
276
311
  },
312
+ frameworkSchemasProvider,
313
+ migrationLedgerRegistryProvider,
314
+ ...(0, storage_providers_js_1.storageProviders)(options.storage),
277
315
  ],
278
316
  // Re-export the composed AuthModule app-wide ONLY when auth is opted in — its
279
317
  // own `exports` (SHIELD_AUTHENTICATOR / SHIELD_SESSION_AUTHORITY) then become
280
318
  // visible to a consumer's controllers/services via the @Global seam.
281
- exports: [config_module_js_1.APP_CONFIG, shield_tokens_js_1.SHIELD_DECISION_AUTHORITY, ...(authModule ? [authModule] : [])],
319
+ exports: [
320
+ config_module_js_1.APP_CONFIG,
321
+ config_module_js_1.FRAMEWORK_SCHEMAS,
322
+ shield_tokens_js_1.SHIELD_DECISION_AUTHORITY,
323
+ migration_ledger_check_js_1.SHIELD_MIGRATION_LEDGER_REGISTRY,
324
+ ...storage_providers_js_1.STORAGE_EXPORTS,
325
+ ...(authModule ? [authModule] : []),
326
+ ],
282
327
  };
283
328
  }
284
329
  /**
@@ -300,7 +345,9 @@ let ShieldModule = ShieldModule_1 = class ShieldModule {
300
345
  };
301
346
  const configProvider = {
302
347
  provide: config_module_js_1.APP_CONFIG,
303
- useFactory: (opts) => opts.config ?? (0, app_config_js_1.loadAppConfig)(),
348
+ useFactory: (opts) => {
349
+ return opts.config ?? loadEnvAppConfig();
350
+ },
304
351
  inject: [optionsToken],
305
352
  };
306
353
  // ADR-0035: the deferred default projector (auth on, no explicit projector), attached when the
@@ -314,11 +361,16 @@ let ShieldModule = ShieldModule_1 = class ShieldModule {
314
361
  // in its useFactory from the injected registrations) has the framework build the
315
362
  // real wired authority; `decisionAuthority` is the legacy passthrough; both →
316
363
  // throws; neither → stub. Async because the record path lazy-loads the builder.
317
- useFactory: (opts, versionCache, providedRecordAuthorization) => resolveDecisionAuthority({
364
+ useFactory: (opts, schemas, versionCache, providedRecordAuthorization) => resolveDecisionAuthority({
318
365
  ...(opts.recordAuthorization ? { recordAuthorization: opts.recordAuthorization } : {}),
319
366
  ...(opts.decisionAuthority ? { decisionAuthority: opts.decisionAuthority } : {}),
320
- }, { versionCache, defaultProjector, providedRecordAuthorization }),
321
- inject: [optionsToken, OPTIONAL_VERSION_CACHE, OPTIONAL_RECORD_AUTHORIZATION],
367
+ }, { versionCache, defaultProjector, providedRecordAuthorization, schemas }),
368
+ inject: [
369
+ optionsToken,
370
+ config_module_js_1.FRAMEWORK_SCHEMAS,
371
+ OPTIONAL_VERSION_CACHE,
372
+ OPTIONAL_RECORD_AUTHORIZATION,
373
+ ],
322
374
  };
323
375
  // Same one-instance opt-in AuthModule as forRoot (imported + re-exported).
324
376
  // `credentialResolver` is STATIC on the async options (like `auth`) — a
@@ -375,8 +427,22 @@ let ShieldModule = ShieldModule_1 = class ShieldModule {
375
427
  ...(authModule ? [authModule] : []),
376
428
  ...(options.imports ?? []),
377
429
  ],
378
- providers: [asyncOptionsProvider, configProvider, authorityProvider],
379
- exports: [config_module_js_1.APP_CONFIG, shield_tokens_js_1.SHIELD_DECISION_AUTHORITY, ...(authModule ? [authModule] : [])],
430
+ providers: [
431
+ asyncOptionsProvider,
432
+ configProvider,
433
+ authorityProvider,
434
+ frameworkSchemasProvider,
435
+ migrationLedgerRegistryProvider,
436
+ ...(0, storage_providers_js_1.storageProviders)(options.storage),
437
+ ],
438
+ exports: [
439
+ config_module_js_1.APP_CONFIG,
440
+ config_module_js_1.FRAMEWORK_SCHEMAS,
441
+ shield_tokens_js_1.SHIELD_DECISION_AUTHORITY,
442
+ migration_ledger_check_js_1.SHIELD_MIGRATION_LEDGER_REGISTRY,
443
+ ...storage_providers_js_1.STORAGE_EXPORTS,
444
+ ...(authModule ? [authModule] : []),
445
+ ],
380
446
  };
381
447
  }
382
448
  };
@@ -0,0 +1,33 @@
1
+ import { type SecretsProvider } from '@astram/core';
2
+ type EnvBag = Readonly<Record<string, string | undefined>>;
3
+ export interface ResolveBootSecretsOptions {
4
+ /** Use this provider instead of building one from the `SECRETS_*` variables. */
5
+ provider?: SecretsProvider;
6
+ }
7
+ /**
8
+ * Resolve every `secret-ref:` value in `process.env` in place. No references and no provider
9
+ * configured: no-op. Idempotent (a second call finds no references).
10
+ */
11
+ export declare function resolveBootSecrets(options?: ResolveBootSecretsOptions): Promise<void>;
12
+ /**
13
+ * `true` when `key`'s CURRENT value in `env` (default `process.env`) is the value
14
+ * {@link resolveBootSecrets} resolved from a `secret-ref:` at boot (FILE_STORAGE SPEC §5 F:
15
+ * credentials outside development/test must be references, never literals). A value changed
16
+ * after resolution (e.g. a literal written over it) is `false`. No value is kept, only a keyed
17
+ * fingerprint.
18
+ */
19
+ export declare function wasResolvedFromSecretRef(key: string, env?: EnvBag): boolean;
20
+ /**
21
+ * Build the {@link SecretsProvider} named by `SECRETS_PROVIDER`. Returns `undefined` for `none`
22
+ * or unset. Throws (naming the variable only) on an unknown value, `vault`, an unset, missing or
23
+ * unreadable file, a corrupt store, a KEK that is not 32 bytes, or a DEK that does not unwrap
24
+ * under the KEK.
25
+ */
26
+ export declare function createSecretsProviderFromEnv(env: EnvBag): SecretsProvider | undefined;
27
+ /**
28
+ * Synchronous backstop: throws if any env value still starts with `secret-ref:` (the app did not
29
+ * call {@link resolveBootSecrets} before building modules). Lists env key names only.
30
+ */
31
+ export declare function assertNoUnresolvedSecretRefs(env: EnvBag): void;
32
+ export {};
33
+ //# sourceMappingURL=boot-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot-secrets.d.ts","sourceRoot":"","sources":["../../src/secrets/boot-secrets.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAQpF,KAAK,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAOD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB/F;AAcD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,CAKxF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAqCrF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAO9D"}