@substrat-run/adapter-cloudflare 0.3.0 → 0.4.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.
@@ -24,6 +24,40 @@ interface TupleRow {
24
24
  object: string;
25
25
  expires_at: string | null;
26
26
  }
27
+ /** The raw role row; `permissions` is a JSON blob in a TEXT column. */
28
+ export interface RoleRow {
29
+ tenant_id: string;
30
+ role_key: string;
31
+ permissions: string;
32
+ source: string;
33
+ }
34
+ /** The raw directory row; the coordinator maps it through the `scope` contract. */
35
+ export interface ScopeRow {
36
+ scope_id: string;
37
+ tenant_id: string;
38
+ parent_scope_id: string | null;
39
+ slug: string;
40
+ kind: string;
41
+ name: string;
42
+ vertical: string | null;
43
+ storage_shape: string;
44
+ jurisdiction: string | null;
45
+ status: string;
46
+ schema_version: string;
47
+ created_at: string;
48
+ }
49
+ /** The audit filter, flattened for the RPC hop (`action` always an array or absent). */
50
+ export interface AuditLogQuery {
51
+ tenantId?: string;
52
+ scopeId?: string;
53
+ actor?: string;
54
+ action?: string[];
55
+ since?: string;
56
+ until?: string;
57
+ limit?: number;
58
+ cursor?: string;
59
+ order?: 'asc' | 'desc';
60
+ }
27
61
  /** The shape the coordinator hands `recordAdmin`; before/after are arbitrary JSON. */
