@substrat-run/contracts 0.144.0 → 0.146.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/concurrency.d.ts +7 -1
  2. package/dist/concurrency.d.ts.map +1 -1
  3. package/dist/concurrency.js +7 -1
  4. package/dist/concurrency.js.map +1 -1
  5. package/dist/control-plane.d.ts +5 -0
  6. package/dist/control-plane.d.ts.map +1 -1
  7. package/dist/deploy.d.ts +92 -3
  8. package/dist/deploy.d.ts.map +1 -1
  9. package/dist/deploy.js +159 -16
  10. package/dist/deploy.js.map +1 -1
  11. package/dist/entity-stamps.d.ts +24 -0
  12. package/dist/entity-stamps.d.ts.map +1 -0
  13. package/dist/entity-stamps.js +25 -0
  14. package/dist/entity-stamps.js.map +1 -0
  15. package/dist/entity-state.d.ts +17 -0
  16. package/dist/entity-state.d.ts.map +1 -1
  17. package/dist/entity-state.js +31 -0
  18. package/dist/entity-state.js.map +1 -1
  19. package/dist/errors.d.ts +1 -0
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +6 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/events.d.ts +3 -1
  24. package/dist/events.d.ts.map +1 -1
  25. package/dist/events.js +3 -1
  26. package/dist/events.js.map +1 -1
  27. package/dist/findings.d.ts +22 -1
  28. package/dist/findings.d.ts.map +1 -1
  29. package/dist/findings.js +20 -0
  30. package/dist/findings.js.map +1 -1
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/invocation-record.d.ts +15 -0
  36. package/dist/invocation-record.d.ts.map +1 -1
  37. package/dist/invocation-record.js +15 -0
  38. package/dist/invocation-record.js.map +1 -1
  39. package/dist/manifest.d.ts +8 -0
  40. package/dist/manifest.d.ts.map +1 -1
  41. package/dist/manifest.js +5 -0
  42. package/dist/manifest.js.map +1 -1
  43. package/dist/model.d.ts +41 -10
  44. package/dist/model.d.ts.map +1 -1
  45. package/dist/model.js +48 -3
  46. package/dist/model.js.map +1 -1
  47. package/dist/operations.d.ts +15 -6
  48. package/dist/operations.d.ts.map +1 -1
  49. package/dist/operations.js +25 -11
  50. package/dist/operations.js.map +1 -1
  51. package/dist/peer.d.ts +9 -1
  52. package/dist/peer.d.ts.map +1 -1
  53. package/dist/peer.js +13 -2
  54. package/dist/peer.js.map +1 -1
  55. package/dist/registry-diff.d.ts +71 -1
  56. package/dist/registry-diff.d.ts.map +1 -1
  57. package/dist/registry-diff.js +79 -4
  58. package/dist/registry-diff.js.map +1 -1
  59. package/dist/tenancy.d.ts +5 -0
  60. package/dist/tenancy.d.ts.map +1 -1
  61. package/dist/tenancy.js +20 -0
  62. package/dist/tenancy.js.map +1 -1
  63. package/package.json +1 -1
@@ -23,7 +23,13 @@
23
23
  *
24
24
  * ## The direction this fails
25
25
  *
