@astram/guard 0.5.1 → 0.7.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.
- package/dist/auth/account.controller.d.ts.map +1 -1
- package/dist/auth/account.controller.js +3 -0
- package/dist/auth/account.controller.js.map +1 -0
- package/dist/auth/auth.controller.d.ts +90 -1
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.controller.js +245 -7
- package/dist/auth/auth.controller.js.map +1 -0
- package/dist/auth/auth.module.d.ts +21 -0
- package/dist/auth/auth.module.d.ts.map +1 -1
- package/dist/auth/auth.module.js +57 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/connections.js.map +1 -0
- package/dist/auth/dto.d.ts +32 -0
- package/dist/auth/dto.d.ts.map +1 -1
- package/dist/auth/dto.js.map +1 -0
- package/dist/auth/pending-mfa-store.js.map +1 -0
- package/dist/auth/persistence.module.js.map +1 -0
- package/dist/auth/ports/audit-sink.js.map +1 -0
- package/dist/auth/ports/credential-writer.js.map +1 -0
- package/dist/auth/ports/email-sender.js.map +1 -0
- package/dist/auth/ports/membership-checker.d.ts +41 -0
- package/dist/auth/ports/membership-checker.d.ts.map +1 -0
- package/dist/auth/ports/membership-checker.js +32 -0
- package/dist/auth/ports/membership-checker.js.map +1 -0
- package/dist/auth/ports/mfa-device-store.js.map +1 -0
- package/dist/auth/ports/profile-writer.js.map +1 -0
- package/dist/auth/ports/recovery-code-store.js.map +1 -0
- package/dist/auth/ports/reset-token-store.js.map +1 -0
- package/dist/auth/ports/scope-subtree-resolver.d.ts +48 -0
- package/dist/auth/ports/scope-subtree-resolver.d.ts.map +1 -0
- package/dist/auth/ports/scope-subtree-resolver.js +38 -0
- package/dist/auth/ports/scope-subtree-resolver.js.map +1 -0
- package/dist/auth/ports/session-facts-projector.js.map +1 -0
- package/dist/auth/ports/session-sweeper.js.map +1 -0
- package/dist/auth/profile-resolver.js.map +1 -0
- package/dist/auth/rate-limit/attempt-limiter.js.map +1 -0
- package/dist/auth/tokens.d.ts +25 -0
- package/dist/auth/tokens.d.ts.map +1 -1
- package/dist/auth/tokens.js +26 -1
- package/dist/auth/tokens.js.map +1 -0
- package/dist/auth/totp-enrollment.js.map +1 -0
- package/dist/authentication/argon2id-password-hasher.js.map +1 -0
- package/dist/authentication/log-email-sender.js.map +1 -0
- package/dist/authentication/mariadb-api-key-store.d.ts +43 -0
- package/dist/authentication/mariadb-api-key-store.d.ts.map +1 -0
- package/dist/authentication/mariadb-api-key-store.js +87 -0
- package/dist/authentication/mariadb-credential-resolver.js.map +1 -0
- package/dist/authentication/mariadb-credential-writer.js.map +1 -0
- package/dist/authentication/mariadb-mfa-device-store.js.map +1 -0
- package/dist/authentication/mariadb-or-totp-verifier.js.map +1 -0
- package/dist/authentication/mariadb-profile-resolver.js.map +1 -0
- package/dist/authentication/mariadb-profile-writer.d.ts.map +1 -1
- package/dist/authentication/mariadb-profile-writer.js +10 -1
- package/dist/authentication/mariadb-profile-writer.js.map +1 -0
- package/dist/authentication/mariadb-recovery-code-store.js.map +1 -0
- package/dist/authentication/mariadb-reset-token-store.js.map +1 -0
- package/dist/authentication/mariadb-session-sweeper.js.map +1 -0
- package/dist/authz/cross-tenant-grant-writer.js.map +1 -0
- package/dist/authz/list-scope-sql.d.ts +125 -0
- package/dist/authz/list-scope-sql.d.ts.map +1 -0
- package/dist/authz/list-scope-sql.js +477 -0
- package/dist/authz/list-scope-sql.js.map +1 -0
- package/dist/authz/manifest-operation-authority-adapter.js.map +1 -0
- package/dist/authz/mariadb-cross-tenant-grant-adapter.d.ts +28 -0
- package/dist/authz/mariadb-cross-tenant-grant-adapter.d.ts.map +1 -1
- package/dist/authz/mariadb-cross-tenant-grant-adapter.js +49 -0
- package/dist/authz/mariadb-cross-tenant-grant-adapter.js.map +1 -0
- package/dist/authz/mariadb-list-scope-adapter.d.ts +61 -0
- package/dist/authz/mariadb-list-scope-adapter.d.ts.map +1 -0
- package/dist/authz/mariadb-list-scope-adapter.js +157 -0
- package/dist/authz/mariadb-list-scope-adapter.js.map +1 -0
- package/dist/authz/mariadb-policy-store.d.ts +118 -0
- package/dist/authz/mariadb-policy-store.d.ts.map +1 -0
- package/dist/authz/mariadb-policy-store.js +225 -0
- package/dist/authz/mariadb-policy-store.js.map +1 -0
- package/dist/authz/mariadb-record-rule-adapter.d.ts +7 -3
- package/dist/authz/mariadb-record-rule-adapter.d.ts.map +1 -1
- package/dist/authz/mariadb-record-rule-adapter.js +156 -13
- package/dist/authz/mariadb-record-rule-adapter.js.map +1 -0
- package/dist/authz/mariadb-record-share-adapter.js.map +1 -0
- package/dist/authz/record-share-cascade.js.map +1 -0
- package/dist/authz/record-share-writer.d.ts +22 -0
- package/dist/authz/record-share-writer.d.ts.map +1 -1
- package/dist/authz/record-share-writer.js +41 -0
- package/dist/authz/record-share-writer.js.map +1 -0
- package/dist/authz/wire-record-authorization.d.ts +35 -1
- package/dist/authz/wire-record-authorization.d.ts.map +1 -1
- package/dist/authz/wire-record-authorization.js +75 -0
- package/dist/authz/wire-record-authorization.js.map +1 -0
- package/dist/boot/boot-sequence.js.map +1 -0
- package/dist/boot/boot.module.js.map +1 -0
- package/dist/completeness/catalog-reconciler.js.map +1 -0
- package/dist/completeness/operation-inventory-scanner.js.map +1 -0
- package/dist/completeness/ports/catalog-store.js.map +1 -0
- package/dist/config/app-config.d.ts +16 -0
- package/dist/config/app-config.d.ts.map +1 -1
- package/dist/config/app-config.js +22 -0
- package/dist/config/app-config.js.map +1 -0
- package/dist/config/config.module.js.map +1 -0
- package/dist/encryption/local-kek-crypto.d.ts +15 -0
- package/dist/encryption/local-kek-crypto.d.ts.map +1 -0
- package/dist/encryption/local-kek-crypto.js +79 -0
- package/dist/enforcement/classification.decorator.js.map +1 -0
- package/dist/enforcement/core-seam.js.map +1 -0
- package/dist/enforcement/enforcement.module.js.map +1 -0
- package/dist/enforcement/global-enforcement.guard.d.ts +3 -1
- package/dist/enforcement/global-enforcement.guard.d.ts.map +1 -1
- package/dist/enforcement/global-enforcement.guard.js +7 -3
- package/dist/enforcement/global-enforcement.guard.js.map +1 -0
- package/dist/enforcement/reenroll-allowlist.js.map +1 -0
- package/dist/identity/auth-facts.controller.js.map +1 -0
- package/dist/identity/identity-actions.d.ts +16 -0
- package/dist/identity/identity-actions.d.ts.map +1 -1
- package/dist/identity/identity-actions.js +23 -1
- package/dist/identity/identity-actions.js.map +1 -0
- package/dist/identity/module-registry.bridge.js.map +1 -0
- package/dist/identity/permission-facts.adapter.js.map +1 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -3
- package/dist/index.js.map +1 -0
- package/dist/migrations-dir.js.map +1 -0
- package/dist/module/shield-tokens.js.map +1 -0
- package/dist/module/shield.module.d.ts +33 -0
- package/dist/module/shield.module.d.ts.map +1 -1
- package/dist/module/shield.module.js +12 -0
- package/dist/module/shield.module.js.map +1 -0
- package/dist/request-auth/request-principal.d.ts +11 -3
- package/dist/request-auth/request-principal.d.ts.map +1 -1
- package/dist/request-auth/request-principal.js +70 -2
- package/dist/request-auth/request-principal.js.map +1 -0
- package/dist/request-auth/session-facts-als.js.map +1 -0
- package/dist/request-auth/session-token-binder.d.ts +35 -1
- package/dist/request-auth/session-token-binder.d.ts.map +1 -1
- package/dist/request-auth/session-token-binder.js +123 -8
- package/dist/request-auth/session-token-binder.js.map +1 -0
- package/dist/request-auth/tokens.d.ts +10 -0
- package/dist/request-auth/tokens.d.ts.map +1 -1
- package/dist/request-auth/tokens.js +11 -1
- package/dist/request-auth/tokens.js.map +1 -0
- package/dist/scope/closure-builder.d.ts +75 -0
- package/dist/scope/closure-builder.d.ts.map +1 -0
- package/dist/scope/closure-builder.js +134 -0
- package/dist/scope/closure-builder.js.map +1 -0
- package/dist/secrets/encrypted-file-secrets.d.ts +16 -0
- package/dist/secrets/encrypted-file-secrets.d.ts.map +1 -0
- package/dist/secrets/encrypted-file-secrets.js +92 -0
- package/dist/session/crypto-adapters.js.map +1 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/mariadb-session-record-store.js.map +1 -0
- package/dist/session/redis-hot-session-store.js.map +1 -0
- package/migrations/1710000000009-CreateRecordPermissionRule.cjs +56 -0
- package/migrations/1710000000014-CreateRecordShare.cjs +49 -0
- package/migrations/1710000000015-CreateScopeClosure.cjs +46 -0
- package/migrations/1710000000016-AlterCompanyParentFkRestrict.cjs +71 -0
- package/migrations/1710000000017-CreateServiceAccountKey.cjs +41 -0
- package/package.json +3 -3
|
@@ -8,7 +8,9 @@ exports.loadSessionLifetimes = loadSessionLifetimes;
|
|
|
8
8
|
exports.loadRefreshHmacKey = loadRefreshHmacKey;
|
|
9
9
|
exports.assertRefreshHmacKey = assertRefreshHmacKey;
|
|
10
10
|
exports.loadAppConfig = loadAppConfig;
|
|
11
|
+
exports.loadAppConfigAsync = loadAppConfigAsync;
|
|
11
12
|
exports.evaluatePoolBudget = evaluatePoolBudget;
|
|
13
|
+
const core_1 = require("@astram/core");
|
|
12
14
|
/** Documented MVP single-node defaults (see the class doc + my.cnf). */
|
|
13
15
|
exports.DEFAULT_POOL_BUDGET = {
|
|
14
16
|
workers: 8,
|
|
@@ -214,6 +216,26 @@ function loadAppConfig(env = process.env) {
|
|
|
214
216
|
lifetimes: loadSessionLifetimes(env),
|
|
215
217
|
};
|
|
216
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* ADR-0032 secrets integration — build the {@link AppConfig} AFTER resolving any `secret-ref:<path>`
|
|
221
|
+
* env references via the injected `SecretsProvider`, so an app can hold only REFERENCES in its env
|
|
222
|
+
* (safe to commit/log) and the real credentials are fetched at boot.
|
|
223
|
+
*
|
|
224
|
+
* - With a `provider`: every `secret-ref:` value in `env` is resolved (fail-closed — a missing
|
|
225
|
+
* reference aborts boot; a value is never logged), producing a resolved env the pure
|
|
226
|
+
* {@link loadAppConfig} consumes unchanged.
|
|
227
|
+
* - Without a `provider`: identical to `loadAppConfig(env)` — literal env, unchanged behaviour
|
|
228
|
+
* (backward compatible; references would pass through as literals, which fail loudly at connect
|
|
229
|
+
* time rather than silently — the operator is expected to wire a provider when using references).
|
|
230
|
+
*
|
|
231
|
+
* The core resolver (`resolveSecretRefs`) does the work; this is the guard-side boot seam.
|
|
232
|
+
*/
|
|
233
|
+
async function loadAppConfigAsync(provider, env = process.env) {
|
|
234
|
+
if (provider === undefined)
|
|
235
|
+
return loadAppConfig(env);
|
|
236
|
+
const resolved = await (0, core_1.resolveSecretRefs)(env, provider);
|
|
237
|
+
return loadAppConfig(resolved);
|
|
238
|
+
}
|
|
217
239
|
/**
|
|
218
240
|
* Evaluate a pool budget. Pure: no throwing, no I/O — the caller decides how to
|
|
219
241
|
* react (the boot assertion throws; tests inspect the fields).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../src/config/app-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,mDAAgE;AAEhE,mDAAmD;AACtC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE/C;;;;;;GAMG;AAWI,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAVxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,kBAAU;gBACnB,UAAU,EAAE,GAAc,EAAE,CAAC,IAAA,6BAAa,GAAE;aAC7C;SACF;QACD,OAAO,EAAE,CAAC,kBAAU,CAAC;KACtB,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CryptoPort, Dek, WrappedDek, Ciphertext } from '@astram/core';
|
|
2
|
+
export declare class LocalKekCrypto implements CryptoPort {
|
|
3
|
+
#private;
|
|
4
|
+
/**
|
|
5
|
+
* @param kek the 32-byte Key Encryption Key (from a KMS/secrets-manager reference). MUST be
|
|
6
|
+
* exactly 32 bytes. NEVER hard-code it; NEVER log it.
|
|
7
|
+
*/
|
|
8
|
+
constructor(kek: Uint8Array);
|
|
9
|
+
generateDek(): Promise<Dek>;
|
|
10
|
+
wrapDek(dek: Dek, tenantId: string): Promise<WrappedDek>;
|
|
11
|
+
unwrapDek(wrapped: WrappedDek, tenantId: string): Promise<Dek>;
|
|
12
|
+
encrypt(plaintext: Uint8Array, dek: Dek, tenantId: string): Promise<Ciphertext>;
|
|
13
|
+
decrypt(ciphertext: Ciphertext, dek: Dek, tenantId: string): Promise<Uint8Array>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=local-kek-crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-kek-crypto.d.ts","sourceRoot":"","sources":["../../src/encryption/local-kek-crypto.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO5E,qBAAa,cAAe,YAAW,UAAU;;IAG/C;;;OAGG;gBACS,GAAG,EAAE,UAAU;IAOrB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAI3B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIxD,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI/E,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA0BvF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalKekCrypto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `LocalKekCrypto` — a reference {@link CryptoPort} adapter (ADR-0031). Real AES-256-GCM AEAD for
|
|
6
|
+
* data + DEK-wrapping, with the KEK held as a local secret (from a secrets-manager reference /
|
|
7
|
+
* env). This is the dev + air-gapped / single-box adapter (what astram-infra's box can use); the
|
|
8
|
+
* AWS-KMS / GCP-KMS / Vault-Transit adapters implement the SAME port and swap in on demand
|
|
9
|
+
* (Rule of Three).
|
|
10
|
+
*
|
|
11
|
+
* SECURITY:
|
|
12
|
+
* - AES-256-GCM (authenticated): a 96-bit random nonce per operation; the 128-bit tag is verified
|
|
13
|
+
* on decrypt; the `tenantId` is bound as ADDITIONAL AUTHENTICATED DATA (AAD) so a ciphertext for
|
|
14
|
+
* tenant A cannot be decrypted as tenant B (the core's cross-tenant guard, enforced in crypto).
|
|
15
|
+
* - DEK wrapping uses the SAME AEAD under the KEK, with the tenantId as AAD — a wrapped DEK is
|
|
16
|
+
* bound to its tenant.
|
|
17
|
+
* - The KEK is 32 bytes, provided at construction (never hard-coded, never logged). Losing it makes
|
|
18
|
+
* all wrapped DEKs (hence all data) unrecoverable — it belongs in a KMS/secrets-manager.
|
|
19
|
+
* - NEVER logs a plaintext, a DEK, or the KEK.
|
|
20
|
+
*
|
|
21
|
+
* Self-describing output layout (both encrypt + wrap): [1B version][12B nonce][16B tag][ciphertext].
|
|
22
|
+
*/
|
|
23
|
+
const node_crypto_1 = require("node:crypto");
|
|
24
|
+
const VERSION = 1;
|
|
25
|
+
const NONCE_LEN = 12;
|
|
26
|
+
const TAG_LEN = 16;
|
|
27
|
+
const DEK_LEN = 32; // AES-256
|
|
28
|
+
class LocalKekCrypto {
|
|
29
|
+
#kek;
|
|
30
|
+
/**
|
|
31
|
+
* @param kek the 32-byte Key Encryption Key (from a KMS/secrets-manager reference). MUST be
|
|
32
|
+
* exactly 32 bytes. NEVER hard-code it; NEVER log it.
|
|
33
|
+
*/
|
|
34
|
+
constructor(kek) {
|
|
35
|
+
if (kek.length !== DEK_LEN) {
|
|
36
|
+
throw new Error(`KEK must be ${DEK_LEN} bytes (got ${kek.length}).`);
|
|
37
|
+
}
|
|
38
|
+
this.#kek = Buffer.from(kek);
|
|
39
|
+
}
|
|
40
|
+
async generateDek() {
|
|
41
|
+
return new Uint8Array((0, node_crypto_1.randomBytes)(DEK_LEN));
|
|
42
|
+
}
|
|
43
|
+
async wrapDek(dek, tenantId) {
|
|
44
|
+
return this.#seal(this.#kek, Buffer.from(dek), tenantId);
|
|
45
|
+
}
|
|
46
|
+
async unwrapDek(wrapped, tenantId) {
|
|
47
|
+
return new Uint8Array(this.#open(this.#kek, Buffer.from(wrapped), tenantId));
|
|
48
|
+
}
|
|
49
|
+
async encrypt(plaintext, dek, tenantId) {
|
|
50
|
+
return this.#seal(Buffer.from(dek), Buffer.from(plaintext), tenantId);
|
|
51
|
+
}
|
|
52
|
+
async decrypt(ciphertext, dek, tenantId) {
|
|
53
|
+
return new Uint8Array(this.#open(Buffer.from(dek), Buffer.from(ciphertext), tenantId));
|
|
54
|
+
}
|
|
55
|
+
// ── AES-256-GCM seal/open, tenantId bound as AAD ──────────────────────────
|
|
56
|
+
#seal(key, plaintext, tenantId) {
|
|
57
|
+
const nonce = (0, node_crypto_1.randomBytes)(NONCE_LEN);
|
|
58
|
+
const cipher = (0, node_crypto_1.createCipheriv)('aes-256-gcm', key, nonce);
|
|
59
|
+
cipher.setAAD(Buffer.from(tenantId, 'utf8'));
|
|
60
|
+
const body = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
61
|
+
const tag = cipher.getAuthTag();
|
|
62
|
+
return new Uint8Array(Buffer.concat([Buffer.from([VERSION]), nonce, tag, body]));
|
|
63
|
+
}
|
|
64
|
+
#open(key, sealed, tenantId) {
|
|
65
|
+
if (sealed.length < 1 + NONCE_LEN + TAG_LEN)
|
|
66
|
+
throw new Error('ciphertext too short / malformed');
|
|
67
|
+
if (sealed[0] !== VERSION)
|
|
68
|
+
throw new Error(`unsupported ciphertext version ${sealed[0]}`);
|
|
69
|
+
const nonce = sealed.subarray(1, 1 + NONCE_LEN);
|
|
70
|
+
const tag = sealed.subarray(1 + NONCE_LEN, 1 + NONCE_LEN + TAG_LEN);
|
|
71
|
+
const body = sealed.subarray(1 + NONCE_LEN + TAG_LEN);
|
|
72
|
+
const decipher = (0, node_crypto_1.createDecipheriv)('aes-256-gcm', key, nonce);
|
|
73
|
+
decipher.setAAD(Buffer.from(tenantId, 'utf8'));
|
|
74
|
+
decipher.setAuthTag(tag);
|
|
75
|
+
// .final() THROWS on a tag/AAD mismatch — the fail-closed guarantee the core relies on.
|
|
76
|
+
return Buffer.concat([decipher.update(body), decipher.final()]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.LocalKekCrypto = LocalKekCrypto;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classification.decorator.js","sourceRoot":"","sources":["../../src/enforcement/classification.decorator.ts"],"names":[],"mappings":";;;AA4CA,0DAgBC;AA5DD,2CAA6C;AAE7C;;;;;;;;;;;;GAYG;AACU,QAAA,uBAAuB,GAAG;IACrC,kEAAkE;IAClE,MAAM,EAAE,8BAA8B;IACtC;;;;OAIG;IACH,UAAU,EAAE,kCAAkC;CACtC,CAAC;AAgBX,wFAAwF;AAC3E,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AAElD,gFAAgF;AAChF,SAAgB,uBAAuB,CACrC,KAA0C;IAE1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC;IACD,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACxB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACI,MAAM,MAAM,GAAG,GAAqC,EAAE,CAC3D,IAAA,oBAAW,EAAC,+BAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AADvC,QAAA,MAAM,UACiC;AAEpD;;;;;;;;GAQG;AACI,MAAM,UAAU,GAAG,CACxB,cAAuC,EACL,EAAE,CACpC,IAAA,oBAAW,EAAC,+BAAuB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAHrD,QAAA,UAAU,cAG2C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-seam.js","sourceRoot":"","sources":["../../src/enforcement/core-seam.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAqBH;;;;;;;;;;;GAWG;AACU,QAAA,qBAAqB,GAA0B;IAC1D,MAAM;QACJ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforcement.module.js","sourceRoot":"","sources":["../../src/enforcement/enforcement.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uCAAyC;AACzC,+EAAuE;AAEvE;;;;;;;;;;;;;;GAcG;AASI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAR7B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,oDAAsB;aACjC;SACF;KACF,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -2,6 +2,7 @@ import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
3
|
import type { CoreDecisionAuthority } from './core-seam.js';
|
|
4
4
|
import type { SessionTokenBinder } from '../request-auth/session-token-binder.js';
|
|
5
|
+
import type { ServiceAuthenticator } from '@astram/core';
|
|
5
6
|
/**
|
|
6
7
|
* Global, fail-closed enforcement guard (ADR-0002) — now with REAL request
|
|
7
8
|
* authorization for classified routes.
|
|
@@ -33,7 +34,8 @@ export declare class GlobalEnforcementGuard implements CanActivate {
|
|
|
33
34
|
private readonly reflector;
|
|
34
35
|
private readonly decisionAuthority?;
|
|
35
36
|
private readonly tokenBinder?;
|
|
36
|
-
|
|
37
|
+
private readonly serviceAuth?;
|
|
38
|
+
constructor(reflector: Reflector, decisionAuthority?: CoreDecisionAuthority | undefined, tokenBinder?: SessionTokenBinder | undefined, serviceAuth?: ServiceAuthenticator | undefined);
|
|
37
39
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
38
40
|
/** The real authorization path for a classified route (fail-closed throughout). */
|
|
39
41
|
private authorizeClassified;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-enforcement.guard.d.ts","sourceRoot":"","sources":["../../src/enforcement/global-enforcement.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAMjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"global-enforcement.guard.d.ts","sourceRoot":"","sources":["../../src/enforcement/global-enforcement.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAMjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAK5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAQzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,sBAAuB,YAAW,WAAW;IAEtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAM7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAZZ,SAAS,EAAE,SAAS,EAGpB,iBAAiB,CAAC,EAAE,qBAAqB,YAAA,EAGzC,WAAW,CAAC,EAAE,kBAAkB,YAAA,EAMhC,WAAW,CAAC,EAAE,oBAAoB,YAAA;IAG/C,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuC9D,mFAAmF;YACrE,mBAAmB;CA0FlC"}
|
|
@@ -52,10 +52,12 @@ let GlobalEnforcementGuard = class GlobalEnforcementGuard {
|
|
|
52
52
|
reflector;
|
|
53
53
|
decisionAuthority;
|
|
54
54
|
tokenBinder;
|
|
55
|
-
|
|
55
|
+
serviceAuth;
|
|
56
|
+
constructor(reflector, decisionAuthority, tokenBinder, serviceAuth) {
|
|
56
57
|
this.reflector = reflector;
|
|
57
58
|
this.decisionAuthority = decisionAuthority;
|
|
58
59
|
this.tokenBinder = tokenBinder;
|
|
60
|
+
this.serviceAuth = serviceAuth;
|
|
59
61
|
}
|
|
60
62
|
async canActivate(context) {
|
|
61
63
|
// Only HTTP requests are classified here. Non-HTTP contexts (if ever added)
|
|
@@ -94,7 +96,7 @@ let GlobalEnforcementGuard = class GlobalEnforcementGuard {
|
|
|
94
96
|
}
|
|
95
97
|
const req = context.switchToHttp().getRequest();
|
|
96
98
|
const authHeader = req?.headers?.['authorization'];
|
|
97
|
-
const resolved = await (0, request_principal_js_1.resolveRequestAuth)(authHeader, this.tokenBinder);
|
|
99
|
+
const resolved = await (0, request_principal_js_1.resolveRequestAuth)(authHeader, this.tokenBinder, this.serviceAuth);
|
|
98
100
|
if (resolved === null) {
|
|
99
101
|
// No/invalid/expired token → not authenticated. 401 (distinct from a deny).
|
|
100
102
|
throw new common_1.UnauthorizedException('Shield enforcement: missing or invalid access token for a classified route.');
|
|
@@ -155,5 +157,7 @@ exports.GlobalEnforcementGuard = GlobalEnforcementGuard = __decorate([
|
|
|
155
157
|
__param(1, (0, common_1.Inject)(shield_tokens_js_1.SHIELD_DECISION_AUTHORITY)),
|
|
156
158
|
__param(2, (0, common_1.Optional)()),
|
|
157
159
|
__param(2, (0, common_1.Inject)(tokens_js_1.SHIELD_SESSION_TOKEN_BINDER)),
|
|
158
|
-
|
|
160
|
+
__param(3, (0, common_1.Optional)()),
|
|
161
|
+
__param(3, (0, common_1.Inject)(tokens_js_1.SHIELD_SERVICE_AUTHENTICATOR)),
|
|
162
|
+
__metadata("design:paramtypes", [core_1.Reflector, Object, Function, Object])
|
|
159
163
|
], GlobalEnforcementGuard);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-enforcement.guard.js","sourceRoot":"","sources":["../../src/enforcement/global-enforcement.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reenroll-allowlist.js","sourceRoot":"","sources":["../../src/enforcement/reenroll-allowlist.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AA2BH,oDAOC;AAYD,8CAUC;AA/CD;;;;GAIG;AACU,QAAA,gBAAgB,GAAoC,MAAM,CAAC,MAAM,CAAC;IAC7E,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;IACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;IACxD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wCAAwC,EAAE;IAClE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACnC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;CACzC,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,MAAe;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,0CAA0C;IAC1C,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;IACtD,4DAA4D;IAC5D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,MAAe,EAAE,MAAe;IAChE,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,wBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-facts.controller.js","sourceRoot":"","sources":["../../src/identity/auth-facts.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,22 @@ export type IdentityAction = (typeof IDENTITY_ACTIONS)[number];
|
|
|
17
17
|
*/
|
|
18
18
|
export declare const CROSS_TENANT_GRANT_ACTIONS: readonly ["share", "accept", "revoke"];
|
|
19
19
|
export type CrossTenantGrantAction = (typeof CROSS_TENANT_GRANT_ACTIONS)[number];
|
|
20
|
+
/**
|
|
21
|
+
* `record_share`'s action vocabulary (list-scoping engine Phase 6, §9.2) — NOT the CRUD verbs.
|
|
22
|
+
* `share` gates the create/revoke routes (a per-record owner action; the writer's owner-bound is
|
|
23
|
+
* the real wall), `read` gates the list-a-record's-shares route.
|
|
24
|
+
*/
|
|
25
|
+
export declare const RECORD_SHARE_ACTIONS: readonly ["share", "read"];
|
|
26
|
+
export type RecordShareAction = (typeof RECORD_SHARE_ACTIONS)[number];
|
|
27
|
+
/**
|
|
28
|
+
* `service_account`'s action vocabulary (ADR-0033). The CRUD verbs administer the ACCOUNT
|
|
29
|
+
* (`read`/list, `create`, `update` its label/scope/status, `delete`), plus `manage_keys` — the
|
|
30
|
+
* one credential-lifecycle action gating issue/rotate/revoke of the account's `ask_…` API keys
|
|
31
|
+
* (a distinct, more-sensitive capability than editing the account row, so it can be granted
|
|
32
|
+
* separately: an admin may edit an agent's label without holding the power to mint its keys).
|
|
33
|
+
*/
|
|
34
|
+
export declare const SERVICE_ACCOUNT_ACTIONS: readonly ["read", "create", "update", "delete", "manage_keys"];
|
|
35
|
+
export type ServiceAccountAction = (typeof SERVICE_ACCOUNT_ACTIONS)[number];
|
|
20
36
|
/** The action vocabulary for `typeKey` — the per-type override if one exists, else the default. */
|
|
21
37
|
export declare function actionsFor(typeKey: string): readonly string[];
|
|
22
38
|
//# sourceMappingURL=identity-actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-actions.d.ts","sourceRoot":"","sources":["../../src/identity/identity-actions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,aAAa,CAAC;AACrC,eAAO,MAAM,gBAAgB,iDAAkD,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,wCAAyC,CAAC;AACjF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-actions.d.ts","sourceRoot":"","sources":["../../src/identity/identity-actions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,aAAa,CAAC;AACrC,eAAO,MAAM,gBAAgB,iDAAkD,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,wCAAyC,CAAC;AACjF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,4BAA6B,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,gEAM1B,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAY5E,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE7D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CROSS_TENANT_GRANT_ACTIONS = exports.IDENTITY_ACTIONS = exports.MODULE_KEY = void 0;
|
|
3
|
+
exports.SERVICE_ACCOUNT_ACTIONS = exports.RECORD_SHARE_ACTIONS = exports.CROSS_TENANT_GRANT_ACTIONS = exports.IDENTITY_ACTIONS = exports.MODULE_KEY = void 0;
|
|
4
4
|
exports.actionsFor = actionsFor;
|
|
5
5
|
/**
|
|
6
6
|
* The fixed action vocabulary + module key for the framework's @astram/identity objects.
|
|
@@ -19,12 +19,34 @@ exports.IDENTITY_ACTIONS = ['read', 'create', 'update', 'delete'];
|
|
|
19
19
|
* revoke -> 'revoke'). Mirrors astram3's `authz/actions.ts`'s `CROSS_TENANT_GRANT_ACTIONS`.
|
|
20
20
|
*/
|
|
21
21
|
exports.CROSS_TENANT_GRANT_ACTIONS = ['share', 'accept', 'revoke'];
|
|
22
|
+
/**
|
|
23
|
+
* `record_share`'s action vocabulary (list-scoping engine Phase 6, §9.2) — NOT the CRUD verbs.
|
|
24
|
+
* `share` gates the create/revoke routes (a per-record owner action; the writer's owner-bound is
|
|
25
|
+
* the real wall), `read` gates the list-a-record's-shares route.
|
|
26
|
+
*/
|
|
27
|
+
exports.RECORD_SHARE_ACTIONS = ['share', 'read'];
|
|
28
|
+
/**
|
|
29
|
+
* `service_account`'s action vocabulary (ADR-0033). The CRUD verbs administer the ACCOUNT
|
|
30
|
+
* (`read`/list, `create`, `update` its label/scope/status, `delete`), plus `manage_keys` — the
|
|
31
|
+
* one credential-lifecycle action gating issue/rotate/revoke of the account's `ask_…` API keys
|
|
32
|
+
* (a distinct, more-sensitive capability than editing the account row, so it can be granted
|
|
33
|
+
* separately: an admin may edit an agent's label without holding the power to mint its keys).
|
|
34
|
+
*/
|
|
35
|
+
exports.SERVICE_ACCOUNT_ACTIONS = [
|
|
36
|
+
'read',
|
|
37
|
+
'create',
|
|
38
|
+
'update',
|
|
39
|
+
'delete',
|
|
40
|
+
'manage_keys',
|
|
41
|
+
];
|
|
22
42
|
/**
|
|
23
43
|
* Per-type action-vocabulary override. Every type not listed here defaults to
|
|
24
44
|
* {@link IDENTITY_ACTIONS} (the CRUD verbs).
|
|
25
45
|
*/
|
|
26
46
|
const ACTIONS_BY_TYPE = {
|
|
27
47
|
cross_tenant_grant: exports.CROSS_TENANT_GRANT_ACTIONS,
|
|
48
|
+
record_share: exports.RECORD_SHARE_ACTIONS,
|
|
49
|
+
service_account: exports.SERVICE_ACCOUNT_ACTIONS,
|
|
28
50
|
};
|
|
29
51
|
/** The action vocabulary for `typeKey` — the per-type override if one exists, else the default. */
|
|
30
52
|
function actionsFor(typeKey) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-actions.js","sourceRoot":"","sources":["../../src/identity/identity-actions.ts"],"names":[],"mappings":";;;AAuCA,gCAEC;AAzCD;;;;;;GAMG;AACU,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,gBAAgB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAGhF;;;;;;GAMG;AACU,QAAA,0BAA0B,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAGjF;;;;GAIG;AACU,QAAA,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAG/D;;;GAGG;AACH,MAAM,eAAe,GAAgD;IACnE,kBAAkB,EAAE,kCAA0B;IAC9C,YAAY,EAAE,4BAAoB;CACnC,CAAC;AAEF,mGAAmG;AACnG,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,wBAAgB,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-registry.bridge.js","sourceRoot":"","sources":["../../src/identity/module-registry.bridge.ts"],"names":[],"mappings":";;AAsBA,kEA4BC;AAlDD;;;;;;GAMG;AACH,uCAAoD;AAQpD,2CAAmD;AACnD,+DAA+D;AAE/D,SAAS,YAAY,CAAC,KAAsB;IAC1C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,CAAC;AAED,SAAgB,2BAA2B,CAAC,MAAkC;IAC5E,MAAM,IAAI,GAA0B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,WAAW,GAA2B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,OAAO;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAuB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,IAAA,gCAAU,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxC,SAAS;QACT,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,OAAgB;QACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,MAAM;KACjC,CAAC,CAAC,CACJ,CAAC;IACF,MAAM,QAAQ,GAAmB,EAAE,SAAS,EAAE,gCAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACjF,MAAM,QAAQ,GAAG,IAAA,2BAAoB,GAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-facts.adapter.js","sourceRoot":"","sources":["../../src/identity/permission-facts.adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,16 +23,22 @@ export type { Classification } from './enforcement/classification.decorator.js';
|
|
|
23
23
|
export { OperationInventoryScanner } from './completeness/operation-inventory-scanner.js';
|
|
24
24
|
export { CatalogReconciler, CatalogGatabilityError } from './completeness/catalog-reconciler.js';
|
|
25
25
|
export type { CatalogStore, CatalogPermissionRow, ReconcileReport, } from './completeness/ports/catalog-store.js';
|
|
26
|
-
export { SHIELD_SESSION_TOKEN_BINDER } from './request-auth/tokens.js';
|
|
26
|
+
export { SHIELD_SESSION_TOKEN_BINDER, SHIELD_SERVICE_AUTHENTICATOR, } from './request-auth/tokens.js';
|
|
27
27
|
export { SessionTokenBinder } from './request-auth/session-token-binder.js';
|
|
28
28
|
export type { BoundPrincipalClaims } from './request-auth/session-token-binder.js';
|
|
29
|
-
export { resolveRequestPrincipal, principalFromClaims, extractBearerToken, } from './request-auth/request-principal.js';
|
|
29
|
+
export { resolveRequestPrincipal, resolveRequestAuth, principalFromClaims, extractBearerToken, isApiKey, } from './request-auth/request-principal.js';
|
|
30
|
+
export { MariaDbApiKeyStore } from './authentication/mariadb-api-key-store.js';
|
|
30
31
|
export { SHIELD_SESSION_FACTS_ALS, NO_SESSION_FACTS, type SessionFactsStore, } from './request-auth/session-facts-als.js';
|
|
31
32
|
export { GlobalEnforcementGuard } from './enforcement/global-enforcement.guard.js';
|
|
32
33
|
export { stubDecisionAuthority, type Effect, type CoreDecisionAuthority, type CoreDecision, type Principal, } from './enforcement/core-seam.js';
|
|
33
34
|
export { Argon2idPasswordHasher, argon2idHasherProvider, SHIELD_PASSWORD_HASHER, type Argon2idParams, } from './authentication/argon2id-password-hasher.js';
|
|
35
|
+
export { LocalKekCrypto } from './encryption/local-kek-crypto.js';
|
|
36
|
+
export { EncryptedFileSecretsProvider } from './secrets/encrypted-file-secrets.js';
|
|
34
37
|
export { MariaDbSessionRecordStore, SHIELD_SESSION_RECORD_STORE, RedisHotSessionStore, SHIELD_HOT_SESSION_STORE, CryptoTokenGenerator, Sha256RefreshTokenHasher, SystemClock, cryptoTokenGeneratorProvider, refreshHasherProvider, systemClockProvider, SHIELD_TOKEN_GENERATOR, SHIELD_REFRESH_HASHER, SHIELD_CLOCK, } from './session/index.js';
|
|
35
38
|
export { MariaDbRecordPermissionRuleAdapter, SHIELD_RECORD_RULE_PORT, type RuleQueryable, } from './authz/mariadb-record-rule-adapter.js';
|
|
39
|
+
export { MariaDbPolicyStore, SHIELD_POLICY_STORE, type RuleQueryable as PolicyStoreQueryable, } from './authz/mariadb-policy-store.js';
|
|
40
|
+
export { MariaDbListScopeAdapter, SHIELD_LIST_SCOPE_PORT, type ListScopeQueryable, } from './authz/mariadb-list-scope-adapter.js';
|
|
41
|
+
export { translateListScope, UnknownScopeFieldError, type TranslatedListScope, type ListScopePrincipal, } from './authz/list-scope-sql.js';
|
|
36
42
|
export { MariaDbRecordShareAdapter, SHIELD_RECORD_SHARE_PORT, type ShareQueryable, } from './authz/mariadb-record-share-adapter.js';
|
|
37
43
|
export { RecordShareWriter, SHIELD_RECORD_SHARE_WRITER, ShareNotPermittedError, ShareStoreUnavailableError, type ShareInput, type ShareGranteeKind, type ShareTypeInfo, type ShareTypeResolver, type ShareAuditEvent, type ShareAuditSink, } from './authz/record-share-writer.js';
|
|
38
44
|
export { makeShareDeleteCascade, type RecordDeletedHook, type ShareQueryFn, } from './authz/record-share-cascade.js';
|
|
@@ -40,6 +46,7 @@ export { MariaDbCrossTenantGrantAdapter, SHIELD_CROSS_TENANT_GRANT_PORT, type Gr
|
|
|
40
46
|
export { CrossTenantGrantWriter, SHIELD_CROSS_TENANT_GRANT_WRITER, GrantNotPermittedError, InvalidGrantError, GrantStoreUnavailableError, type GrantAuthorizeFn, type GrantAuditEvent, type GrantAuditSink, type GrantGranteeKind, type GrantScope, type OfferGrantInput, type AcceptGrantInput, type RevokeGrantInput, } from './authz/cross-tenant-grant-writer.js';
|
|
41
47
|
export { ManifestOperationAuthorityAdapter, SHIELD_OPERATION_AUTHORITY_PORT, type OperationManifestEntry, } from './authz/manifest-operation-authority-adapter.js';
|
|
42
48
|
export { buildRecordAuthorization } from './authz/wire-record-authorization.js';
|
|
49
|
+
export { buildListScopeFn, type ListScopeFn } from './authz/wire-record-authorization.js';
|
|
43
50
|
export { BootSequence, assertPoolBudget } from './boot/boot-sequence.js';
|
|
44
51
|
export { APP_CONFIG } from './config/config.module.js';
|
|
45
52
|
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, } from './config/app-config.js';
|
|
@@ -62,8 +69,11 @@ export type { MfaDeviceStore, MfaDevice } from './auth/ports/mfa-device-store.js
|
|
|
62
69
|
export type { AuditSink, AuthAuditEvent } from './auth/ports/audit-sink.js';
|
|
63
70
|
export type { SessionFactsProjector } from './auth/ports/session-facts-projector.js';
|
|
64
71
|
export { SHIELD_SESSION_FACTS_PROJECTOR } from './auth/tokens.js';
|
|
72
|
+
export type { ScopeSubtreeResolver } from './auth/ports/scope-subtree-resolver.js';
|
|
73
|
+
export { SHIELD_SCOPE_SUBTREE_RESOLVER } from './auth/tokens.js';
|
|
65
74
|
export { AuthController } from './auth/auth.controller.js';
|
|
66
75
|
export { PendingMfaStore } from './auth/pending-mfa-store.js';
|
|
67
76
|
export { generateTotpSecret, buildOtpauthUri, generateRecoveryCodes, } from './auth/totp-enrollment.js';
|
|
68
77
|
export { AccountController } from './auth/account.controller.js';
|
|
78
|
+
export { buildClosureRows, ScopeCycleError, ScopeDepthError, ScopeUnknownParentError, type ScopeEdge, type ClosureRow, } from './scope/closure-builder.js';
|
|
69
79
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AASzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG1F,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAI7B,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,MAAM,EACN,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAKhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACjG,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAM/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
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.
|
|
20
|
-
exports.
|
|
21
|
-
exports.AccountController = exports.generateRecoveryCodes = void 0;
|
|
19
|
+
exports.SHIELD_POLICY_STORE = exports.MariaDbPolicyStore = exports.SHIELD_RECORD_RULE_PORT = exports.MariaDbRecordPermissionRuleAdapter = exports.SHIELD_CLOCK = exports.SHIELD_REFRESH_HASHER = exports.SHIELD_TOKEN_GENERATOR = exports.systemClockProvider = exports.refreshHasherProvider = exports.cryptoTokenGeneratorProvider = exports.SystemClock = exports.Sha256RefreshTokenHasher = exports.CryptoTokenGenerator = 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.normalizeClassification = exports.DEFAULT_CLASSIFIED_ACTION = exports.CLASSIFICATION_METADATA = exports.Classified = exports.Public = exports.SHIELD_DECISION_AUTHORITY = exports.ShieldModule = exports.actionsFor = exports.IDENTITY_ACTIONS = exports.MODULE_KEY = exports.buildIdentityModuleRegistry = exports.guardMigrationsDir = void 0;
|
|
20
|
+
exports.SHIELD_AUDIT_SINK = exports.SHIELD_SESSION_SWEEPER = exports.SHIELD_PROFILE_WRITER = exports.SHIELD_RECOVERY_CODE_STORE = exports.SHIELD_EMAIL_SENDER = 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.SHIELD_DB_POOL = 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.APP_CONFIG = exports.assertPoolBudget = exports.BootSequence = exports.buildListScopeFn = 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 = void 0;
|
|
21
|
+
exports.ScopeUnknownParentError = exports.ScopeDepthError = exports.ScopeCycleError = exports.buildClosureRows = exports.AccountController = exports.generateRecoveryCodes = exports.buildOtpauthUri = exports.generateTotpSecret = exports.PendingMfaStore = exports.AuthController = exports.SHIELD_SCOPE_SUBTREE_RESOLVER = exports.SHIELD_SESSION_FACTS_PROJECTOR = exports.hmacSha1 = exports.resolveTotpVerifier = exports.makeDefaultTotpVerifier = exports.AuthModule = exports.PersistenceModule = exports.MariaDbCredentialResolver = exports.SHIELD_TOTP_VERIFIER_OVERRIDE = exports.SHIELD_MFA_DEVICE_STORE = void 0;
|
|
22
22
|
// Framework authz migrations (shield_authz DDL — permission / role_permission /
|
|
23
23
|
// authz_permission_version). Absolute path a consumer's `@astram/migrate` setup merges in.
|
|
24
24
|
var migrations_dir_js_1 = require("./migrations-dir.js");
|
|
@@ -61,12 +61,19 @@ Object.defineProperty(exports, "CatalogGatabilityError", { enumerable: true, get
|
|
|
61
61
|
// internally — a consumer does NOT hand-wire request auth.
|
|
62
62
|
var tokens_js_1 = require("./request-auth/tokens.js");
|
|
63
63
|
Object.defineProperty(exports, "SHIELD_SESSION_TOKEN_BINDER", { enumerable: true, get: function () { return tokens_js_1.SHIELD_SESSION_TOKEN_BINDER; } });
|
|
64
|
+
Object.defineProperty(exports, "SHIELD_SERVICE_AUTHENTICATOR", { enumerable: true, get: function () { return tokens_js_1.SHIELD_SERVICE_AUTHENTICATOR; } });
|
|
64
65
|
var session_token_binder_js_1 = require("./request-auth/session-token-binder.js");
|
|
65
66
|
Object.defineProperty(exports, "SessionTokenBinder", { enumerable: true, get: function () { return session_token_binder_js_1.SessionTokenBinder; } });
|
|
66
67
|
var request_principal_js_1 = require("./request-auth/request-principal.js");
|
|
67
68
|
Object.defineProperty(exports, "resolveRequestPrincipal", { enumerable: true, get: function () { return request_principal_js_1.resolveRequestPrincipal; } });
|
|
69
|
+
Object.defineProperty(exports, "resolveRequestAuth", { enumerable: true, get: function () { return request_principal_js_1.resolveRequestAuth; } });
|
|
68
70
|
Object.defineProperty(exports, "principalFromClaims", { enumerable: true, get: function () { return request_principal_js_1.principalFromClaims; } });
|
|
69
71
|
Object.defineProperty(exports, "extractBearerToken", { enumerable: true, get: function () { return request_principal_js_1.extractBearerToken; } });
|
|
72
|
+
Object.defineProperty(exports, "isApiKey", { enumerable: true, get: function () { return request_principal_js_1.isApiKey; } });
|
|
73
|
+
// Machine/agent auth (ADR-0033): the MariaDB ApiKeyStore adapter (hash-only) — a consumer wires it
|
|
74
|
+
// + a ServiceAuthenticator to enable `Authorization: Bearer ask_…` service-account access.
|
|
75
|
+
var mariadb_api_key_store_js_1 = require("./authentication/mariadb-api-key-store.js");
|
|
76
|
+
Object.defineProperty(exports, "MariaDbApiKeyStore", { enumerable: true, get: function () { return mariadb_api_key_store_js_1.MariaDbApiKeyStore; } });
|
|
70
77
|
// The per-request session-facts hot path (ADR-0011): the SINGLE shared
|
|
71
78
|
// `AsyncLocalStorage` the enforcement guard ENTERS around decide() and the consumer's
|
|
72
79
|
// app-owned `SessionFactsReader` READS. The consumer imports THIS exact singleton to
|
|
@@ -100,6 +107,16 @@ var argon2id_password_hasher_js_1 = require("./authentication/argon2id-password-
|
|
|
100
107
|
Object.defineProperty(exports, "Argon2idPasswordHasher", { enumerable: true, get: function () { return argon2id_password_hasher_js_1.Argon2idPasswordHasher; } });
|
|
101
108
|
Object.defineProperty(exports, "argon2idHasherProvider", { enumerable: true, get: function () { return argon2id_password_hasher_js_1.argon2idHasherProvider; } });
|
|
102
109
|
Object.defineProperty(exports, "SHIELD_PASSWORD_HASHER", { enumerable: true, get: function () { return argon2id_password_hasher_js_1.SHIELD_PASSWORD_HASHER; } });
|
|
110
|
+
// The reference `CryptoPort` adapter (ADR-0031 envelope encryption): real AES-256-GCM AEAD +
|
|
111
|
+
// local-KEK DEK-wrapping, injected into `@astram/core`'s `createEncryptionService({ crypto })`.
|
|
112
|
+
// Core stays zero-dep; the KMS-backed adapters (AWS/GCP/Vault) implement the same port.
|
|
113
|
+
var local_kek_crypto_js_1 = require("./encryption/local-kek-crypto.js");
|
|
114
|
+
Object.defineProperty(exports, "LocalKekCrypto", { enumerable: true, get: function () { return local_kek_crypto_js_1.LocalKekCrypto; } });
|
|
115
|
+
// The reference `SecretsProvider` adapter (ADR-0032 secrets management): an ENCRYPTED on-box store
|
|
116
|
+
// (secrets AES-GCM-encrypted at rest under the box KEK) so env holds `secret-ref:` pointers and the
|
|
117
|
+
// real values are resolved at boot. Vault / AWS SM / GCP SM implement the same port.
|
|
118
|
+
var encrypted_file_secrets_js_1 = require("./secrets/encrypted-file-secrets.js");
|
|
119
|
+
Object.defineProperty(exports, "EncryptedFileSecretsProvider", { enumerable: true, get: function () { return encrypted_file_secrets_js_1.EncryptedFileSecretsProvider; } });
|
|
103
120
|
// The Session storage/crypto adapters (ADR-0003 / ADR-0013): the concrete durable
|
|
104
121
|
// (MariaDB) + hot (Redis) stores, the node:crypto token generator, the keyed HMAC
|
|
105
122
|
// refresh hasher, and the system clock — all implementing `@astram/core`'s Session
|
|
@@ -127,6 +144,30 @@ Object.defineProperty(exports, "SHIELD_CLOCK", { enumerable: true, get: function
|
|
|
127
144
|
var mariadb_record_rule_adapter_js_1 = require("./authz/mariadb-record-rule-adapter.js");
|
|
128
145
|
Object.defineProperty(exports, "MariaDbRecordPermissionRuleAdapter", { enumerable: true, get: function () { return mariadb_record_rule_adapter_js_1.MariaDbRecordPermissionRuleAdapter; } });
|
|
129
146
|
Object.defineProperty(exports, "SHIELD_RECORD_RULE_PORT", { enumerable: true, get: function () { return mariadb_record_rule_adapter_js_1.SHIELD_RECORD_RULE_PORT; } });
|
|
147
|
+
// The guided-policy AUTHOR store (ADR-0003 / design Task 0.3): the concrete
|
|
148
|
+
// `PolicyStore` (core admin port) over the SAME `record_permission_rule` table the
|
|
149
|
+
// rule adapter enforces — author-what-enforces. Persists a `GuidedPolicy`'s N
|
|
150
|
+
// AND-composed conditions as N rows sharing one `rpr_policy_uuid` group id (the read
|
|
151
|
+
// adapter AND-groups by it). `everyone` subject (v1 mapping); canonical operator
|
|
152
|
+
// names; parameterized SQL; no hard-coded UUIDs. NOT wired into buildRecordAuthorization
|
|
153
|
+
// here — the admin authoring surface (Phase 5) consumes it.
|
|
154
|
+
var mariadb_policy_store_js_1 = require("./authz/mariadb-policy-store.js");
|
|
155
|
+
Object.defineProperty(exports, "MariaDbPolicyStore", { enumerable: true, get: function () { return mariadb_policy_store_js_1.MariaDbPolicyStore; } });
|
|
156
|
+
Object.defineProperty(exports, "SHIELD_POLICY_STORE", { enumerable: true, get: function () { return mariadb_policy_store_js_1.SHIELD_POLICY_STORE; } });
|
|
157
|
+
// The LIST-SCOPE port adapter + the ScopeSpec→SQL translator (ADR-0003 / ADR-0005 list
|
|
158
|
+
// form / Task 2.1). The adapter ({@link MariaDbListScopeAdapter}, `ListScopePort`) projects
|
|
159
|
+
// the SAME `record_permission_rule` rows the rule adapter enforces into abstract allow/deny
|
|
160
|
+
// {@link ScopeCondition} AND-groups; the PURE translator ({@link translateListScope}) turns
|
|
161
|
+
// core's {@link ListScopeSpec} into a SAFE, parameterized WHERE fragment (every VALUE a `?`
|
|
162
|
+
// bound param; ONLY registry-derived columns interpolated; unknown field ⇒ throw; negative
|
|
163
|
+
// operators fail closed on NULL; deny-wins as `AND NOT (...)`). Phase 3 injects the fragment
|
|
164
|
+
// into the engine's `list()`. Store outage ⇒ AuthorizationUnavailableError (never unbounded).
|
|
165
|
+
var mariadb_list_scope_adapter_js_1 = require("./authz/mariadb-list-scope-adapter.js");
|
|
166
|
+
Object.defineProperty(exports, "MariaDbListScopeAdapter", { enumerable: true, get: function () { return mariadb_list_scope_adapter_js_1.MariaDbListScopeAdapter; } });
|
|
167
|
+
Object.defineProperty(exports, "SHIELD_LIST_SCOPE_PORT", { enumerable: true, get: function () { return mariadb_list_scope_adapter_js_1.SHIELD_LIST_SCOPE_PORT; } });
|
|
168
|
+
var list_scope_sql_js_1 = require("./authz/list-scope-sql.js");
|
|
169
|
+
Object.defineProperty(exports, "translateListScope", { enumerable: true, get: function () { return list_scope_sql_js_1.translateListScope; } });
|
|
170
|
+
Object.defineProperty(exports, "UnknownScopeFieldError", { enumerable: true, get: function () { return list_scope_sql_js_1.UnknownScopeFieldError; } });
|
|
130
171
|
// The per-record SHARE adapter (ADR-0003 / design §6): the concrete `RecordSharePort` over
|
|
131
172
|
// the `record_share` table. Answers `hasShare` (user- OR role-granted shares, exact-or-`*`
|
|
132
173
|
// action). No share ⇒ false; store outage ⇒ AuthorizationUnavailableError. Injected into
|
|
@@ -196,6 +237,13 @@ Object.defineProperty(exports, "SHIELD_OPERATION_AUTHORITY_PORT", { enumerable:
|
|
|
196
237
|
// enforcement-only path core-free.
|
|
197
238
|
var wire_record_authorization_js_1 = require("./authz/wire-record-authorization.js");
|
|
198
239
|
Object.defineProperty(exports, "buildRecordAuthorization", { enumerable: true, get: function () { return wire_record_authorization_js_1.buildRecordAuthorization; } });
|
|
240
|
+
// The LIST-FORM sibling (Task 2.2): the engine-facing `ListScopeFn` the module wiring hands
|
|
241
|
+
// to the engine's `list()` (Task 3.1). `buildListScopeFn` is a SEPARATE factory (Option A)
|
|
242
|
+
// that takes the SAME `RecordAuthorizationInputs` and constructs its `MariaDbListScopeAdapter`
|
|
243
|
+
// over the SAME un-overridable `inputs.pool` — the adapter is NOT a field of the inputs, so a
|
|
244
|
+
// consumer cannot inject a fail-open scope port. Fail-closed: a transient throw PROPAGATES.
|
|
245
|
+
var wire_record_authorization_js_2 = require("./authz/wire-record-authorization.js");
|
|
246
|
+
Object.defineProperty(exports, "buildListScopeFn", { enumerable: true, get: function () { return wire_record_authorization_js_2.buildListScopeFn; } });
|
|
199
247
|
// Boot infrastructure (ADR-0018 connection-pool budget assertion). `BootModule`
|
|
200
248
|
// itself is NOT exported — it is composed internally by `ShieldModule.forRoot()`.
|
|
201
249
|
var boot_sequence_js_1 = require("./boot/boot-sequence.js");
|
|
@@ -279,6 +327,8 @@ Object.defineProperty(exports, "resolveTotpVerifier", { enumerable: true, get: f
|
|
|
279
327
|
Object.defineProperty(exports, "hmacSha1", { enumerable: true, get: function () { return auth_module_js_2.hmacSha1; } });
|
|
280
328
|
var tokens_js_3 = require("./auth/tokens.js");
|
|
281
329
|
Object.defineProperty(exports, "SHIELD_SESSION_FACTS_PROJECTOR", { enumerable: true, get: function () { return tokens_js_3.SHIELD_SESSION_FACTS_PROJECTOR; } });
|
|
330
|
+
var tokens_js_4 = require("./auth/tokens.js");
|
|
331
|
+
Object.defineProperty(exports, "SHIELD_SCOPE_SUBTREE_RESOLVER", { enumerable: true, get: function () { return tokens_js_4.SHIELD_SCOPE_SUBTREE_RESOLVER; } });
|
|
282
332
|
// The framework-owned `/auth/*` HTTP controller (Team C) + its pending-MFA store.
|
|
283
333
|
// The controller CONSUMES SHIELD_AUTHENTICATOR / SHIELD_SESSION_AUTHORITY and the
|
|
284
334
|
// PendingMfaStore. It is EXPORTED so AuthModule (Team B) / the integration owner
|
|
@@ -301,3 +351,14 @@ Object.defineProperty(exports, "generateRecoveryCodes", { enumerable: true, get:
|
|
|
301
351
|
// later). Registered by AuthModule alongside AuthController under `auth: true`.
|
|
302
352
|
var account_controller_js_1 = require("./auth/account.controller.js");
|
|
303
353
|
Object.defineProperty(exports, "AccountController", { enumerable: true, get: function () { return account_controller_js_1.AccountController; } });
|
|
354
|
+
// The PURE scope-closure builder (ADR-0027 / Phase 1 Task 1.1 of the scoped-hierarchy
|
|
355
|
+
// tenancy program): turns a node forest's parent edges into the flat ancestor/descendant/
|
|
356
|
+
// depth rows the `shield_authz.scope_closure` table stores. No I/O — the Task 1.2
|
|
357
|
+
// reconciler is the one that calls this against real edges and writes the rows back.
|
|
358
|
+
// `ScopeCycleError` / `ScopeDepthError` / `ScopeUnknownParentError` are the fail-loud
|
|
359
|
+
// exceptions a caller (the reconciler) must handle as data-corruption signals, never swallow.
|
|
360
|
+
var closure_builder_js_1 = require("./scope/closure-builder.js");
|
|
361
|
+
Object.defineProperty(exports, "buildClosureRows", { enumerable: true, get: function () { return closure_builder_js_1.buildClosureRows; } });
|
|
362
|
+
Object.defineProperty(exports, "ScopeCycleError", { enumerable: true, get: function () { return closure_builder_js_1.ScopeCycleError; } });
|
|
363
|
+
Object.defineProperty(exports, "ScopeDepthError", { enumerable: true, get: function () { return closure_builder_js_1.ScopeDepthError; } });
|
|
364
|
+
Object.defineProperty(exports, "ScopeUnknownParentError", { enumerable: true, get: function () { return closure_builder_js_1.ScopeUnknownParentError; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations-dir.js","sourceRoot":"","sources":["../src/migrations-dir.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,yCAAiC;AAEpB,QAAA,kBAAkB,GAAW,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shield-tokens.js","sourceRoot":"","sources":["../../src/module/shield-tokens.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;;;;;;;;;GAUG;AACH,qCAAyD;AAAhD,iHAAA,yBAAyB,OAAA"}
|