@substrat-run/adapter-cloudflare 0.23.0 → 0.25.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/checker.d.ts +5 -2
- package/dist/checker.d.ts.map +1 -1
- package/dist/checker.js +14 -0
- package/dist/checker.js.map +1 -1
- package/dist/control-plane-do.d.ts +37 -5
- package/dist/control-plane-do.d.ts.map +1 -1
- package/dist/control-plane-do.js +160 -21
- package/dist/control-plane-do.js.map +1 -1
- package/dist/host.d.ts +12 -5
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +130 -30
- package/dist/host.js.map +1 -1
- package/dist/scope-do.d.ts.map +1 -1
- package/dist/scope-do.js +179 -19
- package/dist/scope-do.js.map +1 -1
- package/package.json +4 -4
package/dist/checker.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RoleDefinition } from '@substrat-run/contracts';
|
|
1
|
+
import { type EntitlementView, type RoleDefinition } from '@substrat-run/contracts';
|
|
2
2
|
import type { PermissionChecker } from '@substrat-run/kernel';
|
|
3
3
|
interface TupleRow {
|
|
4
4
|
subject: string;
|
|
@@ -7,10 +7,13 @@ interface TupleRow {
|
|
|
7
7
|
expires_at: string | null;
|
|
8
8
|
revoked_at: string | null;
|
|
9
9
|
}
|
|
10
|
-
/** The slice of the ControlPlaneDO the checker
|
|
10
|
+
/** The slice of the ControlPlaneDO the checker (and the entitlement read surface) consult for
|
|
11
|
+
* tenant-level data. `listEntitlements` returns only CURRENTLY-HELD grants (expiry applied at
|
|
12
|
+
* read), so "the tenant holds key K" is exactly "K is in the returned list" — #304. */
|
|
11
13
|
export interface ControlPlaneReader {
|
|
12
14
|
tenantTuples(tenantId: string, subject: string, relationPrefix: string): Promise<TupleRow[]>;
|
|
13
15
|
getRole(tenantId: string, key: string): Promise<RoleDefinition | undefined>;
|
|
16
|
+
listEntitlements(tenantId: string): Promise<EntitlementView[]>;
|
|
14
17
|
}
|
|
15
18
|
export interface DoCheckerDeps {
|
|
16
19
|
/** This ScopeDO's own SQL storage — scope + entity tuples live here. */
|
package/dist/checker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EAMpB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmB9D,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;wFAEwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC5E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,EAAE,UAAU,CAAC;IACrB,8DAA8D;IAC9D,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAiDjF;AAQD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,CAyJ3E"}
|
package/dist/checker.js
CHANGED
|
@@ -44,6 +44,20 @@ export function createLocalControlPlaneReader(sql) {
|
|
|
44
44
|
return undefined;
|
|
45
45
|
return { key: row.role_key, permissions: JSON.parse(row.permissions), source: row.source };
|
|
46
46
|
},
|
|
47
|
+
async listEntitlements(tenantId) {
|
|
48
|
+
// Only currently-held grants: an expired row is absent from the view exactly as it is
|
|
49
|
+
// absent from the gate (#33/#304). ISO instants compare lexically, evaluated at read.
|
|
50
|
+
const rows = sql
|
|
51
|
+
.exec(`SELECT entitlement_key, plan, quota, expires_at FROM _substrat_entitlements
|
|
52
|
+
WHERE tenant_id = ? AND (expires_at IS NULL OR expires_at > ?)`, tenantId, new Date().toISOString())
|
|
53
|
+
.toArray();
|
|
54
|
+
return rows.map((r) => ({
|
|
55
|
+
key: r.entitlement_key,
|
|
56
|
+
plan: r.plan,
|
|
57
|
+
quota: r.quota,
|
|
58
|
+
expiresAt: r.expires_at,
|
|
59
|
+
}));
|
|
60
|
+
},
|
|
47
61
|
};
|
|
48
62
|
}
|
|
49
63
|
const t = (subject, relation, object) => ({
|
package/dist/checker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,15 @@ interface TupleRow {
|
|
|
24
24
|
object: string;
|
|
25
25
|
expires_at: string | null;
|
|
26
26
|
}
|
|
27
|
+
/** An entitlement grant as stored (#33) — nulls = the pre-widening boolean flag. */
|
|
28
|
+
export interface EntitlementRow {
|
|
29
|
+
entitlement_key: string;
|
|
30
|
+
expires_at: string | null;
|
|
31
|
+
quota: number | null;
|
|
32
|
+
plan: string | null;
|
|
33
|
+
granted_at: string | null;
|
|
34
|
+
granted_by: string | null;
|
|
35
|
+
}
|
|
27
36
|
/** The raw role row; `permissions` is a JSON blob in a TEXT column. */
|
|
28
37
|
/** A connection row as the DO stores it (#101). Never carries the credential. */
|
|
29
38
|
export interface ConnectionDoRow {
|
|
@@ -72,6 +81,8 @@ export interface ScopeRow {
|
|
|
72
81
|
expires_at: string | null;
|
|
73
82
|
/** The dispatch script this scope's data lives in (#286); null = per-version dispatch. */
|
|
74
83
|
serving_ref: string | null;
|
|
84
|
+
/** When the scope last entered `archived` (§4.4); null if never archived. */
|
|
85
|
+
archived_at: string | null;
|
|
75
86
|
created_at: string;
|
|
76
87
|
}
|
|
77
88
|
export interface HostnameRow {
|
|
@@ -226,6 +237,15 @@ export declare class ControlPlaneDO extends DurableObject {
|
|
|
226
237
|
createTenant(id: string, slug: string, name: string, createdAt: string): Tenant | null;
|
|
227
238
|
/** Throw if absent; else UPDATE and return the previous status. */
|
|
228
239
|
setTenantStatus(tenantId: string, status: TenantStatus): string;
|
|
240
|
+
/**
|
|
241
|
+
* The terminal tenant reap (§4.8), the tenant analogue of reapScope. The caller
|
|
242
|
+
* has already reaped every scope's storage above the DO; this clears the tenant's
|
|
243
|
+
* directory-side PII/config rows and flips the row to a `reaped` tombstone. Only a
|
|
244
|
+
* `deleting` tenant may be reaped — an illegal source fails closed. Returns the
|
|
245
|
+
* previous status (for the audit before/after). Idempotent: set-to-empty DELETEs
|
|
246
|
+
* plus the status flip converge on a re-run after a partial failure.
|
|
247
|
+
*/
|
|
248
|
+
reapTenant(tenantId: string): string;
|
|
229
249
|
/** Rename the DISPLAY name (never the slug); throw if absent; return the previous name. */
|
|
230
250
|
setTenantName(tenantId: string, name: string): string;
|
|
231
251
|
getTenant(tenantId: string): Tenant | undefined;
|
|
@@ -398,12 +418,24 @@ export declare class ControlPlaneDO extends DurableObject {
|
|
|
398
418
|
* write path, projecting into a tenant's scopes.
|
|
399
419
|
*/
|
|
400
420
|
dumpTenantTuples(tenantId: string): TupleRow[];
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
421
|
+
private readEntitlement;
|
|
422
|
+
/**
|
|
423
|
+
* Upsert; returns before/after for the host's audit row, `changed: false` when
|
|
424
|
+
* the merged result equals what the row already carried (not audited upstream).
|
|
425
|
+
*/
|
|
426
|
+
grantEntitlement(tenantId: string, key: string, input: {
|
|
427
|
+
expiresAt?: string | null;
|
|
428
|
+
quota?: number | null;
|
|
429
|
+
plan?: string | null;
|
|
430
|
+
}, actor: string): {
|
|
431
|
+
changed: boolean;
|
|
432
|
+
before: EntitlementRow | null;
|
|
433
|
+
after: EntitlementRow;
|
|
434
|
+
};
|
|
435
|
+
/** DELETE; returns the removed row (the host's audit `before`), null if none. */
|
|
436
|
+
revokeEntitlement(tenantId: string, key: string): EntitlementRow | null;
|
|
405
437
|
tenantHoldsEntitlement(tenantId: string, key: string): boolean;
|
|
406
|
-
listEntitlements(tenantId: string):
|
|
438
|
+
listEntitlements(tenantId: string): EntitlementRow[];
|
|
407
439
|
readPool(provider: string): {
|
|
408
440
|
provider: string;
|
|
409
441
|
topology: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane-do.d.ts","sourceRoot":"","sources":["../src/control-plane-do.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-plane-do.d.ts","sourceRoot":"","sources":["../src/control-plane-do.ts"],"names":[],"mappings":"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"}
|
package/dist/control-plane-do.js
CHANGED
|
@@ -8,7 +8,10 @@ const DIRECTORY_DDL = `
|
|
|
8
8
|
slug TEXT NOT NULL,
|
|
9
9
|
name TEXT NOT NULL,
|
|
10
10
|
status TEXT NOT NULL DEFAULT 'active',
|
|
11
|
-
created_at TEXT NOT NULL
|
|
11
|
+
created_at TEXT NOT NULL,
|
|
12
|
+
-- When the tenant last entered the deleting state; NULL otherwise. The
|
|
13
|
+
-- grace-window reap sweep ages a tenant off this (§4.8), mirroring archived_at.
|
|
14
|
+
deleting_at TEXT
|
|
12
15
|
);
|
|
13
16
|
-- slug/kind/name/vertical are nullable here but required (except vertical) by
|
|
14
17
|
-- the scope contract — the column set must match whether the table was created
|
|
@@ -38,6 +41,10 @@ const DIRECTORY_DDL = `
|
|
|
38
41
|
forked_from TEXT,
|
|
39
42
|
forked_at TEXT,
|
|
40
43
|
expires_at TEXT,
|
|
44
|
+
-- When the scope last entered the archived state (§4.4). Drives the reap sweep's age
|
|
45
|
+
-- filter (archived longer than N days); null for scopes that never archived. Stamped
|
|
46
|
+
-- by transitionScope on the edge into archived, cleared on unarchive.
|
|
47
|
+
archived_at TEXT,
|
|
41
48
|
-- The scope's data lives in THIS dispatch script (#286). NULL = legacy per-version
|
|
42
49
|
-- dispatch (the bound version's own script). Set at provision once the vertical has
|
|
43
50
|
-- a serving script, or by adopt-serving when a legacy scope's data is moved over.
|
|
@@ -154,9 +161,17 @@ const DIRECTORY_DDL = `
|
|
|
154
161
|
source TEXT NOT NULL,
|
|
155
162
|
PRIMARY KEY (tenant_id, role_key)
|
|
156
163
|
);
|
|
164
|
+
-- #33 widens the SKU flag into a plan: expires_at is enforced at the gate
|
|
165
|
+
-- (lazy-at-read); quota/plan are expression the builder portal consumes;
|
|
166
|
+
-- granted_at/granted_by NULL only on rows born before the widening.
|
|
157
167
|
CREATE TABLE IF NOT EXISTS _substrat_entitlements (
|
|
158
168
|
tenant_id TEXT NOT NULL,
|
|
159
169
|
entitlement_key TEXT NOT NULL,
|
|
170
|
+
expires_at TEXT,
|
|
171
|
+
quota INTEGER,
|
|
172
|
+
plan TEXT,
|
|
173
|
+
granted_at TEXT,
|
|
174
|
+
granted_by TEXT,
|
|
160
175
|
PRIMARY KEY (tenant_id, entitlement_key)
|
|
161
176
|
);
|
|
162
177
|
CREATE TABLE IF NOT EXISTS _substrat_identity_pools (
|
|
@@ -263,6 +278,7 @@ const SCOPE_COLUMNS_ADDED = [
|
|
|
263
278
|
'forked_at TEXT',
|
|
264
279
|
'expires_at TEXT',
|
|
265
280
|
'serving_ref TEXT',
|
|
281
|
+
'archived_at TEXT',
|
|
266
282
|
];
|
|
267
283
|
export class ControlPlaneDO extends DurableObject {
|
|
268
284
|
sql;
|
|
@@ -369,6 +385,8 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
369
385
|
for (const ddl of SCOPE_COLUMNS_ADDED) {
|
|
370
386
|
this.addColumn('scopes', ddl);
|
|
371
387
|
}
|
|
388
|
+
// §4.8's grace-window timestamp on tenants (mirrors scopes' archived_at).
|
|
389
|
+
this.addColumn('tenants', 'deleting_at TEXT');
|
|
372
390
|
// K-21's tombstone on tenant-level tuples (membership lives here).
|
|
373
391
|
this.addColumn('_substrat_tenant_tuples', 'revoked_at TEXT');
|
|
374
392
|
this.addColumn('_substrat_admin_log', 'caused_by TEXT');
|
|
@@ -386,12 +404,28 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
386
404
|
this.addColumn('verticals', 'serving_do_classes TEXT');
|
|
387
405
|
this.addColumn('verticals', 'serving_migration_tag TEXT');
|
|
388
406
|
this.addColumn('vertical_versions', 'manifest_json TEXT');
|
|
407
|
+
// #33: the SKU flag learns to express a plan. All nullable — a legacy row
|
|
408
|
+
// reads as a perpetual boolean flag, exactly its pre-widening semantics.
|
|
409
|
+
this.addColumn('_substrat_entitlements', 'expires_at TEXT');
|
|
410
|
+
this.addColumn('_substrat_entitlements', 'quota INTEGER');
|
|
411
|
+
this.addColumn('_substrat_entitlements', 'plan TEXT');
|
|
412
|
+
this.addColumn('_substrat_entitlements', 'granted_at TEXT');
|
|
413
|
+
this.addColumn('_substrat_entitlements', 'granted_by TEXT');
|
|
389
414
|
this.sql.exec("UPDATE scopes SET slug = lower(scope_id) WHERE slug IS NULL");
|
|
390
415
|
this.sql.exec("UPDATE scopes SET kind = 'scope' WHERE kind IS NULL");
|
|
391
416
|
this.sql.exec('UPDATE scopes SET name = slug WHERE name IS NULL');
|
|
392
417
|
// After the backfill: a UNIQUE index over NULL slugs would permit the
|
|
393
418
|
// duplicates it exists to forbid (SQLite treats NULLs as distinct).
|
|
394
|
-
|
|
419
|
+
//
|
|
420
|
+
// PARTIAL on the live statuses: an `archived` scope (a deleted app) and a `reaped`
|
|
421
|
+
// one keep their directory row as a tombstone but release their name (§4.4), so a new
|
|
422
|
+
// scope must be able to reclaim the slug while the tombstone survives — the same
|
|
423
|
+
// predicate `provisionScope`'s slug pre-check uses. A full index would let the
|
|
424
|
+
// tombstone block the reuse the contract intends. DROP-then-create migrates a
|
|
425
|
+
// directory DO carrying the old full index across a deploy.
|
|
426
|
+
this.sql.exec('DROP INDEX IF EXISTS scopes_tenant_slug');
|
|
427
|
+
this.sql.exec("CREATE UNIQUE INDEX IF NOT EXISTS scopes_tenant_slug ON scopes (tenant_id, slug) " +
|
|
428
|
+
"WHERE status NOT IN ('archived', 'reaped')");
|
|
395
429
|
this.sql.exec('CREATE UNIQUE INDEX IF NOT EXISTS tenants_slug ON tenants (slug)');
|
|
396
430
|
this.sql.exec('CREATE UNIQUE INDEX IF NOT EXISTS orgs_tenant_slug ON orgs (tenant_id, slug)');
|
|
397
431
|
}
|
|
@@ -403,6 +437,7 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
403
437
|
name: r.name,
|
|
404
438
|
status: r.status,
|
|
405
439
|
createdAt: r.created_at,
|
|
440
|
+
deletingAt: r.deleting_at ?? null,
|
|
406
441
|
};
|
|
407
442
|
}
|
|
408
443
|
readTenant(tenantId) {
|
|
@@ -434,7 +469,51 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
434
469
|
const before = this.readTenant(tenantId);
|
|
435
470
|
if (!before)
|
|
436
471
|
throw new Error(`unknown tenant: ${tenantId}`);
|
|
437
|
-
|
|
472
|
+
// `reaped` is terminal and destroys data — unreachable here, only ever set by
|
|
473
|
+
// reapTenant, so a plain status flip cannot forge a tombstone over live data
|
|
474
|
+
// (§4.8, the tenant analogue of reapScope's archived-only gate).
|
|
475
|
+
if (status === 'reaped') {
|
|
476
|
+
throw new Error(`tenant ${tenantId} cannot be set to 'reaped' via setTenantStatus — reap goes through reapTenant (control-plane.md §4.8)`);
|
|
477
|
+
}
|
|
478
|
+
// Stamp/clear deleting_at so the grace-window sweep can age tenants (§4.8):
|
|
479
|
+
// entering `deleting` stamps, leaving it (an un-delete) clears — the same shape
|
|
480
|
+
// transitionScope uses for archived_at.
|
|
481
|
+
if (status === 'deleting') {
|
|
482
|
+
this.sql.exec('UPDATE tenants SET status = ?, deleting_at = ? WHERE tenant_id = ?', status, new Date().toISOString(), tenantId);
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
this.sql.exec('UPDATE tenants SET status = ?, deleting_at = NULL WHERE tenant_id = ?', status, tenantId);
|
|
486
|
+
}
|
|
487
|
+
return before.status;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* The terminal tenant reap (§4.8), the tenant analogue of reapScope. The caller
|
|
491
|
+
* has already reaped every scope's storage above the DO; this clears the tenant's
|
|
492
|
+
* directory-side PII/config rows and flips the row to a `reaped` tombstone. Only a
|
|
493
|
+
* `deleting` tenant may be reaped — an illegal source fails closed. Returns the
|
|
494
|
+
* previous status (for the audit before/after). Idempotent: set-to-empty DELETEs
|
|
495
|
+
* plus the status flip converge on a re-run after a partial failure.
|
|
496
|
+
*/
|
|
497
|
+
reapTenant(tenantId) {
|
|
498
|
+
const before = this.readTenant(tenantId);
|
|
499
|
+
if (!before)
|
|
500
|
+
throw new Error(`unknown tenant: ${tenantId}`);
|
|
501
|
+
if (before.status !== 'deleting') {
|
|
502
|
+
throw new Error(`tenant ${tenantId} is ${before.status}, not deleting — only a deleting tenant may be reaped`);
|
|
503
|
+
}
|
|
504
|
+
// KEPT as the tombstone: the `tenants` row itself and `_substrat_admin_log` (the
|
|
505
|
+
// compliance witness — never swept). Scope rows were already reaped individually.
|
|
506
|
+
for (const table of [
|
|
507
|
+
'_substrat_identities', // PII: external subjects/emails bound to principals
|
|
508
|
+
'_substrat_identity_pools', // the tenant's IdP topology declarations
|
|
509
|
+
'_substrat_tenant_tuples', // membership + tenant-level grants
|
|
510
|
+
'_substrat_roles', // operator-defined roles
|
|
511
|
+
'_substrat_entitlements', // per-tenant SKU flags
|
|
512
|
+
'orgs', // K-22 org records
|
|
513
|
+
]) {
|
|
514
|
+
this.sql.exec(`DELETE FROM ${table} WHERE tenant_id = ?`, tenantId);
|
|
515
|
+
}
|
|
516
|
+
this.sql.exec("UPDATE tenants SET status = 'reaped', deleting_at = NULL WHERE tenant_id = ?", tenantId);
|
|
438
517
|
return before.status;
|
|
439
518
|
}
|
|
440
519
|
/** Rename the DISPLAY name (never the slug); throw if absent; return the previous name. */
|
|
@@ -472,10 +551,10 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
472
551
|
// re-provisioning must not collide with itself.
|
|
473
552
|
const existed = this.sql.exec('SELECT 1 FROM scopes WHERE scope_id = ?', scopeId).toArray()[0] !== undefined;
|
|
474
553
|
if (!existed) {
|
|
475
|
-
// An `archived` scope (a deleted app) has released its name —
|
|
476
|
-
//
|
|
554
|
+
// An `archived` scope (a deleted app) has released its name — and `reaped` is past
|
|
555
|
+
// archived, so it too has released it — both excluded so the slug can be reclaimed.
|
|
477
556
|
const slugOwner = this.sql
|
|
478
|
-
.exec("SELECT scope_id FROM scopes WHERE tenant_id = ? AND slug = ? AND status
|
|
557
|
+
.exec("SELECT scope_id FROM scopes WHERE tenant_id = ? AND slug = ? AND status NOT IN ('archived', 'reaped')", tenantId, record.slug)
|
|
479
558
|
.toArray()[0];
|
|
480
559
|
if (slugOwner) {
|
|
481
560
|
throw new Error(`scope slug '${record.slug}' already taken under tenant ${tenantId} ` +
|
|
@@ -601,7 +680,18 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
601
680
|
throw new Error(`illegal scope transition for ${action}: ${row.status} → ${to} ` +
|
|
602
681
|
`(allowed from: ${from.join('|')})`);
|
|
603
682
|
}
|
|
604
|
-
|
|
683
|
+
// Stamp/clear archived_at so the reap sweep can age scopes. Entering `archived`
|
|
684
|
+
// records when; `unarchive` (→ active, a restore per §4.2) clears it so a later
|
|
685
|
+
// re-archive dates from the new event. `reaped` keeps it — it is terminal history.
|
|
686
|
+
if (to === 'archived') {
|
|
687
|
+
this.sql.exec('UPDATE scopes SET status = ?, archived_at = ? WHERE scope_id = ?', to, new Date().toISOString(), scopeId);
|
|
688
|
+
}
|
|
689
|
+
else if (to === 'active') {
|
|
690
|
+
this.sql.exec('UPDATE scopes SET status = ?, archived_at = NULL WHERE scope_id = ?', to, scopeId);
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
this.sql.exec('UPDATE scopes SET status = ? WHERE scope_id = ?', to, scopeId);
|
|
694
|
+
}
|
|
605
695
|
return { status: row.status, vertical: row.vertical };
|
|
606
696
|
}
|
|
607
697
|
// -- roles (checker rule 1) -------------------------------------------------
|
|
@@ -889,30 +979,79 @@ export class ControlPlaneDO extends DurableObject {
|
|
|
889
979
|
.toArray();
|
|
890
980
|
}
|
|
891
981
|
// -- entitlements (control-plane.md §4.3) -----------------------------------
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
this.sql
|
|
897
|
-
|
|
898
|
-
|
|
982
|
+
// #33: the flag carries plan fields. The PATCH merge (omitted preserves, null
|
|
983
|
+
// clears) lives HERE so there is exactly one implementation per adapter; the
|
|
984
|
+
// host audits from the before/after this returns.
|
|
985
|
+
readEntitlement(tenantId, key) {
|
|
986
|
+
return (this.sql
|
|
987
|
+
.exec(`SELECT entitlement_key, expires_at, quota, plan, granted_at, granted_by
|
|
988
|
+
FROM _substrat_entitlements WHERE tenant_id = ? AND entitlement_key = ?`, tenantId, key)
|
|
989
|
+
.toArray()[0] ?? null);
|
|
899
990
|
}
|
|
900
|
-
/**
|
|
991
|
+
/**
|
|
992
|
+
* Upsert; returns before/after for the host's audit row, `changed: false` when
|
|
993
|
+
* the merged result equals what the row already carried (not audited upstream).
|
|
994
|
+
*/
|
|
995
|
+
grantEntitlement(tenantId, key, input, actor) {
|
|
996
|
+
const existing = this.readEntitlement(tenantId, key);
|
|
997
|
+
const next = {
|
|
998
|
+
expiresAt: input.expiresAt !== undefined ? input.expiresAt : (existing?.expires_at ?? null),
|
|
999
|
+
quota: input.quota !== undefined ? input.quota : (existing?.quota ?? null),
|
|
1000
|
+
plan: input.plan !== undefined ? input.plan : (existing?.plan ?? null),
|
|
1001
|
+
};
|
|
1002
|
+
if (existing &&
|
|
1003
|
+
existing.expires_at === next.expiresAt &&
|
|
1004
|
+
existing.quota === next.quota &&
|
|
1005
|
+
existing.plan === next.plan) {
|
|
1006
|
+
return { changed: false, before: existing, after: existing };
|
|
1007
|
+
}
|
|
1008
|
+
// granted_at/granted_by restamp on every effective change: a renewal is a
|
|
1009
|
+
// new grant act, and the full history is the admin log.
|
|
1010
|
+
const now = new Date().toISOString();
|
|
1011
|
+
this.sql.exec(`INSERT INTO _substrat_entitlements
|
|
1012
|
+
(tenant_id, entitlement_key, expires_at, quota, plan, granted_at, granted_by)
|
|
1013
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
1014
|
+
ON CONFLICT (tenant_id, entitlement_key) DO UPDATE SET
|
|
1015
|
+
expires_at = excluded.expires_at,
|
|
1016
|
+
quota = excluded.quota,
|
|
1017
|
+
plan = excluded.plan,
|
|
1018
|
+
granted_at = excluded.granted_at,
|
|
1019
|
+
granted_by = excluded.granted_by`, tenantId, key, next.expiresAt, next.quota, next.plan, now, actor);
|
|
1020
|
+
return {
|
|
1021
|
+
changed: true,
|
|
1022
|
+
before: existing,
|
|
1023
|
+
after: {
|
|
1024
|
+
entitlement_key: key,
|
|
1025
|
+
expires_at: next.expiresAt,
|
|
1026
|
+
quota: next.quota,
|
|
1027
|
+
plan: next.plan,
|
|
1028
|
+
granted_at: now,
|
|
1029
|
+
granted_by: actor,
|
|
1030
|
+
},
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
/** DELETE; returns the removed row (the host's audit `before`), null if none. */
|
|
901
1034
|
revokeEntitlement(tenantId, key) {
|
|
902
|
-
|
|
903
|
-
|
|
1035
|
+
const existing = this.readEntitlement(tenantId, key);
|
|
1036
|
+
if (!existing)
|
|
1037
|
+
return null;
|
|
904
1038
|
this.sql.exec('DELETE FROM _substrat_entitlements WHERE tenant_id = ? AND entitlement_key = ?', tenantId, key);
|
|
905
|
-
return
|
|
1039
|
+
return existing;
|
|
906
1040
|
}
|
|
907
1041
|
tenantHoldsEntitlement(tenantId, key) {
|
|
1042
|
+
// An expired grant fails closed, exactly as if revoked (#33) — evaluated
|
|
1043
|
+
// lazily at check time like tuple expiry; the row survives for renewal.
|
|
908
1044
|
return (this.sql
|
|
909
|
-
.exec(
|
|
1045
|
+
.exec(`SELECT 1 FROM _substrat_entitlements
|
|
1046
|
+
WHERE tenant_id = ? AND entitlement_key = ?
|
|
1047
|
+
AND (expires_at IS NULL OR expires_at > ?)`, tenantId, key, new Date().toISOString())
|
|
910
1048
|
.toArray()[0] !== undefined);
|
|
911
1049
|
}
|
|
912
1050
|
listEntitlements(tenantId) {
|
|
913
1051
|
return this.sql
|
|
914
|
-
.exec(
|
|
915
|
-
|
|
1052
|
+
.exec(`SELECT entitlement_key, expires_at, quota, plan, granted_at, granted_by
|
|
1053
|
+
FROM _substrat_entitlements WHERE tenant_id = ? ORDER BY entitlement_key`, tenantId)
|
|
1054
|
+
.toArray();
|
|
916
1055
|
}
|
|
917
1056
|
// -- identity pools (K-23) --------------------------------------------------
|
|
918
1057
|
readPool(provider) {
|