26
- * ANY event about the entity moves the version, including one that changed
26
+ * Every event about the entity moves the version except a kernel state move —
27
+ * archive, unarchive, trash, restore (`ENTITY_STATE_MOVE_TYPES`, #2191), which
28
+ * changes no content. So a tag read before a move still matches after it, and a
29
+ * write made with one onto an ARCHIVED row is admitted. A trashed row is refused
30
+ * to every operation whose declared check names it except one that declares `trashed: 'admits'`
31
+ * or `'purges'` — a restore, a delete for good, the purge — and a guarded one of
32
+ * those still compares its tag. Every other event counts, including one that changed
27
33
  * nothing the caller read. So a precondition built on it is CONSERVATIVE: it can
28
34
  * refuse a write that would in fact have been safe, and it cannot admit one that
29
35
  * would not. Documented here as well as in the kernel because this is the half a
@@ -1 +1 @@
1
- {"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,sFAAsF;AACtF,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,mBAAyB,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAQ9E"}
1
+ {"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,sFAAsF;AACtF,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,mBAAyB,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAQ9E"}
@@ -23,7 +23,13 @@
23
23
  *
24
24
  * ## The direction this fails
25
25
  *
26
- * ANY event about the entity moves the version, including one that changed
26
+ * Every event about the entity moves the version except a kernel state move —
27
+ * archive, unarchive, trash, restore (`ENTITY_STATE_MOVE_TYPES`, #2191), which
28
+ * changes no content. So a tag read before a move still matches after it, and a
29
+ * write made with one onto an ARCHIVED row is admitted. A trashed row is refused
30
+ * to every operation whose declared check names it except one that declares `trashed: 'admits'`
31
+ * or `'purges'` — a restore, a delete for good, the purge — and a guarded one of
32
+ * those still compares its tag. Every other event counts, including one that changed
27
33
  * nothing the caller read. So a precondition built on it is CONSERVATIVE: it can
28
34
  * refuse a write that would in fact have been safe, and it cannot admit one that
29
35
  * would not. Documented here as well as in the kernel because this is the half a
@@ -1 +1 @@
1
- {"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAElC,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,WAAW,CAAU,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAsB;IACnE,MAAM,UAAU,GAAG,OAAO;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,KAAK,IAAI,CAAC;IACtD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAElC,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,WAAW,CAAU,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAsB;IACnE,MAAM,UAAU,GAAG,OAAO;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,KAAK,IAAI,CAAC;IACtD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,CAAC"}
@@ -1586,6 +1586,11 @@ export declare const tenantExport: z.ZodObject<{
1586
1586
  vertical: z.ZodNullable<z.ZodString>;
1587
1587
  verticalVersionId: z.ZodNullable<z.ZodString>;
1588
1588
  provisionedVersionId: z.ZodNullable<z.ZodString>;
1589
+ retirementsFinishedVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1590
+ boundShapes: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1591
+ versionId: z.ZodString;
1592
+ types: z.ZodArray<z.ZodString>;
1593
+ }, z.core.$strip>>>;
1589
1594
  schemaVersion: z.ZodString;
1590
1595
  migrationFailure: z.ZodNullable<z.ZodObject<{
1591
1596
  version: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
package/dist/deploy.d.ts CHANGED
@@ -36,7 +36,9 @@ export type StoreNeed = z.infer<typeof storeNeed>;
36
36
  *
37
37
  * - `storeNeed` (own DO) — the vertical's own durable class, one DO **per scope**.
38
38
  * - a static shared `d1` binding — ONE database shared across every tenant (a build-time id).
39
- * - `tenantStoreNeed` (this) — one relational DB **per tenant**, PLATFORM-minted.
39
+ * - `tenantStoreNeed` (this) — one platform-minted store **per tenant**. `relational`
40
+ * today on the wire; a blob is the same level, declared with `kind: 'blob'`
41
+ * (see `declaredTenantStore`).
40
42
  *
41
43
  * The load-bearing difference from a static `d1` binding: the builder supplies **no
42
44
  * database id**. The platform mints it per tenant in the tenant lifecycle and injects it,
@@ -50,6 +52,22 @@ export declare const tenantStoreNeed: z.ZodObject<{
50
52
  kind: z.ZodDefault<z.ZodLiteral<"relational">>;
51
53
  }, z.core.$strip>;
52
54
  export type TenantStoreNeed = z.infer<typeof tenantStoreNeed>;
55
+ /**
56
+ * A per-tenant store as a builder declares it (`runtimeNeeds.tenantStores`).
57
+ *
58
+ * `kind` defaults to `relational`, so a declaration that predates the union keeps
59
+ * its meaning. `blob` is the same store as an entry in `blobStores` — that list
60
+ * stays accepted, and {@link partitionDeclaredStores} reads both spellings into
61
+ * one set. The deploy manifest does not: blobs still leave in `blobStores`.
62
+ */
63
+ export declare const declaredTenantStore: z.ZodObject<{
64
+ binding: z.ZodString;
65
+ kind: z.ZodDefault<z.ZodEnum<{
66
+ blob: "blob";
67
+ relational: "relational";
68
+ }>>;
69
+ }, z.core.$strip>;
70
+ export type DeclaredTenantStore = z.infer<typeof declaredTenantStore>;
53
71
  /**
54
72
  * A platform-minted per-tenant store, as handed to the vertical at provision (K-31) and
55
73
  * resolvable again at request time. `ref` is **opaque to the vertical**: a D1 `database_id`
@@ -129,7 +147,10 @@ export declare function declaresAttachmentTargets(modules: readonly {
129
147
  * {@link ATTACHMENT_BLOB_BINDING} when any module declares an attachment target — derived
130
148
  * from the same module manifests the permission surface is, so the need cannot drift from
131
149
  * the declaration that creates it. A hand-declared blob store of that name IS the attachment
132
- * store (the kind is a single literal), so it is kept once. A per-tenant RELATIONAL store
150
+ * store (the kind is a single literal), so it is kept once. The same declaration written
151
+ * as `tenantStores: [{ binding: 'ATTACHMENTS', kind: 'blob' }]` is that store too: a raw
152
+ * `RuntimeNeeds` still carries the blob there, and this function reads the kind rather
153
+ * than treating every entry of that name as relational. A per-tenant RELATIONAL store
133
154
  * of that name is refused: it would be bound under the very `ATTACHMENTS__<tenant>` name the
134
155
  * host reads attachment bytes through. (A static binding of the name is the push's to refuse,
135
156
  * since only it reads the wrangler config those come from.)
@@ -138,6 +159,7 @@ export declare function withAttachmentBlobStore(needs: {
138
159
  readonly blobStores?: readonly BlobStoreNeed[];
139
160
  readonly tenantStores?: readonly {
140
161
  binding: string;
162
+ kind?: 'relational' | 'blob';
141
163
  }[];
142
164
  } | undefined,
143
165
  /** {@link declaresAttachmentTargets} over the vertical's modules. */
@@ -236,7 +258,10 @@ export declare const runtimeNeeds: z.ZodObject<{
236
258
  }, z.core.$strip>>>;
237
259
  tenantStores: z.ZodDefault<z.ZodArray<z.ZodObject<{
238
260
  binding: z.ZodString;
239
- kind: z.ZodDefault<z.ZodLiteral<"relational">>;
261
+ kind: z.ZodDefault<z.ZodEnum<{
262
+ blob: "blob";
263
+ relational: "relational";
264
+ }>>;
240
265
  }, z.core.$strip>>>;
241
266
  blobStores: z.ZodDefault<z.ZodArray<z.ZodObject<{
242
267
  binding: z.ZodString;
@@ -259,6 +284,36 @@ export declare const runtimeNeeds: z.ZodObject<{
259
284
  }, z.core.$strip>>;
260
285
  }, z.core.$strip>;
261
286
  export type RuntimeNeeds = z.infer<typeof runtimeNeeds>;
287
+ /**
288
+ * The two builder spellings of a per-tenant store, as one set (#2221).
289
+ *
290
+ * A `blob` entry in `tenantStores` and an entry in `blobStores` are the same
291
+ * declaration. A binding named twice — in one list, or across them — is refused:
292
+ * both would be bound as `<BINDING>__<tenant>` on the serving script, and nothing
293
+ * else compares the two lists (except the reserved `ATTACHMENTS` name).
294
+ */
295
+ export declare function partitionDeclaredStores(needs: {
296
+ readonly tenantStores?: readonly DeclaredTenantStore[];
297
+ readonly blobStores?: readonly BlobStoreNeed[];
298
+ } | undefined): {
299
+ tenantStores: TenantStoreNeed[];
300
+ blobStores: BlobStoreNeed[];
301
+ };
302
+ /**
303
+ * What a push puts on the deploy manifest for per-tenant stores. Relational entries
304
+ * stay in `tenantStores`. Blobs, whichever spelling declared them, stay in `blobStores`,
305
+ * plus the attachment store when the modules declare a target. An older control plane
306
+ * therefore reads the same manifest it reads today.
307
+ */
308
+ export declare function manifestStoresOf(needs: {
309
+ readonly tenantStores?: readonly DeclaredTenantStore[];
310
+ readonly blobStores?: readonly BlobStoreNeed[];
311
+ } | undefined,
312
+ /** {@link declaresAttachmentTargets} over the vertical's modules. */
313
+ attaches: boolean): {
314
+ tenantStores: TenantStoreNeed[];
315
+ blobStores: BlobStoreNeed[];
316
+ };
262
317
  /**
263
318
  * One declared outbound destination (#303, D-46): a lowercase hostname the vertical's
264
319
  * worker may `fetch()` directly, or a `*.`-prefixed wildcard matching any subdomain depth
@@ -332,6 +387,30 @@ export type ManifestExports = {
332
387
  reason: string;
333
388
  };
334
389
  export declare function exportsOfManifestJson(manifestJson: string | null | undefined): ManifestExports;
390
+ /**
391
+ * #2178: the binding-shape gate over two STORED manifests — the version that runs now and the one
392
+ * that would run instead — refused `precondition_failed` with {@link bindingShapeRefusal} when the
393
+ * move strands people a link bound (`bindingShapeBreaks`). A manifest with no registry declares no
394
+ * shape. One whose grant shapes cannot be read is refused too, saying so: the gate cannot tell
395
+ * that it strands nobody, and no acknowledgement passes it.
396
+ */
397
+ export declare function assertNoBindingShapeBreak(outgoingManifest: string | null | undefined, incomingManifest: string | null | undefined, opts?: {
398
+ /** What the outgoing version is, when the refusal should say (the installs that last reconciled it). */
399
+ judgedFrom?: string;
400
+ /**
401
+ * Judge as if the outgoing version's retirements had not run: for installs with no receipt,
402
+ * which may not have reconciled it, and (#2185) installs whose reconcile of it did not finish
403
+ * its retirements. Either may still hold every key it retires (`retiredKeysOf`).
404
+ */
405
+ retiredStillHeld?: boolean;
406
+ /**
407
+ * #2184: the types the judged installs have bound through a link, as their reconcile reported
408
+ * them, or `'unknown'` when it did not: a shape counts as binding where any of them bound it,
409
+ * whatever the outgoing registry says about `bind` (`bindingShapeBreaks`). Omitted: the
410
+ * registry's `bind` alone, for a version judged as what a scope runs rather than from a receipt.
411
+ */
412
+ boundEver?: readonly string[] | 'unknown';
413
+ }): void;
335
414
  /**
336
415
  * One installed consumer a promote would break (#1705 PR 3): a scope whose running code imports
337
416
  * (type, schemaVersion) from the promoted vertical, which the incoming version drops (`incoming:
@@ -439,6 +518,14 @@ declared?: ReadonlySet<string>): string[];
439
518
  * ({@link pushedPermissionRegistry}); stored history is read without it.
440
519
  */
441
520
  export declare function retiredShapeProblems(shape: Pick<EntityGrantShape, 'entityType' | 'permissions' | 'bootstrap' | 'retired'>): string[];
521
+ /**
522
+ * #2185: the keys a shape's retirement takes back: its `retired` keys that it does not grant again,
523
+ * each once, sorted. Empty for a sharing shape, which is never reconciled. The one reading of
524
+ * "retired and not in `permissions`": the kernel's reconcile retires exactly these, the
525
+ * binding-shape gate counts exactly these as still held where a retirement has not finished, and
526
+ * a control plane counts a reconcile's retirements finished without asking when no shape has any.
527
+ */
528
+ export declare function retiredKeysOf(shape: Pick<EntityGrantShape, 'permissions' | 'bootstrap' | 'retired'>): string[];
442
529
  /**
443
530
  * The vertical's declared permission surface, shipped in the deploy manifest (D-39) — the
444
531
  * machine-readable twin of PERMISSIONS.md. Assembled at push from the SAME `MODULES` +
@@ -873,6 +960,7 @@ export declare const deployManifest: z.ZodObject<{
873
960
  trash: z.ZodOptional<z.ZodObject<{
874
961
  permission: z.ZodString;
875
962
  purgeAfterDays: z.ZodOptional<z.ZodNumber>;
963
+ purgeEarly: z.ZodOptional<z.ZodBoolean>;
876
964
  }, z.core.$strip>>;
877
965
  erasure: z.ZodOptional<z.ZodObject<{
878
966
  mode: z.ZodEnum<{
@@ -1079,6 +1167,7 @@ export declare const storedDeployManifest: z.ZodObject<{
1079
1167
  trash: z.ZodOptional<z.ZodObject<{
1080
1168
  permission: z.ZodString;
1081
1169
  purgeAfterDays: z.ZodOptional<z.ZodNumber>;
1170
+ purgeEarly: z.ZodOptional<z.ZodBoolean>;
1082
1171
  }, z.core.$strip>>;
1083
1172
  erasure: z.ZodOptional<z.ZodObject<{
1084
1173
  mode: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
package/dist/deploy.js CHANGED
@@ -5,6 +5,8 @@ import { eventType } from './events.js';
5
5
  import { roleDefinition } from './permission.js';
6
6
  import { declaredSurface } from './routing.js';
7
7
  import { emittedModel } from './model.js';
8
+ import { substratError } from './errors.js';
9
+ import { bindingShapeBreaks, bindingShapeRefusal } from './registry-diff.js';
8
10
  // The deploy manifest is the JSON part a `substrat push` sends alongside the
9
11
  // module files (self-serve-deploy.md). It lives here — not in the transport
10
12
  // package — because BOTH ends must speak the same shape: the CLI builds and
@@ -47,7 +49,9 @@ export const storeNeed = z.object({
47
49
  *
48
50
  * - `storeNeed` (own DO) — the vertical's own durable class, one DO **per scope**.
49
51
  * - a static shared `d1` binding — ONE database shared across every tenant (a build-time id).
50
- * - `tenantStoreNeed` (this) — one relational DB **per tenant**, PLATFORM-minted.
52
+ * - `tenantStoreNeed` (this) — one platform-minted store **per tenant**. `relational`
53
+ * today on the wire; a blob is the same level, declared with `kind: 'blob'`
54
+ * (see `declaredTenantStore`).
51
55
  *
52
56
  * The load-bearing difference from a static `d1` binding: the builder supplies **no
53
57
  * database id**. The platform mints it per tenant in the tenant lifecycle and injects it,
@@ -59,9 +63,24 @@ export const storeNeed = z.object({
59
63
  export const tenantStoreNeed = z.object({
60
64
  /** How the worker reaches this tenant's store: `host.tenantStore(tenantId, <binding>)`. */
61
65
  binding: z.string().regex(/^[A-Z][A-Z0-9_]*$/),
62
- /** The store shape. Only `relational` today; a literal so widening it is an explicit, additive change. */
66
+ /**
67
+ * The store shape on the wire. `relational` only: a blob travels in `blobStores`,
68
+ * so a control plane from before the union still parses the manifest it is sent.
69
+ */
63
70
  kind: z.literal('relational').default('relational'),
64
71
  });
72
+ /**
73
+ * A per-tenant store as a builder declares it (`runtimeNeeds.tenantStores`).
74
+ *
75
+ * `kind` defaults to `relational`, so a declaration that predates the union keeps
76
+ * its meaning. `blob` is the same store as an entry in `blobStores` — that list
77
+ * stays accepted, and {@link partitionDeclaredStores} reads both spellings into
78
+ * one set. The deploy manifest does not: blobs still leave in `blobStores`.
79
+ */
80
+ export const declaredTenantStore = z.object({
81
+ binding: z.string().regex(/^[A-Z][A-Z0-9_]*$/),
82
+ kind: z.enum(['relational', 'blob']).default('relational'),
83
+ });
65
84
  /**
66
85
  * A platform-minted per-tenant store, as handed to the vertical at provision (K-31) and
67
86
  * resolvable again at request time. `ref` is **opaque to the vertical**: a D1 `database_id`
@@ -120,7 +139,11 @@ const BINDING_NAME = /^[A-Z][A-Z0-9_]*$/;
120
139
  export const blobStoreNeed = z.object({
121
140
  /** How the worker reaches this tenant's store: `env[blobStoreBindingName(binding, tenantId)]`. */
122
141
  binding: z.string().regex(/^[A-Z][A-Z0-9_]*$/),
123
- /** The store shape. Only `blob` today; a literal so widening it is an explicit, additive change. */
142
+ /**
143
+ * The store shape. Only `blob`. A new declaration should say
144
+ * `tenantStores: [{ binding, kind: 'blob' }]` instead; this list stays so a
145
+ * declaration already written keeps working.
146
+ */
124
147
  kind: z.literal('blob').default('blob'),
125
148
  });
