@stratum-hq/lib 1.6.0 → 1.8.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/README.md +49 -20
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +50 -10
- package/dist/crypto.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/migrate-schemas.d.ts +4 -0
- package/dist/migrate-schemas.d.ts.map +1 -1
- package/dist/migrate-schemas.js +17 -7
- package/dist/migrate-schemas.js.map +1 -1
- package/dist/migrate.d.ts +24 -0
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +44 -6
- package/dist/migrate.js.map +1 -1
- package/dist/migration-sql.d.ts +25 -0
- package/dist/migration-sql.d.ts.map +1 -0
- package/dist/migration-sql.js +64 -0
- package/dist/migration-sql.js.map +1 -0
- package/dist/migrations/001_init.sql +3 -3
- package/dist/migrations/029_tenant_parent_cycle_guard.sql +2 -2
- package/dist/migrations/031_subtree_read_scope.sql +307 -0
- package/dist/migrations/032_control_role.sql +809 -0
- package/dist/migrations/033_api_keys_tenant_index.sql +14 -0
- package/dist/pinned-query.d.ts +29 -0
- package/dist/pinned-query.d.ts.map +1 -0
- package/dist/pinned-query.js +60 -0
- package/dist/pinned-query.js.map +1 -0
- package/dist/pool-helpers.d.ts +2 -0
- package/dist/pool-helpers.d.ts.map +1 -1
- package/dist/pool-helpers.js +17 -3
- package/dist/pool-helpers.js.map +1 -1
- package/dist/role-model.d.ts +178 -0
- package/dist/role-model.d.ts.map +1 -0
- package/dist/role-model.js +670 -0
- package/dist/role-model.js.map +1 -0
- package/dist/scoped-job.d.ts +9 -1
- package/dist/scoped-job.d.ts.map +1 -1
- package/dist/scoped-job.js +3 -2
- package/dist/scoped-job.js.map +1 -1
- package/dist/services/abac-service.js +1 -1
- package/dist/services/abac-service.js.map +1 -1
- package/dist/services/api-key-service.d.ts +13 -3
- package/dist/services/api-key-service.d.ts.map +1 -1
- package/dist/services/api-key-service.js +33 -9
- package/dist/services/api-key-service.js.map +1 -1
- package/dist/services/config-service.d.ts +15 -6
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +101 -55
- package/dist/services/config-service.js.map +1 -1
- package/dist/services/event-service.js +2 -2
- package/dist/services/event-service.js.map +1 -1
- package/dist/services/permission-service.js +1 -1
- package/dist/services/permission-service.js.map +1 -1
- package/dist/services/rate-limit-service.d.ts +3 -3
- package/dist/services/region-service.js +1 -1
- package/dist/services/region-service.js.map +1 -1
- package/dist/services/retention-service.d.ts +2 -2
- package/dist/services/retention-service.js +2 -2
- package/dist/services/role-service.d.ts +1 -1
- package/dist/services/role-service.js +1 -1
- package/dist/services/tenant-service.d.ts +2 -2
- package/dist/services/tenant-service.d.ts.map +1 -1
- package/dist/services/tenant-service.js +8 -8
- package/dist/services/tenant-service.js.map +1 -1
- package/dist/stratum-policies.d.ts +51 -0
- package/dist/stratum-policies.d.ts.map +1 -0
- package/dist/stratum-policies.js +217 -0
- package/dist/stratum-policies.js.map +1 -0
- package/dist/stratum-tables.d.ts.map +1 -1
- package/dist/stratum-tables.js +1 -0
- package/dist/stratum-tables.js.map +1 -1
- package/dist/stratum.d.ts +56 -11
- package/dist/stratum.d.ts.map +1 -1
- package/dist/stratum.js +82 -21
- package/dist/stratum.js.map +1 -1
- package/dist/telemetry.d.ts +2 -2
- package/dist/telemetry.js +4 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/url-redaction.js +1 -1
- package/dist/url-redaction.js.map +1 -1
- package/package.json +21 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-model.js","sourceRoot":"","sources":["../src/role-model.ts"],"names":[],"mappings":"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"}
|
package/dist/scoped-job.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type pg from "pg";
|
|
2
|
+
import { type TenantScope } from "@stratum-hq/db-adapters";
|
|
2
3
|
import type { ResolvedTenantContext } from "@stratum-hq/core";
|
|
3
4
|
/**
|
|
4
5
|
* The unit of work a background job runs. It receives the RLS-scoped pooled
|
|
@@ -19,6 +20,12 @@ export interface RunScopedJobOptions {
|
|
|
19
20
|
* it only enriches what in-job code can read from the ALS context.
|
|
20
21
|
*/
|
|
21
22
|
resolve?: (tenantId: string) => ResolvedTenantContext | Promise<ResolvedTenantContext>;
|
|
23
|
+
/**
|
|
24
|
+
* The read scope of the job's client. "subtree" also lets the job read the
|
|
25
|
+
* rows of every descendant of the tenant (migration 031). Writes stay
|
|
26
|
+
* limited to the tenant. Default "exact".
|
|
27
|
+
*/
|
|
28
|
+
scope?: TenantScope;
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* Runs a background job bound to a single tenant.
|
|
@@ -51,7 +58,8 @@ export interface RunScopedJobOptions {
|
|
|
51
58
|
* @param tenantId The tenant the job is confined to.
|
|
52
59
|
* @param fn The job body; receives the tenant-scoped client.
|
|
53
60
|
* @param options Optionally resolve the full ALS context (see
|
|
54
|
-
* {@link RunScopedJobOptions.resolve})
|
|
61
|
+
* {@link RunScopedJobOptions.resolve}) and set the read scope
|
|
62
|
+
* (see {@link RunScopedJobOptions.scope}).
|
|
55
63
|
*/
|
|
56
64
|
export declare function runScopedJob<T>(pool: pg.Pool, tenantId: string, fn: ScopedJobFn<T>, options?: RunScopedJobOptions): Promise<T>;
|
|
57
65
|
//# sourceMappingURL=scoped-job.d.ts.map
|
package/dist/scoped-job.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-job.d.ts","sourceRoot":"","sources":["../src/scoped-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"scoped-job.d.ts","sourceRoot":"","sources":["../src/scoped-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,CACR,QAAQ,EAAE,MAAM,KACb,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE5D;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,CAAC,CAAC,CAOZ"}
|
package/dist/scoped-job.js
CHANGED
|
@@ -45,12 +45,13 @@ function placeholderContext(tenantId) {
|
|
|
45
45
|
* @param tenantId The tenant the job is confined to.
|
|
46
46
|
* @param fn The job body; receives the tenant-scoped client.
|
|
47
47
|
* @param options Optionally resolve the full ALS context (see
|
|
48
|
-
* {@link RunScopedJobOptions.resolve})
|
|
48
|
+
* {@link RunScopedJobOptions.resolve}) and set the read scope
|
|
49
|
+
* (see {@link RunScopedJobOptions.scope}).
|
|
49
50
|
*/
|
|
50
51
|
async function runScopedJob(pool, tenantId, fn, options = {}) {
|
|
51
52
|
const context = options.resolve
|
|
52
53
|
? await options.resolve(tenantId)
|
|
53
54
|
: placeholderContext(tenantId);
|
|
54
|
-
return (0, sdk_1.runWithTenantContext)(context, () => (0, db_adapters_1.withTenantContext)(pool, tenantId, fn));
|
|
55
|
+
return (0, sdk_1.runWithTenantContext)(context, () => (0, db_adapters_1.withTenantContext)(pool, tenantId, fn, { scope: options.scope }));
|
|
55
56
|
}
|
|
56
57
|
//# sourceMappingURL=scoped-job.js.map
|
package/dist/scoped-job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-job.js","sourceRoot":"","sources":["../src/scoped-job.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"scoped-job.js","sourceRoot":"","sources":["../src/scoped-job.ts"],"names":[],"mappings":";;AAkFA,oCAYC;AA7FD,yCAAuD;AACvD,yDAA8E;AAC9E,2CAAqD;AAkCrD,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO;QACL,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,EAAE;QACnB,oBAAoB,EAAE,EAAE;QACxB,kBAAkB,EAAE,wBAAiB,CAAC,UAAU;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACI,KAAK,UAAU,YAAY,CAChC,IAAa,EACb,QAAgB,EAChB,EAAkB,EAClB,UAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;QAC7B,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,IAAA,0BAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,CACxC,IAAA,+BAAiB,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAChE,CAAC;AACJ,CAAC"}
|
|
@@ -99,7 +99,7 @@ async function resolveAbacPolicies(pool, tenantId) {
|
|
|
99
99
|
const compositeKey = `${policy.resource_type}:${policy.action}:${policy.name}`;
|
|
100
100
|
const existing = resolvedMap.get(compositeKey) ?? [];
|
|
101
101
|
if (existing.some((r) => r.locked && r.source_tenant_id !== currentTenantId)) {
|
|
102
|
-
// Locked by an ancestor
|
|
102
|
+
// Locked by an ancestor; descendants cannot override it
|
|
103
103
|
continue;
|
|
104
104
|
}
|
|
105
105
|
const resolvedPolicy = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abac-service.js","sourceRoot":"","sources":["../../src/services/abac-service.ts"],"names":[],"mappings":";;AA6BA,8CAyCC;AAMD,wCAQC;AAUD,kDAmEC;AAaD,oCA6FC;AAUD,4CA6CC;AAKD,0CAWC;AAMD,4CAqDC;AA5YD,wDAAiE;AACjE,2DAAiE;AACjE,oDAA8C;AAC9C,2CAc0B;AAE1B,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,SAAwB,EACxB,OAAgC;IAEhC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC;IAE5B,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,IAAI;YACP,OAAO,IAAI,KAAK,GAAG,CAAC;QAEtB,KAAK,KAAK;YACR,OAAO,IAAI,KAAK,GAAG,CAAC;QAEtB,KAAK,IAAI;YACP,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElD,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnD,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnD,KAAK,IAAI;YACP,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC;QAE3E,KAAK,KAAK;YACR,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC;QAE5E,KAAK,IAAI;YACP,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC;QAE3E,KAAK,KAAK;YACR,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC;QAE5E;YACE,MAAM,IAAI,+BAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,MAAkB,EAClB,OAAgC;IAEhC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACvC,IAAa,EACb,QAAgB;IAEhB,OAAO,IAAA,4BAAU,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACvC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC,iDAAiD,EACjD,CAAC,QAAQ,CAAC,CACX,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,0BAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACrD,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE1C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CACpC,8EAA8E,EAC9E,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;QACjD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAC;QAE5D,KAAK,MAAM,eAAe,IAAI,MAAM,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAErD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAErD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,gBAAgB,KAAK,eAAe,CAAC,EAAE,CAAC;oBAC7E,
|
|
1
|
+
{"version":3,"file":"abac-service.js","sourceRoot":"","sources":["../../src/services/abac-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export interface CreatedApiKey {
|
|
|
17
17
|
key_prefix: string | null;
|
|
18
18
|
name: string | null;
|
|
19
19
|
created_at: Date;
|
|
20
|
-
/** Plaintext key
|
|
20
|
+
/** Plaintext key: only returned on creation, never stored */
|
|
21
21
|
plaintext_key: string;
|
|
22
22
|
}
|
|
23
23
|
export declare function generateKey(keyPrefix: string): {
|
|
@@ -31,7 +31,7 @@ export interface CreateApiKeyOptions {
|
|
|
31
31
|
rateLimitMax?: number;
|
|
32
32
|
rateLimitWindow?: string;
|
|
33
33
|
}
|
|
34
|
-
export declare function createApiKey(pool: pg.Pool, keyPrefix: string, tenantId: string, nameOrOptions?: string | CreateApiKeyOptions, expiresAt?: Date): Promise<CreatedApiKey>;
|
|
34
|
+
export declare function createApiKey(pool: pg.Pool, keyPrefix: string, tenantId: string | null, nameOrOptions?: string | CreateApiKeyOptions, expiresAt?: Date): Promise<CreatedApiKey>;
|
|
35
35
|
export interface ValidatedApiKey {
|
|
36
36
|
tenant_id: string | null;
|
|
37
37
|
key_id: string;
|
|
@@ -39,7 +39,17 @@ export interface ValidatedApiKey {
|
|
|
39
39
|
rate_limit_max: number | null;
|
|
40
40
|
rate_limit_window: string | null;
|
|
41
41
|
}
|
|
42
|
-
export
|
|
42
|
+
export interface ValidateApiKeyOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Accept a key stored with the unkeyed SHA-256 hash (version 1) while
|
|
45
|
+
* STRATUM_API_KEY_HMAC_SECRET is set, and re-hash it with HMAC when it
|
|
46
|
+
* authenticates. Default true in 1.x; the default becomes false in 2.0.
|
|
47
|
+
*/
|
|
48
|
+
allowLegacyHashes?: boolean;
|
|
49
|
+
/** Called when a version 1 hash authenticated while the HMAC secret is set. */
|
|
50
|
+
onLegacyHash?: () => void;
|
|
51
|
+
}
|
|
52
|
+
export declare function validateApiKey(pool: pg.Pool, key: string, options?: ValidateApiKeyOptions): Promise<ValidatedApiKey | null>;
|
|
43
53
|
export declare function revokeApiKey(pool: pg.Pool, keyId: string): Promise<boolean>;
|
|
44
54
|
export declare function rotateApiKey(pool: pg.Pool, keyPrefix: string, oldKeyId: string, newName?: string): Promise<CreatedApiKey>;
|
|
45
55
|
export declare function listApiKeys(pool: pg.Pool, tenantId?: string): Promise<Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-service.d.ts","sourceRoot":"","sources":["../../src/services/api-key-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"api-key-service.d.ts","sourceRoot":"","sources":["../../src/services/api-key-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,19 @@ const core_1 = require("@stratum-hq/core");
|
|
|
18
18
|
// --- Hashing ---
|
|
19
19
|
const HASH_V1_SHA256 = 1;
|
|
20
20
|
const HASH_V2_HMAC = 2;
|
|
21
|
+
// The shortest STRATUM_API_KEY_HMAC_SECRET accepted outside development and
|
|
22
|
+
// test (an unset NODE_ENV counts as development), checked when the module
|
|
23
|
+
// loads, like STRATUM_ENCRYPTION_KEY in crypto.ts.
|
|
24
|
+
const MIN_HMAC_SECRET_BYTES = 32;
|
|
25
|
+
(() => {
|
|
26
|
+
const nodeEnv = process.env.NODE_ENV || "development";
|
|
27
|
+
if (nodeEnv === "development" || nodeEnv === "test")
|
|
28
|
+
return;
|
|
29
|
+
const secret = process.env.STRATUM_API_KEY_HMAC_SECRET;
|
|
30
|
+
if (secret && Buffer.byteLength(secret, "utf8") < MIN_HMAC_SECRET_BYTES) {
|
|
31
|
+
throw new Error(`STRATUM_API_KEY_HMAC_SECRET must be at least ${MIN_HMAC_SECRET_BYTES} bytes in ${nodeEnv}`);
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
21
34
|
function getHmacSecret() {
|
|
22
35
|
return process.env.STRATUM_API_KEY_HMAC_SECRET;
|
|
23
36
|
}
|
|
@@ -66,7 +79,10 @@ async function createApiKey(pool, keyPrefix, tenantId, nameOrOptions, expiresAt)
|
|
|
66
79
|
: { name: nameOrOptions, expiresAt };
|
|
67
80
|
const { plaintextKey, keyHash, hashVersion } = generateKey(keyPrefix);
|
|
68
81
|
return (0, pool_helpers_js_1.withClient)(pool, async (client) => {
|
|
69
|
-
|
|
82
|
+
// A global key (tenantId null) has no tenant whose state could block it.
|
|
83
|
+
if (tenantId !== null) {
|
|
84
|
+
await assertTenantAcceptsKeys(client, tenantId, "create an API key for");
|
|
85
|
+
}
|
|
70
86
|
const res = await client.query(`INSERT INTO api_keys (tenant_id, key_hash, key_prefix, name, expires_at, rate_limit_max, rate_limit_window, hash_version)
|
|
71
87
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
|
|
72
88
|
RETURNING *`, [tenantId, keyHash, keyPrefix, opts.name ?? null, opts.expiresAt ?? null, opts.rateLimitMax ?? null, opts.rateLimitWindow ?? null, hashVersion]);
|
|
@@ -92,14 +108,20 @@ const STAMP_INTERVAL_SECONDS = 60;
|
|
|
92
108
|
* that waits on a row lock then cannot delay authentication for longer.
|
|
93
109
|
*/
|
|
94
110
|
const STAMP_TIMEOUT_MS = 1000;
|
|
95
|
-
async function validateApiKey(pool, key) {
|
|
111
|
+
async function validateApiKey(pool, key, options = {}) {
|
|
96
112
|
const hmacSecret = getHmacSecret();
|
|
97
|
-
//
|
|
113
|
+
// Candidate hashes. With an HMAC secret, HMAC hashes (version 2) come
|
|
114
|
+
// first, because they depend on a secret only the server holds. The legacy
|
|
115
|
+
// SHA-256 hashes (version 1) are tried too unless the caller turned
|
|
116
|
+
// allowLegacyHashes off. 1.x accepts them by default and re-hashes each
|
|
117
|
+
// on use; 2.0 will not. Without a secret, SHA-256 is the only hash there is.
|
|
98
118
|
const candidates = [];
|
|
99
119
|
if (hmacSecret) {
|
|
100
120
|
candidates.push({ hash: hmacHash(key, hmacSecret), version: HASH_V2_HMAC });
|
|
101
121
|
}
|
|
102
|
-
|
|
122
|
+
if (!hmacSecret || options.allowLegacyHashes !== false) {
|
|
123
|
+
candidates.push({ hash: sha256Hash(key), version: HASH_V1_SHA256 });
|
|
124
|
+
}
|
|
103
125
|
// Everything below runs on one pooled connection: nothing here may acquire a
|
|
104
126
|
// second connection while this one is held.
|
|
105
127
|
const found = await (0, pool_helpers_js_1.withClient)(pool, async (client) => {
|
|
@@ -110,7 +132,7 @@ async function validateApiKey(pool, key) {
|
|
|
110
132
|
(ak.last_used_at IS NULL OR ak.last_used_at < now() - make_interval(secs => $2)) AS stamp_due
|
|
111
133
|
FROM api_keys ak
|
|
112
134
|
LEFT JOIN tenants t ON t.id = ak.tenant_id
|
|
113
|
-
WHERE ak.key_hash = $1 AND ak.revoked_at IS NULL AND (ak.expires_at IS NULL OR ak.expires_at > now())
|
|
135
|
+
WHERE ak.key_hash = $1 AND ak.hash_version = $3 AND ak.revoked_at IS NULL AND (ak.expires_at IS NULL OR ak.expires_at > now())
|
|
114
136
|
AND (ak.tenant_id IS NULL OR (
|
|
115
137
|
t.status = 'active'
|
|
116
138
|
AND NOT EXISTS (
|
|
@@ -118,7 +140,7 @@ async function validateApiKey(pool, key) {
|
|
|
118
140
|
WHERE anc.id = ANY (string_to_array(trim(both '/' from t.ancestry_path), '/')::uuid[])
|
|
119
141
|
AND anc.status <> 'active'
|
|
120
142
|
)
|
|
121
|
-
))`, [candidate.hash, STAMP_INTERVAL_SECONDS]);
|
|
143
|
+
))`, [candidate.hash, STAMP_INTERVAL_SECONDS, candidate.version]);
|
|
122
144
|
if (res.rows.length === 0)
|
|
123
145
|
continue;
|
|
124
146
|
const row = res.rows[0];
|
|
@@ -144,17 +166,19 @@ async function validateApiKey(pool, key) {
|
|
|
144
166
|
// When a stamp is due, we await it so that a read made after validateApiKey
|
|
145
167
|
// resolves sees the new last_used_at. Without the await, listDormantKeys can
|
|
146
168
|
// report a just-used key.
|
|
147
|
-
// Transparent upgrade: if we matched via legacy SHA-256
|
|
148
|
-
//
|
|
169
|
+
// Transparent upgrade: if we matched via legacy SHA-256 and the HMAC secret
|
|
170
|
+
// is set, re-hash with HMAC and update the stored hash in place.
|
|
149
171
|
const { row } = found;
|
|
150
172
|
const upgrade = row.hash_version === HASH_V1_SHA256 && hmacSecret;
|
|
173
|
+
if (upgrade)
|
|
174
|
+
options.onLegacyHash?.();
|
|
151
175
|
if (!upgrade && !row.stamp_due)
|
|
152
176
|
return found.validated;
|
|
153
177
|
await (0, pool_helpers_js_1.withClient)(pool, async (client) => {
|
|
154
178
|
// SET LOCAL ends with this transaction, so the pooled connection keeps its own timeout.
|
|
155
179
|
await client.query(`SET LOCAL statement_timeout = ${STAMP_TIMEOUT_MS}`);
|
|
156
180
|
return upgrade
|
|
157
|
-
? client.query(`UPDATE api_keys SET key_hash = $1, hash_version = $2, last_used_at = now() WHERE id = $3`, [hmacHash(key, hmacSecret), HASH_V2_HMAC, row.id])
|
|
181
|
+
? client.query(`UPDATE api_keys SET key_hash = $1, hash_version = $2, last_used_at = now() WHERE id = $3 AND hash_version = 1`, [hmacHash(key, hmacSecret), HASH_V2_HMAC, row.id])
|
|
158
182
|
: // The condition repeats the check, so a concurrent request that stamped first wins.
|
|
159
183
|
client.query(`UPDATE api_keys SET last_used_at = now()
|
|
160
184
|
WHERE id = $1 AND (last_used_at IS NULL OR last_used_at < now() - make_interval(secs => $2))`, [row.id, STAMP_INTERVAL_SECONDS]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-service.js","sourceRoot":"","sources":["../../src/services/api-key-service.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"api-key-service.js","sourceRoot":"","sources":["../../src/services/api-key-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import pg from "pg";
|
|
2
|
-
import { type ConfigEntry, type SetConfigInput, type BatchSetConfigEntry, type ResolvedConfig, type BatchSetConfigResult } from "@stratum-hq/core";
|
|
2
|
+
import { type ConfigEntry, type SetConfigInput, type BatchSetConfigEntry, type ResolvedConfig, type ResolveConfigOptions, type BatchSetConfigResult } from "@stratum-hq/core";
|
|
3
3
|
/**
|
|
4
4
|
* Resolve the effective config for a tenant by batch-loading ancestor configs
|
|
5
5
|
* in a single query and walking root→leaf.
|
|
6
|
+
*
|
|
7
|
+
* Sensitive values inherited from an ancestor come back masked unless
|
|
8
|
+
* `options` reveals them (see {@link ResolveConfigOptions}).
|
|
6
9
|
*/
|
|
7
|
-
export declare function resolveConfig(pool: pg.Pool, tenantId: string): Promise<ResolvedConfig>;
|
|
10
|
+
export declare function resolveConfig(pool: pg.Pool, tenantId: string, options?: ResolveConfigOptions): Promise<ResolvedConfig>;
|
|
8
11
|
/**
|
|
9
12
|
* Set (upsert) a config key for a tenant.
|
|
10
13
|
* Rejects if the key is locked by an ancestor.
|
|
11
14
|
*/
|
|
12
15
|
export declare function setConfig(pool: pg.Pool, tenantId: string, key: string, input: SetConfigInput): Promise<ConfigEntry>;
|
|
13
16
|
/**
|
|
14
|
-
* Set multiple config keys for a tenant in a single transaction.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
+
* Set multiple config keys for a tenant in a single, atomic transaction.
|
|
18
|
+
*
|
|
19
|
+
* Every entry is checked before anything is written. If any key is locked by
|
|
20
|
+
* an active ancestor or is invalid, the whole batch is rolled back: nothing is
|
|
21
|
+
* written, `rolled_back` is true, and each result has status "error". The
|
|
22
|
+
* offending keys carry their own reason; the rest name the keys that caused
|
|
23
|
+
* the rollback.
|
|
17
24
|
*/
|
|
18
25
|
export declare function batchSetConfig(pool: pg.Pool, tenantId: string, entries: BatchSetConfigEntry[]): Promise<BatchSetConfigResult>;
|
|
19
26
|
/**
|
|
@@ -23,6 +30,8 @@ export declare function deleteConfig(pool: pg.Pool, tenantId: string, key: strin
|
|
|
23
30
|
/**
|
|
24
31
|
* Return all config entries for a tenant showing inheritance status:
|
|
25
32
|
* inherited (from ancestor), overridden (tenant has own value), or locked.
|
|
33
|
+
*
|
|
34
|
+
* Inherited sensitive values are masked as in {@link resolveConfig}.
|
|
26
35
|
*/
|
|
27
|
-
export declare function getConfigWithInheritance(pool: pg.Pool, tenantId: string): Promise<ResolvedConfig>;
|
|
36
|
+
export declare function getConfigWithInheritance(pool: pg.Pool, tenantId: string, options?: ResolveConfigOptions): Promise<ResolvedConfig>;
|
|
28
37
|
//# sourceMappingURL=config-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../src/services/config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAO1B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../src/services/config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAO1B,MAAM,kBAAkB,CAAC;AAyC1B;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,CAAC,CAmEzB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,WAAW,CAAC,CA2CtB;AAsBD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAwF/B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,CAAC,CAwFzB"}
|