28
62
  export interface AdminEntryInput {
29
63
  id: string;
@@ -39,9 +73,23 @@ export interface AdminEntryInput {
39
73
  export declare class ControlPlaneDO extends DurableObject {
40
74
  private readonly sql;
41
75
  constructor(ctx: DurableObjectState, env: unknown);
76
+ /**
77
+ * The directory's own migration path (control-plane.md §7). A singleton DO that
78
+ * was created before the scope record grew its naming columns keeps its storage
79
+ * across a deploy, so the DDL above — all `IF NOT EXISTS` — would leave it on
80
+ * the old shape. ALTER the columns in, backfill to the same defaults
81
+ * `resolveScopeRecord` applies, then add the uniqueness the contract claims.
82
+ *
83
+ * The ALTER is attempted-and-tolerated rather than guarded by a column probe:
84
+ * DO SQLite restricts PRAGMA, so `table_info` is not reliably available here
85
+ * (the pure adapter, which has it, probes instead). A duplicate column is the
86
+ * expected steady state on every cold start after the first — anything else
87
+ * rethrows.
88
+ */
89
+ private ensureDirectoryColumns;
42
90
  private mapTenant;
43
91
  private readTenant;
44
- /** INSERT OR IGNORE; return the new tenant, or null if it already existed. */
92
+ /** Idempotent on the id; return the new tenant, or null if it already existed. */
45
93
  createTenant(id: string, slug: string, name: string, createdAt: string): Tenant | null;
46
94
  /** Throw if absent; else UPDATE and return the previous status. */
47
95
  setTenantStatus(tenantId: string, status: TenantStatus): string;
@@ -52,7 +100,28 @@ export declare class ControlPlaneDO extends DurableObject {
52
100
  * FK string" hole the registry closes — fail closed. INSERT OR IGNORE the
53
101
  * scope with status 'active'; return whether it was newly created.
54
102
  */
55
- provisionScope(tenantId: string, scopeId: string, storageShape: string, jurisdiction: string | null, createdAt: string): boolean;
103
+ provisionScope(tenantId: string, scopeId: string, record: {
104
+ slug: string;
105
+ kind: string;
106
+ name: string;
107
+ vertical: string | null;
108
+ storageShape: string;
109
+ jurisdiction: string | null;
110
+ }, createdAt: string): boolean;
111
+ /**
112
+ * The scope's migration state, projected into the directory so the fleet
113
+ * question ("which scopes are behind?") is answerable from the index alone —
114
+ * §5.4's "fleet questions never fan out". Written by the coordinator after the
115
+ * ScopeDO reports what it applied.
116
+ */
117
+ setSchemaVersion(scopeId: string, schemaVersion: string): void;
118
+ listScopes(filter: {
119
+ tenantId?: string;
120
+ status?: string[];
121
+ vertical?: string;
122
+ }): ScopeRow[];
123
+ /** Cross-checks the pair (K-3): a scope under a DIFFERENT tenant reads as absent. */
124
+ getScopeRecord(tenantId: string, scopeId: string): ScopeRow | undefined;
56
125
  /**
57
126
  * The getScope gate (control-plane.md §4.1/§4.2): validate the scope belongs
58
127
  * to the tenant and both records are active, or throw the fail-closed reason.
@@ -60,12 +129,21 @@ export declare class ControlPlaneDO extends DurableObject {
60
129
  validateScopeAccess(tenantId: string, scopeId: string): void;
61
130
  /**
62
131
  * Validate ownership, enforce the legal transition graph (fail closed on an
63
- * illegal one), flip the status. Returns the previous status for the audit.
64
- * `action` rides along only to name the illegal-transition message.
132
+ * illegal one), flip the status. Returns the previous status AND the scope's
133
+ * vertical both for the audit entry, sparing the coordinator a read
134
+ * round-trip. `action` rides along only to name the illegal-transition message.
65
135
  */
66
- transitionScope(tenantId: string, scopeId: string, from: string[], to: ScopeStatus, action: string): string;
136
+ transitionScope(tenantId: string, scopeId: string, from: string[], to: ScopeStatus, action: string): {
137
+ status: string;
138
+ vertical: string | null;
139
+ };
67
140
  /** INSERT OR REPLACE; return the previous role (for the audit `before`) or null. */
68
141
  defineRole(tenantId: string, role: RoleDefinition): RoleDefinition | null;
142
+ /** Raw rows; the coordinator parses them through the `tenantRole` contract. */
143
+ listRoles(filter: {
144
+ tenantId?: string;
145
+ source?: string;
146
+ }): RoleRow[];
69
147
  getRole(tenantId: string, key: string): RoleDefinition | undefined;
70
148
  writeTenantTuple(tenantId: string, subject: string, relation: string, object: string, expiresAt: string | null): void;
71
149
  tenantTuples(tenantId: string, subject: string, relationPrefix: string): TupleRow[];
@@ -84,7 +162,7 @@ export declare class ControlPlaneDO extends DurableObject {
84
162
  } | undefined;
85
163
  /** Append one audit row. before/after are arbitrary JSON, stringified here. */
86
164
  recordAdmin(entry: AdminEntryInput): void;
87
- auditLog(tenantId: string | null): AdminLogEntry[];
165
+ auditLog(query: AuditLogQuery): AdminLogEntry[];
88
166
  }
89
167
  export {};
90
168
  //# sourceMappingURL=control-plane-do.d.ts.map
@@ -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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"}
@@ -7,9 +7,18 @@ const DIRECTORY_DDL = `
7
7
  status TEXT NOT NULL DEFAULT 'active',
8
8
  created_at TEXT NOT NULL
9
9
  );
10
+ -- slug/kind/name/vertical are nullable here but required (except vertical) by
11
+ -- the scope contract — the column set must match whether the table was created
12
+ -- fresh or ALTERed up (see ensureDirectoryColumns), and SQLite cannot ADD a NOT
13
+ -- NULL column to a populated table. Zod is the enforcement point on read.
10
14
  CREATE TABLE IF NOT EXISTS scopes (
11
15
  scope_id TEXT PRIMARY KEY,
12
16
  tenant_id TEXT NOT NULL,
17
+ parent_scope_id TEXT,
18
+ slug TEXT,
19
+ kind TEXT,
20
+ name TEXT,
21
+ vertical TEXT,
13
22
  storage_shape TEXT NOT NULL DEFAULT 'A',
14
23
  jurisdiction TEXT,
15
24
  status TEXT NOT NULL DEFAULT 'active',
@@ -56,7 +65,26 @@ const DIRECTORY_DDL = `
56
65
  after TEXT,
57
66
  at TEXT NOT NULL
58
67
  );
68
+ -- Read-path indexes for the console (control-plane.md §4.5). The admin log is
69
+ -- append-only and only grows, so every filter it offers needs one.
70
+ -- NOTE: keep every comment in this DDL free of semicolons. The constructor
71
+ -- splits this string on the statement separator, and a semicolon inside a
72
+ -- comment strands a comment-only fragment that execs as "no statement".
73
+ CREATE INDEX IF NOT EXISTS _substrat_admin_log_tenant ON _substrat_admin_log (tenant_id, id);
74
+ CREATE INDEX IF NOT EXISTS _substrat_admin_log_scope ON _substrat_admin_log (scope_id, id);
75
+ CREATE INDEX IF NOT EXISTS _substrat_admin_log_actor ON _substrat_admin_log (actor, id);
76
+ CREATE INDEX IF NOT EXISTS _substrat_admin_log_action ON _substrat_admin_log (action, id);
77
+ CREATE INDEX IF NOT EXISTS _substrat_admin_log_at ON _substrat_admin_log (at);
78
+ CREATE INDEX IF NOT EXISTS scopes_tenant ON scopes (tenant_id, scope_id);
59
79
  `;
80
+ /** The scope columns added after the directory's first shape shipped. */
81
+ const SCOPE_COLUMNS_ADDED = [
82
+ 'parent_scope_id TEXT',
83
+ 'slug TEXT',
84
+ 'kind TEXT',
85
+ 'name TEXT',
86
+ 'vertical TEXT',
87
+ ];
60
88
  export class ControlPlaneDO extends DurableObject {
61
89
  sql;
62
90
  constructor(ctx, env) {
@@ -67,6 +95,38 @@ export class ControlPlaneDO extends DurableObject {
67
95
  if (s)
68
96
  this.sql.exec(s);
69
97
  }
98
+ this.ensureDirectoryColumns();
99
+ }
100
+ /**
101
+ * The directory's own migration path (control-plane.md §7). A singleton DO that
102
+ * was created before the scope record grew its naming columns keeps its storage
103
+ * across a deploy, so the DDL above — all `IF NOT EXISTS` — would leave it on
104
+ * the old shape. ALTER the columns in, backfill to the same defaults
105
+ * `resolveScopeRecord` applies, then add the uniqueness the contract claims.
106
+ *
107
+ * The ALTER is attempted-and-tolerated rather than guarded by a column probe:
108
+ * DO SQLite restricts PRAGMA, so `table_info` is not reliably available here
109
+ * (the pure adapter, which has it, probes instead). A duplicate column is the
110
+ * expected steady state on every cold start after the first — anything else
111
+ * rethrows.
112
+ */
113
+ ensureDirectoryColumns() {
114
+ for (const ddl of SCOPE_COLUMNS_ADDED) {
115
+ try {
116
+ this.sql.exec(`ALTER TABLE scopes ADD COLUMN ${ddl}`);
117
+ }
118
+ catch (err) {
119
+ if (!/duplicate column name/i.test(err.message))
120
+ throw err;
121
+ }
122
+ }
123
+ this.sql.exec("UPDATE scopes SET slug = lower(scope_id) WHERE slug IS NULL");
124
+ this.sql.exec("UPDATE scopes SET kind = 'scope' WHERE kind IS NULL");
125
+ this.sql.exec('UPDATE scopes SET name = slug WHERE name IS NULL');
126
+ // After the backfill: a UNIQUE index over NULL slugs would permit the
127
+ // duplicates it exists to forbid (SQLite treats NULLs as distinct).
128
+ this.sql.exec('CREATE UNIQUE INDEX IF NOT EXISTS scopes_tenant_slug ON scopes (tenant_id, slug)');
129
+ this.sql.exec('CREATE UNIQUE INDEX IF NOT EXISTS tenants_slug ON tenants (slug)');
70
130
  }
71
131
  // -- tenant registry (control-plane.md §4.1) --------------------------------
72
132
  mapTenant(r) {
@@ -84,11 +144,21 @@ export class ControlPlaneDO extends DurableObject {
84
144
  .toArray()[0];
85
145
  return row ? this.mapTenant(row) : undefined;
86
146
  }
87
- /** INSERT OR IGNORE; return the new tenant, or null if it already existed. */
147
+ /** Idempotent on the id; return the new tenant, or null if it already existed. */
88
148
  createTenant(id, slug, name, createdAt) {
89
149
  if (this.readTenant(id))
90
150
  return null; // idempotent — nothing created
91
- this.sql.exec(`INSERT OR IGNORE INTO tenants (tenant_id, slug, name, status, created_at)
151
+ // Checked explicitly rather than left to `INSERT OR IGNORE` + the
152
+ // `tenants_slug` UNIQUE index: OR IGNORE would swallow a collision from a
153
+ // DIFFERENT id and report the create as idempotent, silently not creating the
154
+ // tenant the caller asked for. Fail closed instead.
155
+ const slugOwner = this.sql
156
+ .exec('SELECT tenant_id FROM tenants WHERE slug = ?', slug)
157
+ .toArray()[0];
158
+ if (slugOwner) {
159
+ throw new Error(`tenant slug '${slug}' already taken by ${slugOwner.tenant_id} (slugs are unique)`);
160
+ }
161
+ this.sql.exec(`INSERT INTO tenants (tenant_id, slug, name, status, created_at)
92
162
  VALUES (?, ?, ?, 'active', ?)`, id, slug, name, createdAt);
93
163
  return this.readTenant(id) ?? null;
94
164
  }
@@ -112,7 +182,7 @@ export class ControlPlaneDO extends DurableObject {
112
182
  * FK string" hole the registry closes — fail closed. INSERT OR IGNORE the
113
183
  * scope with status 'active'; return whether it was newly created.
114
184
  */
115
- provisionScope(tenantId, scopeId, storageShape, jurisdiction, createdAt) {
185
+ provisionScope(tenantId, scopeId, record, createdAt) {
116
186
  const tenantRow = this.sql
117
187
  .exec('SELECT status FROM tenants WHERE tenant_id = ?', tenantId)
118
188
  .toArray()[0];
@@ -122,13 +192,67 @@ export class ControlPlaneDO extends DurableObject {
122
192
  if (tenantRow.status !== 'active') {
123
193
  throw new Error(`cannot provision scope under non-active tenant (status: ${tenantRow.status}): ${tenantId}`);
124
194
  }
195
+ // Idempotency is on the scope_id (§3.3: idempotent and journaled — safe to
196
+ // re-run), so an existing scope short-circuits before the slug check:
197
+ // re-provisioning must not collide with itself.
125
198
  const existed = this.sql.exec('SELECT 1 FROM scopes WHERE scope_id = ?', scopeId).toArray()[0] !== undefined;
126
199
  if (!existed) {
127
- this.sql.exec(`INSERT OR IGNORE INTO scopes (scope_id, tenant_id, storage_shape, jurisdiction, status, created_at)
128
- VALUES (?, ?, ?, ?, 'active', ?)`, scopeId, tenantId, storageShape, jurisdiction, createdAt);
200
+ const slugOwner = this.sql
201
+ .exec('SELECT scope_id FROM scopes WHERE tenant_id = ? AND slug = ?', tenantId, record.slug)
202
+ .toArray()[0];
203
+ if (slugOwner) {
204
+ throw new Error(`scope slug '${record.slug}' already taken under tenant ${tenantId} ` +
205
+ `by ${slugOwner.scope_id} (slugs are unique within a tenant)`);
206
+ }
207
+ this.sql.exec(`INSERT INTO scopes
208
+ (scope_id, tenant_id, parent_scope_id, slug, kind, name, vertical,
209
+ storage_shape, jurisdiction, status, created_at)
210
+ VALUES (?, ?, NULL, ?, ?, ?, ?, ?, ?, 'active', ?)`, scopeId, tenantId, record.slug, record.kind, record.name, record.vertical, record.storageShape, record.jurisdiction, createdAt);
129
211
  }
130
212
  return !existed;
131
213
  }
214
+ /**
215
+ * The scope's migration state, projected into the directory so the fleet
216
+ * question ("which scopes are behind?") is answerable from the index alone —
217
+ * §5.4's "fleet questions never fan out". Written by the coordinator after the
218
+ * ScopeDO reports what it applied.
219
+ */
220
+ setSchemaVersion(scopeId, schemaVersion) {
221
+ this.sql.exec('UPDATE scopes SET schema_version = ? WHERE scope_id = ?', schemaVersion, scopeId);
222
+ }
223
+ listScopes(filter) {
224
+ const where = [];
225
+ const params = [];
226
+ if (filter.tenantId) {
227
+ where.push('tenant_id = ?');
228
+ params.push(filter.tenantId);
229
+ }
230
+ if (filter.status) {
231
+ // An empty array means "no status is acceptable" — match nothing, rather
232
+ // than degenerating into an unfiltered read of the whole fleet.
233
+ if (filter.status.length === 0)
234
+ return [];
235
+ where.push(`status IN (${filter.status.map(() => '?').join(', ')})`);
236
+ params.push(...filter.status);
237
+ }
238
+ if (filter.vertical) {
239
+ where.push('vertical = ?');
240
+ params.push(filter.vertical);
241
+ }
242
+ const sql = 'SELECT * FROM scopes' +
243
+ (where.length ? ` WHERE ${where.join(' AND ')}` : '') +
244
+ ' ORDER BY scope_id';
245
+ return this.sql.exec(sql, ...params).toArray();
246
+ }
247
+ /** Cross-checks the pair (K-3): a scope under a DIFFERENT tenant reads as absent. */
248
+ getScopeRecord(tenantId, scopeId) {
249
+ const row = this.sql
250
+ .exec('SELECT * FROM scopes WHERE scope_id = ?', scopeId)
251
+ .toArray()[0];
252
+ if (!row || row.tenant_id !== tenantId)
253
+ return undefined;
254
+ return row;
255
+ }
132
256
  /**
133
257
  * The getScope gate (control-plane.md §4.1/§4.2): validate the scope belongs
134
258
  * to the tenant and both records are active, or throw the fail-closed reason.
@@ -155,12 +279,13 @@ export class ControlPlaneDO extends DurableObject {
155
279
  }
156
280
  /**
157
281
  * Validate ownership, enforce the legal transition graph (fail closed on an
158
- * illegal one), flip the status. Returns the previous status for the audit.
159
- * `action` rides along only to name the illegal-transition message.
282
+ * illegal one), flip the status. Returns the previous status AND the scope's
283
+ * vertical both for the audit entry, sparing the coordinator a read
284
+ * round-trip. `action` rides along only to name the illegal-transition message.
160
285
  */
161
286
  transitionScope(tenantId, scopeId, from, to, action) {
162
287
  const row = this.sql
163
- .exec('SELECT tenant_id, status FROM scopes WHERE scope_id = ?', scopeId)
288
+ .exec('SELECT tenant_id, status, vertical FROM scopes WHERE scope_id = ?', scopeId)
164
289
  .toArray()[0];
165
290
  if (!row || row.tenant_id !== tenantId) {
166
291
  throw new Error(`unknown scope for tenant: (${tenantId}, ${scopeId})`);
@@ -170,7 +295,7 @@ export class ControlPlaneDO extends DurableObject {
170
295
  `(allowed from: ${from.join('|')})`);
171
296
  }
172
297
  this.sql.exec('UPDATE scopes SET status = ? WHERE scope_id = ?', to, scopeId);
173
- return row.status;
298
+ return { status: row.status, vertical: row.vertical };
174
299
  }
175
300
  // -- roles (checker rule 1) -------------------------------------------------
176
301
  /** INSERT OR REPLACE; return the previous role (for the audit `before`) or null. */
@@ -180,6 +305,23 @@ export class ControlPlaneDO extends DurableObject {
180
305
  VALUES (?, ?, ?, ?)`, tenantId, role.key, JSON.stringify(role.permissions), String(role.source));
181
306
  return before;
182
307
  }
308
+ /** Raw rows; the coordinator parses them through the `tenantRole` contract. */
309
+ listRoles(filter) {
310
+ const where = [];
311
+ const params = [];
312
+ if (filter.tenantId) {
313
+ where.push('tenant_id = ?');
314
+ params.push(filter.tenantId);
315
+ }
316
+ if (filter.source) {
317
+ where.push('source = ?');
318
+ params.push(filter.source);
319
+ }
320
+ const sql = 'SELECT tenant_id, role_key, permissions, source FROM _substrat_roles' +
321
+ (where.length ? ` WHERE ${where.join(' AND ')}` : '') +
322
+ ' ORDER BY tenant_id, role_key';
323
+ return this.sql.exec(sql, ...params).toArray();
324
+ }
183
325
  getRole(tenantId, key) {
184
326
  const row = this.sql
185
327
  .exec('SELECT role_key, permissions, source FROM _substrat_roles WHERE tenant_id = ? AND role_key = ?', tenantId, key)
@@ -259,10 +401,49 @@ export class ControlPlaneDO extends DurableObject {
259
401
  (id, actor, action, tenant_id, scope_id, vertical, before, after, at)
260
402
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, entry.id, entry.actor, entry.action, entry.tenantId, entry.scopeId, entry.vertical, entry.before == null ? null : JSON.stringify(entry.before), entry.after == null ? null : JSON.stringify(entry.after), entry.at);
261
403
  }
262
- auditLog(tenantId) {
263
- const rows = (tenantId
264
- ? this.sql.exec('SELECT * FROM _substrat_admin_log WHERE tenant_id = ? ORDER BY id', tenantId)
265
- : this.sql.exec('SELECT * FROM _substrat_admin_log ORDER BY id')).toArray();
404
+ auditLog(query) {
405
+ const where = [];
406
+ const params = [];
407
+ if (query.tenantId) {
408
+ where.push('tenant_id = ?');
409
+ params.push(query.tenantId);
410
+ }
411
+ if (query.scopeId) {
412
+ where.push('scope_id = ?');
413
+ params.push(query.scopeId);
414
+ }
415
+ if (query.actor) {
416
+ where.push('actor = ?');
417
+ params.push(query.actor);
418
+ }
419
+ if (query.action) {
420
+ if (query.action.length === 0)
421
+ return []; // no action is acceptable — match nothing
422
+ where.push(`action IN (${query.action.map(() => '?').join(', ')})`);
423
+ params.push(...query.action);
424
+ }
425
+ if (query.since) {
426
+ where.push('at >= ?');
427
+ params.push(query.since);
428
+ }
429
+ if (query.until) {
430
+ where.push('at < ?');
431
+ params.push(query.until);
432
+ }
433
+ const order = query.order === 'desc' ? 'DESC' : 'ASC';
434
+ if (query.cursor) {
435
+ // ULID order is chronological, so the entry id IS the cursor.
436
+ where.push(order === 'DESC' ? 'id < ?' : 'id > ?');
437
+ params.push(query.cursor);
438
+ }
439
+ let sql = 'SELECT * FROM _substrat_admin_log' +
440
+ (where.length ? ` WHERE ${where.join(' AND ')}` : '') +
441
+ ` ORDER BY id ${order}`;
442
+ if (query.limit !== undefined) {
443
+ sql += ' LIMIT ?';
444
+ params.push(query.limit);
445
+ }
446
+ const rows = this.sql.exec(sql, ...params).toArray();
266
447
  return rows.map((r) => ({
267
448
  id: r.id,
268
449
  actor: r.actor,
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane-do.js","sourceRoot":"","sources":["../src/control-plane-do.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane-do.js","sourceRoot":"","sources":["../src/control-plane-do.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts CHANGED
@@ -24,6 +24,13 @@ export declare class CloudflareScopeHost implements ScopeHost {
24
24
  defineOperation<I, O>(name: string, _handler: OperationHandler<I, O>): void;
25
25
  private bindOperation;
26
26
  provisionScope(actor: PlatformActorId, input: ProvisionScopeInput): Promise<void>;
27
+ /**
28
+ * Migrate a scope and project its resulting migration count into the directory
29
+ * (§5.4: fleet questions never fan out). The ScopeDO reports null when nothing
30
+ * was pending, which skips the write — otherwise every stub mint would cost an
31
+ * extra control-plane RPC to store a number that did not change.
32
+ */
33
+ private migrateAndRecord;
27
34
  getScope(principal: PrincipalId, tenantId: TenantId, scopeId: ScopeId): Promise<ScopeStub>;
28
35
  close(): Promise<void>;
29
36
  private buildAdmin;
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,eAAe,EACpB,KAAK,WAAW,EAIhB,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AA2G9B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmB;IAItC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;gBAEtD,OAAO,EAAE,0BAA0B;IAU/C,cAAc,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAgDtD,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAI3E,OAAO,CAAC,aAAa;IAQf,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjF,QAAQ,CACZ,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,CAAC;IA6Bf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,UAAU;YAmMJ,WAAW;YAoBX,eAAe;IAU7B,OAAO,CAAC,SAAS;CAKlB"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAkBL,KAAK,eAAe,EACpB,KAAK,WAAW,EAKhB,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAGxB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAuH9B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmB;IAItC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;gBAEtD,OAAO,EAAE,0BAA0B;IAU/C,cAAc,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAgDtD,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAI3E,OAAO,CAAC,aAAa;IAQf,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvF;;;;;OAKG;YACW,gBAAgB;IAKxB,QAAQ,CACZ,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,CAAC;IA6Bf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,UAAU;YA8QJ,WAAW;YAoBX,eAAe;IAU7B,OAAO,CAAC,SAAS;CAKlB"}
package/dist/host.js CHANGED
@@ -1,5 +1,5 @@
1
- import { adminLogEntry, createTenantInput, identityLink, moduleManifest, resolvedIdentity, roleDefinition, tenant as tenantSchema, } from '@substrat-run/contracts';
2
- import { ulid, } from '@substrat-run/kernel';
1
+ import { adminLogEntry, createTenantInput, identityLink, moduleManifest, resolvedIdentity, roleDefinition, scope as scopeSchema, tenant as tenantSchema, tenantRole, } from '@substrat-run/contracts';
2
+ import { resolveScopeRecord, ulid, } from '@substrat-run/kernel';
3
3
  export class CloudflareScopeHost {
4
4
  admin;
5
5
  scopeNs;
@@ -70,22 +70,35 @@ export class CloudflareScopeHost {
70
70
  }
71
71
  // -- scope lifecycle ------------------------------------------------------
72
72
  async provisionScope(actor, input) {
73
+ // Shared with the pure adapter so the defaults cannot drift between them.
74
+ const record = resolveScopeRecord(input);
73
75
  // Fail-closed tenant gate throws out of the awaited cp call BEFORE migrate
74
76
  // or audit, so a rejected provision creates nothing and writes no audit row.
75
- const created = await this.cp.provisionScope(input.tenantId, input.scopeId, input.storageShape ?? 'A', input.jurisdiction ?? null, new Date().toISOString());
77
+ const created = await this.cp.provisionScope(input.tenantId, input.scopeId, record, new Date().toISOString());
76
78
  // Instantiate the scope DO and trigger its lazy migration.
77
- await this.scopeStub(input.scopeId).migrate();
79
+ await this.migrateAndRecord(input.scopeId);
78
80
  // Audit a real provision only; an idempotent re-provision changed nothing.
79
81
  if (created) {
80
- await this.recordAdmin(actor, 'provisionScope', { tenantId: input.tenantId, scopeId: input.scopeId }, null, { storageShape: input.storageShape ?? 'A', jurisdiction: input.jurisdiction ?? null });
82
+ await this.recordAdmin(actor, 'provisionScope', { tenantId: input.tenantId, scopeId: input.scopeId, vertical: record.vertical }, null, record);
81
83
  }
82
84
  }
85
+ /**
86
+ * Migrate a scope and project its resulting migration count into the directory
87
+ * (§5.4: fleet questions never fan out). The ScopeDO reports null when nothing
88
+ * was pending, which skips the write — otherwise every stub mint would cost an
89
+ * extra control-plane RPC to store a number that did not change.
90
+ */
91
+ async migrateAndRecord(scopeId) {
92
+ const applied = await this.scopeStub(scopeId).migrate();
93
+ if (applied !== null)
94
+ await this.cp.setSchemaVersion(scopeId, String(applied));
95
+ }
83
96
  async getScope(principal, tenantId, scopeId) {
84
97
  // Lifecycle gates (control-plane.md §4.1/§4.2), the K-3 fail-closed path,
85
98
  // evaluated durably in the ControlPlaneDO. A throw propagates here.
86
99
  await this.cp.validateScopeAccess(tenantId, scopeId);
87
100
  const stub = this.scopeStub(scopeId);
88
- await stub.migrate();
101
+ await this.migrateAndRecord(scopeId);
89
102
  const cp = this.cp;
90
103
  const operationEntitlement = this.operationEntitlement;
91
104
  return {
@@ -107,9 +120,32 @@ export class CloudflareScopeHost {
107
120
  }
108
121
  // -- admin surface --------------------------------------------------------
109
122
  buildAdmin() {
123
+ // The directory row → the `scope` contract. Parsed, not cast: the columns are
124
+ // nullable in the DO's SQLite (ALTER TABLE cannot add NOT NULL to a populated
125
+ // table) while the contract requires them, so this parse is where that gap is
126
+ // held shut — and it is the same parse the pure adapter does, which is what
127
+ // makes the shared contract suite meaningful.
128
+ const mapScope = (r) => scopeSchema.parse({
129
+ id: r.scope_id,
130
+ tenantId: r.tenant_id,
131
+ parentScopeId: r.parent_scope_id,
132
+ slug: r.slug,
133
+ kind: r.kind,
134
+ name: r.name,
135
+ status: r.status,
136
+ storageShape: r.storage_shape,
137
+ jurisdiction: r.jurisdiction,
138
+ vertical: r.vertical,
139
+ schemaVersion: r.schema_version,
140
+ createdAt: r.created_at,
141
+ });
110
142
  const transitionScope = async (actor, action, tenantId, scopeId, from, to) => {
111
143
  const before = await this.cp.transitionScope(tenantId, scopeId, from, to, action);
112
- await this.recordAdmin(actor, action, { tenantId, scopeId }, { status: before }, { status: to });
144
+ // The audit target carries the scope's vertical (control-plane.md §4.4:
145
+ // "vertical stays null until §4.2 lifecycle actions that name one"). The DO
146
+ // returns it with the previous status, so the trail cannot disagree with
147
+ // the directory about which deployment the action touched.
148
+ await this.recordAdmin(actor, action, { tenantId, scopeId, vertical: before.vertical }, { status: before.status }, { status: to });
113
149
  };
114
150
  const writeGrant = async (subject, permission, node, entity, expiresAt) => {
115
151
  if (entity) {
@@ -128,6 +164,17 @@ export class CloudflareScopeHost {
128
164
  const before = await this.cp.defineRole(tenantId, parsed);
129
165
  await this.recordAdmin(actor, 'defineRole', { tenantId }, before, parsed);
130
166
  },
167
+ listRoles: async (filter) => {
168
+ const rows = await this.cp.listRoles({ tenantId: filter?.tenantId, source: filter?.source });
169
+ // Parsed, not cast — the same parse the pure adapter does, which is what
170
+ // makes the shared contract suite mean anything.
171
+ return rows.map((r) => tenantRole.parse({
172
+ tenantId: r.tenant_id,
173
+ key: r.role_key,
174
+ permissions: JSON.parse(r.permissions),
175
+ source: r.source,
176
+ }));
177
+ },
131
178
  assignRole: async (actor, assignment) => {
132
179
  const subject = `principal:${assignment.principalId}`;
133
180
  if (assignment.node.scopeId) {
@@ -167,6 +214,22 @@ export class CloudflareScopeHost {
167
214
  const t = await this.cp.getTenant(tenantId);
168
215
  return t ? tenantSchema.parse(t) : undefined;
169
216
  },
217
+ listScopes: async (filter) => {
218
+ const rows = await this.cp.listScopes({
219
+ tenantId: filter?.tenantId,
220
+ status: filter?.status
221
+ ? Array.isArray(filter.status)
222
+ ? filter.status
223
+ : [filter.status]
224
+ : undefined,
225
+ vertical: filter?.vertical,
226
+ });
227
+ return rows.map(mapScope);
228
+ },
229
+ getScopeRecord: async (tenantId, scopeId) => {
230
+ const row = await this.cp.getScopeRecord(tenantId, scopeId);
231
+ return row ? mapScope(row) : undefined;
232
+ },
170
233
  suspendScope: async (actor, tenantId, scopeId) => transitionScope(actor, 'suspendScope', tenantId, scopeId, ['active'], 'suspended'),
171
234
  unsuspendScope: async (actor, tenantId, scopeId) => transitionScope(actor, 'unsuspendScope', tenantId, scopeId, ['suspended'], 'active'),
172
235
  archiveScope: async (actor, tenantId, scopeId) => transitionScope(actor, 'archiveScope', tenantId, scopeId, ['active', 'suspended'], 'archived'),
@@ -203,7 +266,22 @@ export class CloudflareScopeHost {
203
266
  });
204
267
  },
205
268
  auditLog: async (filter) => {
206
- const rows = await this.cp.auditLog(filter?.tenantId ?? null);
269
+ const rows = await this.cp.auditLog({
270
+ tenantId: filter?.tenantId,
271
+ scopeId: filter?.scopeId,
272
+ actor: filter?.actor,
273
+ // Normalised to an array here so the DO has one shape to handle.
274
+ action: filter?.action
275
+ ? Array.isArray(filter.action)
276
+ ? filter.action
277
+ : [filter.action]
278
+ : undefined,
279
+ since: filter?.since,
280
+ until: filter?.until,
281
+ limit: filter?.limit,
282
+ cursor: filter?.cursor,
283
+ order: filter?.order,
284
+ });
207
285
  return rows.map((r) => adminLogEntry.parse(r));
208
286
  },
209
287
  };
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,MAAM,IAAI,YAAY,GAmBvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,IAAI,GAQL,MAAM,sBAAsB,CAAC;AAsH9B,MAAM,OAAO,mBAAmB;IACrB,KAAK,CAAY;IAET,OAAO,CAAyB;IAChC,EAAE,CAAmB;IAEtC,0EAA0E;IAC1E,4EAA4E;IAC3D,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,gBAAgB;IAC5D,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,qBAAqB;IAC5D,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElE,YAAY,OAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAClB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,4EAA4E;IAE5E,cAAc,CAAC,YAAgC;QAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,EAAE,oDAAoD,SAAS,EAAE,CAC9E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,KAAK,IAAI,qBAAqB,CACjF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,EAAE,iCAAiC,IAAI,6DAA6D,CACjH,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,eAAe,CAAO,IAAY,EAAE,QAAgC;QAClE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,8CAA8C;QACpF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,cAAc,CAAC,KAAsB,EAAE,KAA0B;QACrE,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAC1C,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,YAAY,IAAI,GAAG,EACzB,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;QACF,2DAA2D;QAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9C,2EAA2E;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,WAAW,CACpB,KAAK,EACL,gBAAgB,EAChB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EACpD,IAAI,EACJ,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,SAAsB,EACtB,QAAkB,EAClB,OAAgB;QAEhB,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAEvD,OAAO;YACL,QAAQ;YACR,OAAO;YACP,MAAM,EAAE,KAAK,EAAQ,SAAiB,EAAE,KAAS,EAAc,EAAE;gBAC/D,0EAA0E;gBAC1E,iEAAiE;gBACjE,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxD,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;oBAC7E,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,2BAA2B,SAAS,4BAA4B,WAAW,GAAG,CAC/E,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAe,CAAC;YACnF,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,2EAA2E;IAC7E,CAAC;IAED,4EAA4E;IAEpE,UAAU;QAChB,MAAM,eAAe,GAAG,KAAK,EAC3B,KAAsB,EACtB,MAAmB,EACnB,QAAkB,EAClB,OAAgB,EAChB,IAAmB,EACnB,EAAe,EACf,EAAE;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClF,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,EACtB,OAAe,EACf,UAAyB,EACzB,IAAU,EACV,MAAkB,EAClB,SAAkB,EACH,EAAE;YACjB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,eAAe,CACxB,IAAI,CAAC,OAAQ,EACb,OAAO,EACP,WAAW,UAAU,EAAE,EACvB,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,EACzC,SAAS,IAAI,IAAI,CAClB,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,eAAe,CACxB,IAAI,CAAC,OAAO,EACZ,OAAO,EACP,WAAW,UAAU,EAAE,EACvB,SAAS,IAAI,CAAC,OAAO,EAAE,EACvB,SAAS,IAAI,IAAI,CAClB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAC5B,IAAI,CAAC,QAAQ,EACb,OAAO,EACP,WAAW,UAAU,EAAE,EACvB,UAAU,IAAI,CAAC,QAAQ,EAAE,EACzB,SAAS,IAAI,IAAI,CAClB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAA0B,EAAE,EAAE;gBACtD,MAAM,OAAO,GAAG,aAAa,UAAU,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,eAAe,CACxB,UAAU,CAAC,IAAI,CAAC,OAAO,EACvB,OAAO,EACP,QAAQ,UAAU,CAAC,OAAO,EAAE,EAC5B,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAClC,IAAI,CACL,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAC5B,UAAU,CAAC,IAAI,CAAC,QAAQ,EACxB,OAAO,EACP,QAAQ,UAAU,CAAC,OAAO,EAAE,EAC5B,UAAU,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EACpC,IAAI,CACL,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CACpB,KAAK,EACL,YAAY,EACZ,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EACxE,IAAI,EACJ,UAAU,CACX,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAsB,EAAE,EAAE;gBAC7C,MAAM,UAAU,CACd,aAAa,KAAK,CAAC,WAAW,EAAE,EAChC,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,CAChB,CAAC;gBACF,MAAM,IAAI,CAAC,WAAW,CACpB,KAAK,EACL,OAAO,EACP,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAC9D,IAAI,EACJ,KAAK,CACN,CAAC;YACJ,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC3D,MAAM,UAAU,CAAC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,WAAW,CACpB,KAAK,EACL,YAAY,EACZ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAClD,IAAI,EACJ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CACpC,CAAC;YACJ,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;gBACrD,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAC5B,QAAQ,EACR,aAAa,SAAS,EAAE,EACxB,QAAQ,EACR,OAAO,KAAK,EAAE,EACd,IAAI,CACL,CAAC;gBACF,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CACxC,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;gBACF,sEAAsE;gBACtE,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxF,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAoB,EAAE,EAAE;gBAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjG,CAAC;YACD,WAAW,EAAE,KAAK,IAAuB,EAAE,CACzC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAA+B,EAAE;gBACzD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAC/C,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;YACpF,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACjD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;YACtF,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAC/C,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC;YAChG,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACjD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;YACrF,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;gBAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACzE,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,aAAa;gBACnC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;gBAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,gCAAgC;gBACtD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7F,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAqB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC3F,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAmB,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CACxC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;gBACF,iEAAiE;gBACjE,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,IAAI,CAAC,WAAW,CACpB,KAAK,EACL,cAAc,EACd,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EACtD,IAAI,EACJ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAC1F,CAAC;YACJ,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAyC,EAAE;gBACrF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAChE,IAAI,CAAC,GAAG;oBAAE,OAAO,SAAS,CAAC;gBAC3B,OAAO,gBAAgB,CAAC,KAAK,CAAC;oBAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,MAAM,EAA4B,EAAE;gBACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,WAAW,CACvB,KAAsB,EACtB,MAAmB,EACnB,MAAkF,EAClF,MAAe,EACf,KAAc;QAEd,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YACxB,EAAE,EAAE,IAAI,EAAE;YACV,KAAK;YACL,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YACjC,MAAM,EAAE,MAAM,IAAI,IAAI;YACtB,KAAK,EAAE,KAAK,IAAI,IAAI;YACpB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,OAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,MAAc,EACd,SAAwB;QAExB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IAEO,SAAS,CAAC,OAAgB;QAChC,4EAA4E;QAC5E,4EAA4E;QAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAA4B,CAAC;IACvF,CAAC;CACF"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope-do.d.ts","sourceRoot":"","sources":["../src/scope-do.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBnD,OAAO,EAIL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAGtB,MAAM,sBAAsB,CAAC;AAK9B;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAkFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GACxD,KAAK,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,KAAK,aAAa,CA8WjE"}
1
+ {"version":3,"file":"scope-do.d.ts","sourceRoot":"","sources":["../src/scope-do.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBnD,OAAO,EAIL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAGtB,MAAM,sBAAsB,CAAC;AAK9B;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAkFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GACxD,KAAK,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,KAAK,aAAa,CA+XjE"}
package/dist/scope-do.js CHANGED
@@ -69,6 +69,8 @@ export function defineScopeDO(modules, bareOps) {
69
69
  systemPrincipal = principalId.parse(ulid());
70
70
  applied = new Set();
71
71
  migrationPromise;
72
+ /** Latch: the applied count is reported to the directory once per DO instance. */
73
+ schemaVersionReported = false;
72
74
  constructor(ctx, env) {
73
75
  super(ctx, env);
74
76
  this.sql = ctx.storage.sql;
@@ -128,9 +130,23 @@ export function defineScopeDO(modules, bareOps) {
128
130
  this.operations.set(name, handler);
129
131
  }
130
132
  // -- RPC surface ----------------------------------------------------------
131
- /** Trigger lazy migration (the coordinator calls this at provision time). */
133
+ /**
134
+ * Trigger lazy migration (the coordinator calls this at provision time).
135
+ * Returns the applied-migration count if this call applied any, else null —
136
+ * the coordinator projects the count into the directory's `schema_version`
137
+ * and skips the write when nothing changed.
138
+ *
139
+ * `ensureMigrations` memoises its promise, so every later call on a warm DO
140
+ * resolves to the SAME `true` without applying anything. Reporting on each of
141
+ * those would bill a control-plane RPC per stub mint to store a number that
142
+ * has not moved — hence the once-per-instance latch.
143
+ */
132
144
  async migrate() {
133
- await this.ensureMigrations();
145
+ const applied = await this.ensureMigrations();
146
+ if (!applied || this.schemaVersionReported)
147
+ return null;
148
+ this.schemaVersionReported = true;
149
+ return this.applied.size;
134
150
  }
135
151
  /** Admin scope-tuple write (role assignment / grant scoped to this scope). */
136
152
  async writeTuple(subject, relation, object, expiresAt) {
@@ -184,6 +200,7 @@ export function defineScopeDO(modules, bareOps) {
184
200
  this.migrationPromise = this.applyPendingMigrations();
185
201
  return this.migrationPromise;
186
202
  }
203
+ /** Resolves true if this call applied at least one migration. */
187
204
  async applyPendingMigrations() {
188
205
  const pending = [];
189
206
  for (const mod of this.modules.values()) {
@@ -194,7 +211,7 @@ export function defineScopeDO(modules, bareOps) {
194
211
  }
195
212
  }
196
213
  if (pending.length === 0)
197
- return;
214
+ return false;
198
215
  await this.queue.enqueue(async () => {
199
216
  for (const { moduleId, migration } of pending) {
200
217
  const key = `${moduleId}@${migration.version}`;
@@ -221,6 +238,7 @@ export function defineScopeDO(modules, bareOps) {
221
238
  this.applied.add(key);
222
239
  }
223
240
  });
241
+ return true;
224
242
  }
225
243
  // -- event dispatch (port of dispatch) ------------------------------------
226
244
  async dispatch(tenantId, scopeId) {
@@ -1 +1 @@
1
- {"version":3,"file":"scope-do.js","sourceRoot":"","sources":["../src/scope-do.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope-do.js","sourceRoot":"","sources":["../src/scope-do.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/adapter-cloudflare",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Cloudflare Durable-Object scope host (D-14): DO-per-scope, real kernel semantics on Workers",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -22,8 +22,8 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@substrat-run/kernel": "^0.3.0",
26
- "@substrat-run/contracts": "^0.3.0"
25
+ "@substrat-run/kernel": "^0.4.0",
26
+ "@substrat-run/contracts": "^0.4.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@cloudflare/vitest-pool-workers": "^0.8.19",
@@ -31,7 +31,7 @@
31
31
  "wrangler": "^4.110.0",
32
32
  "typescript": "^5.6.0",
33
33
  "vitest": "^3.0.0",
34
- "@substrat-run/contract-tests": "^0.3.0"
34
+ "@substrat-run/contract-tests": "^0.4.0"
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public"