126
149
  /**
@@ -161,7 +184,10 @@ export function declaresAttachmentTargets(modules) {
161
184
  * {@link ATTACHMENT_BLOB_BINDING} when any module declares an attachment target — derived
162
185
  * from the same module manifests the permission surface is, so the need cannot drift from
163
186
  * the declaration that creates it. A hand-declared blob store of that name IS the attachment
164
- * store (the kind is a single literal), so it is kept once. A per-tenant RELATIONAL store
187
+ * store (the kind is a single literal), so it is kept once. The same declaration written
188
+ * as `tenantStores: [{ binding: 'ATTACHMENTS', kind: 'blob' }]` is that store too: a raw
189
+ * `RuntimeNeeds` still carries the blob there, and this function reads the kind rather
190
+ * than treating every entry of that name as relational. A per-tenant RELATIONAL store
165
191
  * of that name is refused: it would be bound under the very `ATTACHMENTS__<tenant>` name the
166
192
  * host reads attachment bytes through. (A static binding of the name is the push's to refuse,
167
193
  * since only it reads the wrangler config those come from.)
@@ -170,9 +196,17 @@ export function withAttachmentBlobStore(needs,
170
196
  /** {@link declaresAttachmentTargets} over the vertical's modules. */
171
197
  attaches) {
172
198
  const stores = [...(needs?.blobStores ?? [])];
173
- if (needs?.tenantStores?.some((s) => s.binding === ATTACHMENT_BLOB_BINDING)) {
174
- throw new Error(`runtimeNeeds.tenantStores declares '${ATTACHMENT_BLOB_BINDING}', the binding the platform keeps for ` +
175
- `attachment bytes (#1995) — rename that store; attachments need no declaration of their own`);
199
+ for (const store of needs?.tenantStores ?? []) {
200
+ if (store.kind !== 'blob') {
201
+ if (store.binding === ATTACHMENT_BLOB_BINDING) {
202
+ throw new Error(`runtimeNeeds.tenantStores declares '${ATTACHMENT_BLOB_BINDING}', the binding the platform keeps for ` +
203
+ `attachment bytes (#1995) — rename that store; attachments need no declaration of their own`);
204
+ }
205
+ continue;
206
+ }
207
+ if (!stores.some((kept) => kept.binding === store.binding)) {
208
+ stores.push({ binding: store.binding, kind: 'blob' });
209
+ }
176
210
  }
177
211
  if (attaches && !stores.some((s) => s.binding === ATTACHMENT_BLOB_BINDING)) {
178
212
  stores.push({ binding: ATTACHMENT_BLOB_BINDING, kind: 'blob' });
@@ -254,17 +288,69 @@ export const runtimeNeeds = z.object({
254
288
  /** Command to run before bundling (SPA build, asset generation). Runs in the vertical root. */
255
289
  build: z.string().min(1).optional(),
256
290
  stores: z.array(storeNeed).default([]),
257
- /** Per-tenant relational stores the platform provisions and hands over (#301). NOT bound
258
- * statically — the CLI does not emit a wrangler binding for these, precisely because there
259
- * is one database per tenant, minted in the tenant lifecycle rather than at deploy. */
260
- tenantStores: z.array(tenantStoreNeed).default([]),
261
- /** Per-tenant blob stores for attachment bytes (#473). Same non-binding rule as
262
- * `tenantStores`: one bucket per tenant, minted in the tenant lifecycle. */
291
+ /** Per-tenant stores the platform provisions (#301, #473). `kind` defaults to
292
+ * `relational`. `blob` is the same declaration as an entry in `blobStores`.
293
+ * NOT bound statically — there is one database or bucket per tenant, minted in
294
+ * the tenant lifecycle rather than at deploy. */
295
+ tenantStores: z.array(declaredTenantStore).default([]),
296
+ /** @deprecated Declare `tenantStores` with `kind: 'blob'` instead. Still accepted,
297
+ * and read into the same set ({@link partitionDeclaredStores}). */
263
298
  blobStores: z.array(blobStoreNeed).default([]),
264
299
  /** Static files served from the edge (#340). Absent ⇒ the vertical serves no static
265
300
  * files (or still inlines them into the bundle), and nothing about its push changes. */
266
301
  assets: assetsNeed.optional(),
267
302
  });
303
+ /**
304
+ * The two builder spellings of a per-tenant store, as one set (#2221).
305
+ *
306
+ * A `blob` entry in `tenantStores` and an entry in `blobStores` are the same
307
+ * declaration. A binding named twice — in one list, or across them — is refused:
308
+ * both would be bound as `<BINDING>__<tenant>` on the serving script, and nothing
309
+ * else compares the two lists (except the reserved `ATTACHMENTS` name).
310
+ */
311
+ export function partitionDeclaredStores(needs) {
312
+ const tenantStores = [];
313
+ const blobStores = [];
314
+ const seen = new Map();
315
+ const claim = (binding, where) => {
316
+ const prior = seen.get(binding);
317
+ if (prior !== undefined) {
318
+ throw new Error(`runtimeNeeds declares the per-tenant binding '${binding}' twice (${prior}, and ${where}). ` +
319
+ `One name is one store: both would be bound as ${binding}__<tenant> on the serving script.`);
320
+ }
321
+ seen.set(binding, where);
322
+ };
323
+ for (const store of needs?.tenantStores ?? []) {
324
+ if (store.kind === 'blob') {
325
+ claim(store.binding, `tenantStores kind 'blob'`);
326
+ blobStores.push({ binding: store.binding, kind: 'blob' });
327
+ }
328
+ else {
329
+ claim(store.binding, 'tenantStores');
330
+ tenantStores.push({ binding: store.binding, kind: 'relational' });
331
+ }
332
+ }
333
+ for (const store of needs?.blobStores ?? []) {
334
+ claim(store.binding, 'blobStores');
335
+ blobStores.push({ binding: store.binding, kind: 'blob' });
336
+ }
337
+ return { tenantStores, blobStores };
338
+ }
339
+ /**
340
+ * What a push puts on the deploy manifest for per-tenant stores. Relational entries
341
+ * stay in `tenantStores`. Blobs, whichever spelling declared them, stay in `blobStores`,
342
+ * plus the attachment store when the modules declare a target. An older control plane
343
+ * therefore reads the same manifest it reads today.
344
+ */
345
+ export function manifestStoresOf(needs,
346
+ /** {@link declaresAttachmentTargets} over the vertical's modules. */
347
+ attaches) {
348
+ const declared = partitionDeclaredStores(needs);
349
+ return {
350
+ tenantStores: declared.tenantStores,
351
+ blobStores: withAttachmentBlobStore(declared, attaches),
352
+ };
353
+ }
268
354
  /**
269
355
  * One declared outbound destination (#303, D-46): a lowercase hostname the vertical's
270
356
  * worker may `fetch()` directly, or a `*.`-prefixed wildcard matching any subdomain depth
@@ -359,6 +445,32 @@ export function exportsOfManifestJson(manifestJson) {
359
445
  return { kind: 'unreadable', reason: read.unreadable };
360
446
  return { kind: 'exports', rows: read.rows.map((r) => ({ type: r.type, schemaVersion: r.schemaVersion })) };
361
447
  }
448
+ /**
449
+ * #2178: the binding-shape gate over two STORED manifests — the version that runs now and the one
450
+ * that would run instead — refused `precondition_failed` with {@link bindingShapeRefusal} when the
451
+ * move strands people a link bound (`bindingShapeBreaks`). A manifest with no registry declares no
452
+ * shape. One whose grant shapes cannot be read is refused too, saying so: the gate cannot tell
453
+ * that it strands nobody, and no acknowledgement passes it.
454
+ */
455
+ export function assertNoBindingShapeBreak(outgoingManifest, incomingManifest, opts = {}) {
456
+ const grants = (json, which) => {
457
+ const read = registryRowsOfManifestJson(json, 'entityGrants', entityGrantShape);
458
+ if (read === null)
459
+ return [];
460
+ if ('unreadable' in read) {
461
+ throw substratError('precondition_failed', `the ${which} version's grant shapes cannot be read (${read.unreadable}), so whether this strands anyone a link bound is unknown — refused`);
462
+ }
463
+ return read.rows;
464
+ };
465
+ const outgoing = grants(outgoingManifest, 'the running').map((g) => {
466
+ const held = opts.retiredStillHeld ? retiredKeysOf(g) : [];
467
+ return held.length ? { ...g, permissions: [...g.permissions, ...held], retired: undefined } : g;
468
+ });
469
+ const breaks = bindingShapeBreaks({ entityGrants: outgoing }, { entityGrants: grants(incomingManifest, 'the incoming') }, opts.boundEver);
470
+ if (breaks.length > 0) {
471
+ throw substratError('precondition_failed', bindingShapeRefusal(breaks) + (opts.judgedFrom ? `. Judged from ${opts.judgedFrom}` : ''));
472
+ }
473
+ }
362
474
  /**
363
475
  * One installed consumer a promote would break (#1705 PR 3): a scope whose running code imports
364
476
  * (type, schemaVersion) from the promoted vertical, which the incoming version drops (`incoming:
@@ -549,7 +661,8 @@ export const entityGrantShape = z.object({
549
661
  * column and takes the shape back, after the module's erasure hook has read the rows).
550
662
  *
551
663
  * Its keys are refused to every direct grant on a record of this type, as a `'grantee'` shape's
552
- * are (a grant on a parent of another type is not refused yet: #2177). A claim refuses a record
664
+ * are, and a grant of one on a parent of another type never reaches such a record: the permission
665
+ * walk stops climbing at a record whose shape protects the key (#2177). A claim refuses a record
553
666
  * whose column names someone, and one someone already holds the shape on (`bind-record-held` — a
554
667
  * person given it before the column was written: unbind them first). An unbind releases every
555
668
  * holder of the shape on the record from the spine, whatever the column names now.
@@ -567,8 +680,26 @@ export const entityGrantShape = z.object({
567
680
  * People already bound KEEP the shape until they are released — an unbind while the shape binds,
568
681
  * an erasure (which reaches every type that ever bound in the scope), or `retired` — whatever a
569
682
  * later version does to the declaration: dropping `bind` keeps the holder recorded but leaves no
570
- * unbind; removing the shape or moving its holder leaves erasure and retirement (#2178 would
571
- * refuse that change). Omitted when unset, so a registry that binds nothing keeps its digest.
683
+ * unbind. Dropping `bind` is allowed (it stops new links), and the people it leaves bound are
684
+ * still guarded (#2184): each install's reconcile reports the types it has ever bound, and the
685
+ * gate below counts a bootstrap shape with a table holder as binding wherever an install bound
686
+ * it, or did not report (`boundShapes`), as well as wherever the registry says `bind`. A version
687
+ * that removes the shape, moves its holder, drops `bootstrap` or drops a key
688
+ * from `permissions` without listing it in `retired` is refused
689
+ * wherever it would come to run where the shape binds — a promote, a bind, a route onto a serving
690
+ * script — unless it retires every key (`bindingShapeBreaks`, #2178); a rollback to a version from
691
+ * before the shape is refused the same way. Retiring is the way through: keep the shape with the
692
+ * keys in `retired` and none in `permissions`, then drop or move it in a later version. A
693
+ * retirement reaches an install only at its reconcile, so each primary install the move reaches is
694
+ * also judged from the version it last reconciled (`provisionedVersionId`) and whether that
695
+ * reconcile FINISHED the version's retirements (`retirementsFinishedVersionId`, #2185): the drop
696
+ * stays refused until the retirement has finished in every one. An install whose reconcile left a
697
+ * retirement open, whose vertical was built on packages that predate that report (its count comes
698
+ * from `adapter-cloudflare` and is answered by `vertical-host`), or that has no receipt (a switch, a
699
+ * rewind or a restore cleared it, or it is new) counts as still holding the keys, until the sweep's next
700
+ * reconcile finishes them. A copy (fork, snapshot, preview) never reconciles, so a retirement never
701
+ * reaches it, and it is judged only on what it runs. Omitted when unset, so a registry that binds
702
+ * nothing keeps its digest.
572
703
  */
573
704
  bind: z.object({ permission: permissionKey }).optional(),
574
705
  });
@@ -617,6 +748,18 @@ export function retiredShapeProblems(shape) {
617
748
  problems.push(`${where}: retires ${[...new Set(twice)].join(', ')} more than once`);
618
749
  return problems;
619
750
  }
751
+ /**
752
+ * #2185: the keys a shape's retirement takes back: its `retired` keys that it does not grant again,
753
+ * each once, sorted. Empty for a sharing shape, which is never reconciled. The one reading of
754
+ * "retired and not in `permissions`": the kernel's reconcile retires exactly these, the
755
+ * binding-shape gate counts exactly these as still held where a retirement has not finished, and
756
+ * a control plane counts a reconcile's retirements finished without asking when no shape has any.
757
+ */
758
+ export function retiredKeysOf(shape) {
759
+ if (!shape.bootstrap)
760
+ return [];
761
+ return [...new Set(shape.retired ?? [])].filter((k) => !shape.permissions.includes(k)).sort();
762
+ }
620
763
  /**
621
764
  * The vertical's declared permission surface, shipped in the deploy manifest (D-39) — the
622
765
  * machine-readable twin of PERMISSIONS.md. Assembled at push from the SAME `MODULES` +