@substrat-run/kernel 0.146.0 → 0.148.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 (76) hide show
  1. package/dist/audit-outcome.d.ts +1 -1
  2. package/dist/audit-outcome.d.ts.map +1 -1
  3. package/dist/audit-outcome.js +4 -2
  4. package/dist/audit-outcome.js.map +1 -1
  5. package/dist/export-break.d.ts +137 -0
  6. package/dist/export-break.d.ts.map +1 -0
  7. package/dist/export-break.js +219 -0
  8. package/dist/export-break.js.map +1 -0
  9. package/dist/index.d.ts +17 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +11 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/install-receipts.d.ts +116 -0
  14. package/dist/install-receipts.d.ts.map +1 -0
  15. package/dist/install-receipts.js +162 -0
  16. package/dist/install-receipts.js.map +1 -0
  17. package/dist/invocation-line.d.ts +63 -0
  18. package/dist/invocation-line.d.ts.map +1 -1
  19. package/dist/invocation-line.js +44 -0
  20. package/dist/invocation-line.js.map +1 -1
  21. package/dist/map-bounded.d.ts +8 -0
  22. package/dist/map-bounded.d.ts.map +1 -0
  23. package/dist/map-bounded.js +16 -0
  24. package/dist/map-bounded.js.map +1 -0
  25. package/dist/meters.d.ts +5 -0
  26. package/dist/meters.d.ts.map +1 -1
  27. package/dist/meters.js +0 -0
  28. package/dist/meters.js.map +1 -1
  29. package/dist/peer.js +1 -1
  30. package/dist/platform-sweep.d.ts +52 -363
  31. package/dist/platform-sweep.d.ts.map +1 -1
  32. package/dist/platform-sweep.js +49 -564
  33. package/dist/platform-sweep.js.map +1 -1
  34. package/dist/schedule-state.d.ts +91 -0
  35. package/dist/schedule-state.d.ts.map +1 -0
  36. package/dist/schedule-state.js +118 -0
  37. package/dist/schedule-state.js.map +1 -0
  38. package/dist/scope-copy-ledger.d.ts +29 -0
  39. package/dist/scope-copy-ledger.d.ts.map +1 -1
  40. package/dist/scope-copy-ledger.js +23 -0
  41. package/dist/scope-copy-ledger.js.map +1 -1
  42. package/dist/scope-copy.d.ts.map +1 -1
  43. package/dist/scope-copy.js +3 -2
  44. package/dist/scope-copy.js.map +1 -1
  45. package/dist/scope-host.d.ts +199 -14
  46. package/dist/scope-host.d.ts.map +1 -1
  47. package/dist/scope-host.js.map +1 -1
  48. package/dist/scope-identity.d.ts +68 -0
  49. package/dist/scope-identity.d.ts.map +1 -0
  50. package/dist/scope-identity.js +75 -0
  51. package/dist/scope-identity.js.map +1 -0
  52. package/dist/scope-store.d.ts +139 -0
  53. package/dist/scope-store.d.ts.map +1 -0
  54. package/dist/scope-store.js +237 -0
  55. package/dist/scope-store.js.map +1 -0
  56. package/dist/spine-restore.js +1 -1
  57. package/dist/sql-limits.d.ts.map +1 -1
  58. package/dist/sql-limits.js +10 -1
  59. package/dist/sql-limits.js.map +1 -1
  60. package/dist/storage-gauge.d.ts +21 -2
  61. package/dist/storage-gauge.d.ts.map +1 -1
  62. package/dist/storage-gauge.js +73 -6
  63. package/dist/storage-gauge.js.map +1 -1
  64. package/dist/store-kind-releases.d.ts +137 -0
  65. package/dist/store-kind-releases.d.ts.map +1 -0
  66. package/dist/store-kind-releases.js +252 -0
  67. package/dist/store-kind-releases.js.map +1 -0
  68. package/dist/upload-link.d.ts +89 -0
  69. package/dist/upload-link.d.ts.map +1 -0
  70. package/dist/upload-link.js +277 -0
  71. package/dist/upload-link.js.map +1 -0
  72. package/dist/vertical-scope-stores.d.ts +43 -0
  73. package/dist/vertical-scope-stores.d.ts.map +1 -0
  74. package/dist/vertical-scope-stores.js +195 -0
  75. package/dist/vertical-scope-stores.js.map +1 -0
  76. package/package.json +2 -2
@@ -1,7 +1,8 @@
1
1
  import type { AccessLogEntry, ConnectionId, MigrationProgress, MigrationStraggler, PlatformActorId, Scope, ScopeId, TenantId, DrainedEvent } from '@substrat-run/contracts';
2
- import type { ExportBreak, ManifestExports, EdgeHealthReport, ExportReadInput, ExportedBatch, ImportBatch, ImportResult, ImportState, ManifestImports, WantedEvent } from '@substrat-run/contracts';
2
+ import type { EdgeHealthReport, ExportReadInput, ExportedBatch, ImportBatch, ImportResult, ImportState, ManifestImports, WantedEvent } from '@substrat-run/contracts';
3
3
  import type { ExecutorDrainReport, FetchLike, HostAdmin, ReconcileOutcome, ScopeHost, SweepRunInput, TelemetryPruneReport } from './scope-host.js';
4
4
  import type { FindingPruneReport } from './findings.js';
5
+ import type { ScheduleSweepReport } from './schedule-state.js';
5
6
  /**
6
7
  * A connector's reconcile sweep — the unit `runPlatformSweep` calls per live
7
8
  * connection of a given provider (`sweepScriveReconciliations` is one).
@@ -324,90 +325,6 @@ export interface MigrationSweepReport extends MigrationProgress {
324
325
  /** Attempts where this host had nothing pending — the scope's modules run in another deployment. */
325
326
  noops: number;
326
327
  }
327
- /**
328
- * Which family a `_substrat_schedule_state` row belongs to (#1288) — the two of
329
- * `sweepRunKind`'s three names that a SCOPE can hold gating state for. (`connector`
330
- * is the third and is deliberately absent: a connection is swept host-wide and its
331
- * state lives nowhere in a scope.)
332
- */
333
- export type ScheduleStateKind = 'schedule' | 'freshness';
334
- /**
335
- * The platform sweep's per-scope gating state (#383), as both adapters build it.
336
- *
337
- * Shared rather than spelled twice because `lint:spine-ddl` can compare the copies
338
- * only where they are DDL a `KERNEL_DDL` executes — and this table is also rebuilt
339
- * by `SCHEDULE_STATE_REBUILD` below, on a store that predates the key. One
340
- * definition is what keeps the rebuilt shape and the created shape the same shape;
341
- * the gate then holds each adapter to including it.
342
- */
343
- export declare const SCHEDULE_STATE_DDL = "\n CREATE TABLE IF NOT EXISTS _substrat_schedule_state (\n -- #1288: WHICH of the two families this row belongs to, named with the same two\n -- words _substrat_sweep_runs already records its entries under:\n -- * 'schedule' -- keyed by the operation (module/verb). last_run_at and\n -- last_status are when that operation RAN here and how it ended.\n -- * 'freshness' -- keyed freshness:<eventType> (#1232). last_run_at and\n -- last_status are when the evaluator last RECORDED a verdict for that event\n -- type and what it was. Nothing ran; the row gates what the sweep records.\n kind TEXT NOT NULL,\n schedule_op TEXT NOT NULL,\n last_run_at TEXT,\n last_status TEXT,\n -- #1525: the invocation this row's last run happened in, or null. Null is a fact\n -- here, not a gap: a 'freshness' row never invokes anything (the evaluator only\n -- records a verdict), a 'schedule' row a pass SKIPPED carries no fresh call to\n -- attribute and keeps whatever it already held, and a row written before this\n -- column existed predates the possibility. Only a due schedule's own invoke\n -- mints one and writes it here, in the same call that stamps it onto whatever\n -- the operation emits \u2014 see runDueSchedules in each adapter.\n invocation_id TEXT,\n -- #2096: a purge horizon's lap in progress (entity-trash.ts, PurgeLap) -- where its\n -- next pass resumes in the bin, and how many purges failed earlier in the lap. Only a\n -- 'schedule' row of a purge schedule holds one, and only mid-lap: NULL is the start\n -- of a lap, which is also the honest reading of every row written before the column.\n purge_cursor TEXT,\n -- The key LEADS with kind, and that is the point of #1288 rather than a tidy-up.\n -- Until it did, the two families were told apart by the spelling of one column:\n -- a freshness key could never LOOK like an operation (an event type has passed\n -- contracts' eventType regex -- lowercase ns.verb, no colon, no slash), but the\n -- other direction was convention only, because scheduleSpec.operation is\n -- z.string().min(1). A module declaring a schedule literally named\n -- \"freshness:orders.placed\" shared the evaluator's row and nothing refused it:\n -- each write clobbered the other's verdict, and the sweep read back whichever\n -- ran last. With kind in the key those are two rows that cannot meet.\n PRIMARY KEY (kind, schedule_op)\n );\n";
344
- /**
345
- * The `kind` a pre-#1288 row belongs to, derived from its `schedule_op` — the backfill's one
346
- * rule, shared by `SCHEDULE_STATE_REBUILD` below and by a restore of a dump taken before the
347
- * column (`spineRowsInsert`, #1883), so the two cannot file the same row differently.
348
- */
349
- export declare const SCHEDULE_STATE_KIND_OF_OP = "CASE WHEN substr(schedule_op, 1, 10) = 'freshness:' THEN 'freshness' ELSE 'schedule' END";
350
- /**
351
- * `_substrat_schedule_state`, rebuilt with its #1288 key on a store created before
352
- * it. Create-copy-drop-rename, because `kind` joins the PRIMARY KEY and SQLite
353
- * cannot widen a key in place — the same shape the directory's `ensureIdentityKey`
354
- * uses, and detected the same way (from `sqlite_master.sql`, which DO SQLite serves
355
- * and `PRAGMA` does not, so both adapters migrate by one strategy).
356
- *
357
- * The new table is `SCHEDULE_STATE_DDL` under a temporary name, so the rebuilt shape
358
- * cannot drift from the created one.
359
- *
360
- * The backfill derives `kind` from the `freshness:` prefix because that prefix IS how
361
- * the two families were told apart until now: every row the evaluator ever wrote
362
- * carries it, and no operation name in existence does. `substr(...) = 'freshness:'`
363
- * rather than `LIKE`, which is case-insensitive over ASCII in SQLite and would file a
364
- * schedule named `FRESHNESS:x` under the evaluator.
365
- *
366
- * Keys are copied VERBATIM, prefix included. What changes is which rows can coexist,
367
- * not what any row says — so a deployment rolled back to code that looks a freshness
368
- * key up under its old name still finds it.
369
- *
370
- * **Run these inside the adapter's transaction API**, which is what both callers do —
371
- * `db.transaction` on the pure side, `ctx.storage.transactionSync` on the DO side.
372
- * Un-wrapped, a stop between the CREATE and the DROP leaves the scratch table behind
373
- * and the NEXT wake dies on `table _substrat_schedule_state_new already exists`, which
374
- * is a scope that cannot open; a stop between the DROP and the RENAME is worse and
375
- * quieter, because the next wake's `CREATE TABLE IF NOT EXISTS` puts an EMPTY table
376
- * of the new shape in place, the detection below then reads it as already migrated,
377
- * and every copied row stays orphaned in the scratch table. Atomically, neither state
378
- * is reachable — which is why there is no recovery path here to go with them.
379
- *
380
- * The leading `DROP TABLE IF EXISTS` is belt to that braces, not the fix: it costs one
381
- * statement and makes the rebuild idempotent against a scratch table left by anything
382
- * below the transaction (a torn copy of the file). A restore cannot carry one in: since
383
- * #1883 it refuses a spine table the kernel does not build.
384
- *
385
- * A restore never reaches this rebuild either: it builds the table from the current DDL and
386
- * derives `kind` for a legacy dump's rows with `SCHEDULE_STATE_KIND_OF_OP`. This runs only
387
- * for a store that already holds the old table when it wakes.
388
- */
389
- export declare const SCHEDULE_STATE_REBUILD: string;
390
- /**
391
- * Whether a store's `_substrat_schedule_state` already carries the #1288 key, read
392
- * off the `sql` column of `sqlite_master`. `false` means the rebuild is due.
393
- */
394
- export declare function scheduleStateHasKind(tableSql: string): boolean;
395
- /**
396
- * What the recurring-schedule phase did in one pass (#383), summed across every
397
- * module's live scopes. `null` on `PlatformSweepReport` means the phase was
398
- * disabled or the host predates it — distinct from a report of all zeros, which is
399
- * "ran, nothing was due."
400
- */
401
- export interface ScheduleSweepReport {
402
- /** Scopes `runDueSchedules` ran on (had ≥1 declared schedule). */
403
- scopes: number;
404
- /** Due schedules whose operation ran successfully. */
405
- fired: number;
406
- /** Schedules skipped this pass — still inside their cadence window. */
407
- skipped: number;
408
- /** Due schedules whose operation failed — recorded, stepped over. */
409
- failed: number;
410
- }
411
328
  /** What the #1172 phase did — see `reconcileScopeFn`. */
412
329
  export interface ProvisionReconcileReport {
413
330
  /**
@@ -435,60 +352,6 @@ export interface ProvisionReconcileReport {
435
352
  export declare const PROVISION_RECONCILE_BATCH = 50;
436
353
  /** How many `unsupported` scope ids one report carries — the count stays exact. */
437
354
  export declare const PROVISION_RECONCILE_REPORTED_IDS = 50;
438
- /**
439
- * A scope the platform may treat as the REAL install, rather than a copy of one (#1172,
440
- * #1653). The directory is the only oracle for this, and it takes BOTH tests, not one.
441
- *
442
- * A fork is an archive or a preview of somebody else's data, and re-provisioning one
443
- * runs the vertical's install-side hook against a copy, minting a second set of whatever
444
- * it mints — or, since #1656, putting a copy of production on a sweeper that reaps and
445
- * assigns. But a CLEAN-ROOM preview (#509) is an empty scope with no source to copy, so
446
- * it carries `kind: 'preview'` and NO `forkedFrom` — the reap sweep keys on `kind` for
447
- * exactly that reason. Filtering on lineage alone would let those through, which is the
448
- * one shape of scope where the hook's effects are least wanted.
449
- */
450
- export declare function isPrimaryScope(scope: Pick<Scope, 'forkedFrom' | 'kind'>): boolean;
451
- /**
452
- * `isPrimaryScope` over a raw directory row, in the snake_case both adapters store (#2005) —
453
- * so a reader holding a row asks the same one rule rather than restating it. No row is not
454
- * primary: the answer that runs effects with platform authority is the one to be proven.
455
- */
456
- export declare function isPrimaryScopeRow(row: {
457
- kind: string | null;
458
- forked_from: string | null;
459
- } | undefined): boolean;
460
- /**
461
- * Why an effect a NON-primary scope asked for was settled without running (#2005). A fork,
462
- * a snapshot and a preview of either kind are inert: they cause no outbound effects, so
463
- * whatever they queue — a platform intent, an executor or connector delivery — is journaled
464
- * as not executed, with this reason, rather than left pending forever or run off a copy.
465
- * One string for every door, so a reader who has seen it once recognizes it everywhere.
466
- */
467
- export declare const INERT_SCOPE_REASON = "not executed: this scope is a preview or a fork, and those cause no outbound effects";
468
- /** What a vertical's stable serving script runs (#286) — `Vertical.servingRef`/`servingVersionId`. */
469
- export interface ServingPointer {
470
- ref: string;
471
- versionId: string;
472
- }
473
- /**
474
- * The version whose code actually executes for `scope` (#1653) — which is not always the
475
- * one it is bound to.
476
- *
477
- * A scope on its vertical's stable serving script (`servingRef`, #286) runs whatever that
478
- * script serves, and a promote re-uploads the script in place: the code changes under
479
- * the scope at that moment, whatever its version pointer says. For a PRIVATE vertical
480
- * the promote moves the pointer too, so the two agree. For a LISTED one it does not —
481
- * the pointer is the tenant's, and moves only on their Update — so an install can run
482
- * version N+1 with its provision state still at N. Measuring against the running version
483
- * is what lets the reconcile follow the code instead of the pointer.
484
- *
485
- * Falls back to the bound version whenever the serving script cannot be named: a scope
486
- * with no `servingRef` (legacy per-version dispatch, where the bound version's own
487
- * script IS what runs), a vertical with nothing served in place yet, or a `servingRef`
488
- * that is not the vertical's current one. The fallback is exactly the pre-#1653 answer,
489
- * so an unknown never manufactures a reconcile.
490
- */
491
- export declare function runningVersionOf(scope: Pick<Scope, 'verticalVersionId' | 'servingRef'>, serving: ServingPointer | null | undefined): string | null;
492
355
  export interface PlatformSweepReport {
493
356
  /** Active scopes `drainDue` ran on. */
494
357
  scopesDrained: number;
@@ -595,6 +458,27 @@ export interface StorageGaugeSweepOptions {
595
458
  maxAgeMs?: number;
596
459
  /** Samples past retention deleted per pass. Default `STORAGE_GAUGE_PRUNE_BATCH`. */
597
460
  pruneBatch?: number;
461
+ /**
462
+ * Scope stores read in the same pass as the database, and only for a scope that pass
463
+ * already decided was due (#2212). Absent means this deployment does not sample stores.
464
+ * `null` declines, the way `read` does. A throw records the database sample and
465
+ * leaves that day's store rows as they are: the attempt carries the error. A deployment
466
+ * that cannot read stores (`StorageReadUnsupported`) is neither: its attempt carries no
467
+ * error, so the gauge does not count the scope as failing, and it stays out of the digest.
468
+ * A read past `storeReadTimeoutMs` is an ordinary failure.
469
+ */
470
+ readStores?: (scope: Scope) => Promise<{
471
+ binding: string;
472
+ bytes: number;
473
+ }[] | null>;
474
+ /**
475
+ * How long one scope's store read may take, in ms (#2212). Past it the read counts as failed
476
+ * and the database sample is kept: one hung store must not hold the pass past its invocation
477
+ * limit and lose every sample the batch read. Default `STORE_READ_TIMEOUT_MS`.
478
+ */
479
+ storeReadTimeoutMs?: number;
480
+ /** The instant the pass judges age against. Default the wall clock. */
481
+ now?: () => string;
598
482
  }
599
483
  /**
600
484
  * What a storage reader throws when the scope's deployment cannot read a size at all (#1524):
@@ -612,6 +496,8 @@ export declare class StorageReadUnsupported extends Error {
612
496
  export declare const STORAGE_SAMPLE_BATCH = 100;
613
497
  /** How old a reading may get before the phase reads the scope again, by default. */
614
498
  export declare const STORAGE_SAMPLE_MAX_AGE_MS = 86400000;
499
+ /** How long one scope's store read may take before it counts as failed, by default (#2212). */
500
+ export declare const STORE_READ_TIMEOUT_MS = 15000;
615
501
  /** What the storage-gauge phase did in one pass (#1524). */
616
502
  export interface StorageGaugeSweepReport {
617
503
  /** Active scopes an earlier phase reached this pass: the only active ones the phase may read. */
@@ -622,13 +508,19 @@ export interface StorageGaugeSweepReport {
622
508
  due: number;
623
509
  /** Due scopes left for a later pass because the batch was full. */
624
510
  deferred: number;
625
- /** Size reads that answered, that failed, and that the reader declined (`null`). */
511
+ /**
512
+ * Scopes tried, by how their attempt was recorded: without an error, with one, or declined
513
+ * (`null`). `read + failed + skipped` is the scopes tried. A store read that fails counts in
514
+ * `failed` even though the scope's database sample is recorded with it (#2212).
515
+ */
626
516
  read: number;
627
517
  failed: number;
628
518
  skipped: number;
629
519
  /**
630
- * Of `failed`, the reads whose deployment cannot read a size (`StorageReadUnsupported`): a
631
- * standing condition, recorded on the scope but kept out of `errors`.
520
+ * Reads the deployment cannot make (`StorageReadUnsupported`): a standing condition, kept out
521
+ * of `errors`. A database read that is unsupported is also in `failed`. A store read that is
522
+ * unsupported is not a failure and not a size of 0 (#2212): its scope counts in `read`, and its
523
+ * attempt carries no error, so the gauge does not show the scope as failing.
632
524
  */
633
525
  unsupported: number;
634
526
  /** Sample rows the directory wrote (a reading for a scope reaped meanwhile writes none). */
@@ -868,234 +760,31 @@ export declare function runCrossVerticalFrom(host: ScopeHost, options: Pick<Plat
868
760
  crossVertical: CrossVerticalReport;
869
761
  errors: PlatformSweepReport['errors'];
870
762
  }>;
871
- export declare function registryImportCandidates(input: {
872
- admin: Pick<HostAdmin, 'listVerticals'>;
873
- actor: PlatformActorId;
874
- readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
875
- /** Registry reads in flight at once. Default 8, the phase's own concurrency. */
876
- concurrency?: number;
877
- }): NonNullable<CrossVerticalReach['candidates']>;
878
763
  /**
879
- * Who a promote breaks (#1705 PR 3): the installed consumers whose RUNNING code imports an
880
- * exported (type, schemaVersion) that the outgoing version promised and the incoming one drops
881
- * or exports at another version. The promote gate refuses on a non-empty answer unless it is
882
- * acknowledged (`exportBreak`), and the refusal lists them.
764
+ * The control plane's `CrossVerticalReach.candidates` (#1705 PR 2): narrow the listed scopes to
765
+ * those whose RUNNING version may import, read from the version registry and never from a scope.
883
766
  *
884
- * - **What changed** is outgoing versus incoming, from the two versions' registries. An outgoing
885
- * version whose registry states no exports (a first promote, or a push by a CLI older than
886
- * 0.34.0) promised nothing the registry can name, so nothing is judged broken. Nothing it
887
- * exported at run time could be listed either, which is what the permission-digest gate
888
- * beside this one is for.
889
- * - **Who is a consumer** is the edge's own rule: a primary, active scope of ANOTHER vertical, in
890
- * a tenant where the producer is installed (any primary, active install, so two installs still
891
- * count), whose running version (`runningVersionOf`) declares the import. That over-approximates
892
- * on purpose, for a listed vertical's tenants still pinned to an older producer version: a
893
- * refusal that names one tenant too many costs an acknowledgement, and one that names too few
894
- * costs a silent stall.
895
- * - **A consumer version whose manifest does not parse** is not judged. It cannot be said to
896
- * break, and refusing every promote over a manifest nobody can parse would make the gate one
897
- * nobody can pass. A read that THREW is different: the registry could not be asked, so whom the
898
- * promote breaks is unknown, and this throws. The gate then refuses rather than failing open.
899
- * A failed directory read throws the same way.
767
+ * Per pass: one `listVerticals` (the serving pointers, only when some scope is on a serving
768
+ * script), and one `readImports` per DISTINCT running version, at most `concurrency` in flight.
769
+ * The control plane's reader is an unaudited directory read behind a cache keyed (slug,
770
+ * version), since a pushed version's manifest never changes. So after the first pass it costs
771
+ * no read at all.
900
772
  *
901
- * Cost: nothing at all unless an export changed. Then one fleet `listScopes`, one
902
- * `listVerticals` when a scope is on a serving script, and one `readImports` per distinct
903
- * running consumer version, at most `concurrency` in flight.
773
+ * Only a version that says it imports nothing is dropped (`none`: no manifest, no registry, no
774
+ * `imports` key). A version the registry cannot answer for (`unreadable`: a manifest that does
775
+ * not parse, a malformed row, a version the registry does not know, a failed read) keeps its
776
+ * scopes as candidates, and the scope's own `importState` decides. Excluding a consumer wrongly
777
+ * loses its edge with no trace. Including one wrongly costs one call. Each such version is
778
+ * reported once per pass through `hint.doubt`, and a failure on one version never stops the
779
+ * others.
904
780
  */
905
- export declare function exportBreaksOf(input: {
906
- admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
781
+ export declare function registryImportCandidates(input: {
782
+ admin: Pick<HostAdmin, 'listVerticals'>;
907
783
  actor: PlatformActorId;
908
- producer: string;
909
- outgoing: ManifestExports;
910
- incoming: ManifestExports;
911
784
  readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
785
+ /** Registry reads in flight at once. Default 8, the phase's own concurrency. */
912
786
  concurrency?: number;
913
- /**
914
- * #1756: judge ONE tenant's consumers only — a bind moves one install, and an edge never
915
- * crosses a tenant, so no other tenant's app can be broken by it. The tenant is taken to run
916
- * the producer (the scope being bound is that install), whatever its status.
917
- */
918
- tenantId?: TenantId;
919
- /** What is being judged, for the wording of a refusal to judge it. Default `'promotion'`. */
920
- act?: 'promotion' | 'bind';
921
- }): Promise<ExportBreak[]>;
922
- /** Whether a throw is the promote gate's export-break refusal (`exportBreakRefusal`). */
923
- export declare function isExportBreakRefusal(err: unknown): err is Error;
924
- /**
925
- * The refusal a promote gets for a non-empty `exportBreaksOf` (#1705 PR 3). Counts only: the
926
- * adapters do not know who is promoting, and a builder must not learn from an error which other
927
- * tenants import its events. The route that knows the caller lists what they may see.
928
- */
929
- export declare function exportBreakRefusal(breaks: readonly ExportBreak[]): string;
930
- /** How `bindExportBreakRefusal` begins: what lets the bind route recognise it (#1756). */
931
- export declare const BIND_EXPORT_BREAK_REFUSAL = "this bind drops or re-versions";
932
- /** Whether a throw is the bind gate's export-break refusal (`bindExportBreakRefusal`). */
933
- export declare function isBindExportBreakRefusal(err: unknown): err is Error;
934
- /**
935
- * The refusal a bind gets for a non-empty `bindExportBreaksOf` (#1756). Every break is in the
936
- * bound scope's own tenant, which the caller addressed, so it names no one else — but it stays in
937
- * counts, as the promote refusal does, and the route that knows the caller adds the listing.
938
- */
939
- export declare function bindExportBreakRefusal(breaks: readonly ExportBreak[]): string;
940
- /**
941
- * What a bind or a route change moves `scope` between (#1756, #2178): the version it runs before
942
- * and the one it runs after (`runningVersionOf` on both of its inputs), or null when the move
943
- * changes nothing it runs — a re-point that stays on the serving script — or it ran nothing before
944
- * (a first bind). `servingRef` omitted: the route is unchanged.
945
- */
946
- export declare function scopeMoveOf(scope: Pick<Scope, 'verticalVersionId' | 'servingRef'>, incomingVersionId: string, servingRef: string | null | undefined, serving: ServingPointer | null): {
947
- before: string;
948
- after: string;
949
- } | null;
950
- /**
951
- * #2178: the versions the active primary scopes of a vertical that a promote or a serve moves were
952
- * last provisioned against (`provisionedVersionId`, written only after a provision or reconcile
953
- * succeeds): those routed on a serving ref, and those of an owner tenant. A retirement reaches a
954
- * scope only at its reconcile, so a scope provisioned behind the retiring version still holds the
955
- * keys. #2185: and whether that reconcile FINISHED the version's retirements
956
- * (`retirementsFinishedVersionId` equal to the receipt), since one that left a retirement open still
957
- * writes the receipt. One row per (version, finished), with how many installs and one of them to
958
- * name, however many installs there are. Installs with NO receipt are a row too (`version_id` null):
959
- * a switch clears the receipt (#2045), a rewind and a restore do (#2185), and a new install has none until its first
960
- * reconcile. The sweep reconciles every unfinished or receiptless install on its next pass, so a
961
- * refusal they cause is transient unless that reconcile keeps failing, answers 'unsupported', or
962
- * cannot report its retirements (an `adapter-cloudflare` or `vertical-host` that predates the report). Binds
963
- * `(vertical, servingRef, ownerTenant)`; a null matches nothing. The directory has no index on
964
- * `vertical`, so this scans its scopes table: once per promote or serve.
965
- *
966
- * #2184: and which binding shapes the reconcile reported the installs have bound through a link
967
- * (`bound_shapes`, JSON `{version, types}`), counted only while its version is the receipt's, else
968
- * null (unknown). Grouped by it too: each set is a subset of one version's table-held bootstrap
969
- * shapes, sorted, so a fleet of one vertical has a handful.
970
- *
971
- * Review of #2220: and by the version each install RUNS (`runningVersionOf`: the served version on
972
- * the serving script, else its pointer), since a receipt behind it speaks for neither the bindings
973
- * nor the retirements of what it runs now. Bind its parameters with {@link provisionedVersionsParams}.
974
- *
975
- * So the rows are at most (receipt versions × running versions × 2 × distinct type sets), still
976
- * independent of how many installs there are.
977
- */
978
- export declare const PROVISIONED_VERSIONS_SQL = "SELECT provisioned_version_id AS version_id,\n CASE WHEN serving_ref = ? THEN ? ELSE vertical_version_id END AS running_version_id,\n COALESCE(retirements_finished_version_id = provisioned_version_id, 0) AS finished,\n CASE WHEN json_extract(bound_shapes, '$.version') = provisioned_version_id\n THEN json_extract(bound_shapes, '$.types') END AS bound_types,\n COUNT(*) AS installs, MIN(scope_id) AS example\n FROM scopes\n WHERE vertical = ? AND status = 'active' AND forked_from IS NULL AND COALESCE(kind, '') != 'preview'\n AND (serving_ref = ? OR tenant_id = ?)\n GROUP BY provisioned_version_id, running_version_id, finished, bound_types";
979
- /**
980
- * `PROVISIONED_VERSIONS_SQL`'s parameters: the installs of `vertical` on `serving`'s script (which
981
- * run its version) or owned by `ownerTenant`. Null for either matches nothing.
982
- */
983
- export declare function provisionedVersionsParams(vertical: string, serving: ServingPointer | null, ownerTenant: string | null): (string | null)[];
984
- /**
985
- * #2184: the directory's `bound_shapes` value — the version the reconcile ran against and the types
986
- * it reported bound, as one JSON value, so the pair is written and cleared together and a receipt
987
- * rewritten without it (a control plane that predates the column) reads as unknown. Null when
988
- * there is no receipt or the outcome does not say.
989
- */
990
- export declare function boundShapesColumn(versionId: string | null, types: readonly string[] | undefined): string | null;
991
- /** #2184: `Scope.boundShapes` from the directory's `bound_shapes` value; null for null or anything unreadable. */
992
- export declare function boundShapesOfColumn(raw: string | null | undefined): {
993
- versionId: string;
994
- types: string[];
995
- } | null;
996
- /** One row of `PROVISIONED_VERSIONS_SQL`: the installs that last reconciled one version. */
997
- export interface InstallsReconciled {
998
- /** Null: installs with no receipt, which may not have reconciled anything they run. */
999
- versionId: string | null;
1000
- /**
1001
- * Review of #2220: the version they run now, when the caller knows it. One that differs from
1002
- * `versionId` is a receipt lagging what runs: judged as if nothing about it had been reported.
1003
- */
1004
- runningVersionId: string | null;
1005
- /**
1006
- * #2185: whether their reconcile of `versionId` finished every retirement it declares. False
1007
- * judges them as still holding the keys it retires. Meaningless when `versionId` is null.
1008
- */
1009
- retirementsFinished: boolean;
1010
- /**
1011
- * #2184: the types of `versionId`'s table-held bootstrap shapes their reconcile reported bound
1012
- * through a link, or null when it did not report (or `versionId` is null): the gate then counts
1013
- * every such shape as bound.
1014
- */
1015
- boundShapes: string[] | null;
1016
- installs: number;
1017
- /** One of them, so a refusal can say which install to look at. */
1018
- example: string;
1019
- }
1020
- /** `PROVISIONED_VERSIONS_SQL`'s rows, as either adapter's driver returns them. */
1021
- export declare function installsReconciledOf(rows: readonly Record<string, unknown>[]): InstallsReconciled[];
1022
- /**
1023
- * #2185: one install's own receipt as a {@link InstallsReconciled} group, for a bind or a route of
1024
- * that install, judged by the same rule as the promote's `PROVISIONED_VERSIONS_SQL` rows, with the
1025
- * version it runs before the move (`scopeMoveOf`'s `before`).
1026
- */
1027
- export declare function installReconciled(scope: Pick<Scope, 'id' | 'provisionedVersionId' | 'retirementsFinishedVersionId' | 'boundShapes'>, runningVersionId: string | null): InstallsReconciled;
1028
- /**
1029
- * #2184: what the gate counts as bound for a group: the types its reconcile reported, or every
1030
- * table-held bootstrap shape (`'unknown'`) when it did not, or when the group has no receipt.
1031
- */
1032
- export declare function boundEverOf(g: InstallsReconciled): readonly string[] | 'unknown';
1033
- /** One judgment of the binding-shape gate: a version to judge a move from, and how (`assertNoBindingShapeBreak`). */
1034
- export interface StrandJudgment {
1035
- from: string;
1036
- opts: {
1037
- judgedFrom: string;
1038
- retiredStillHeld: boolean;
1039
- boundEver: readonly string[] | 'unknown';
1040
- };
1041
- }
1042
- /**
1043
- * What the binding-shape gate judges a move onto `afterId` from, for one group of installs, given
1044
- * the versions the move leaves (`froms`). One rule for both adapters' doors:
1045
- *
1046
- * - no receipt: every one of `froms`, as if nothing about it had run or been reported (the installs
1047
- * run one of them; judging the others too can only over-refuse, and only while it lasts);
1048
- * - a receipt behind the version they run (review of #2220): that running version the same way,
1049
- * since whatever it bound or retired since the receipt is not in it — a version that added `bind`
1050
- * may have reconciled and been claimed through without its receipt landing;
1051
- * - a receipt: its own version, from its own report (#2185, #2184).
1052
- *
1053
- * Each is transient: the sweep reconciles every such install on its next pass.
1054
- */
1055
- export declare function strandJudgmentsOf(g: InstallsReconciled, froms: readonly string[], afterId: string): StrandJudgment[];
1056
- /** What a refusal judged from installs' receipts says it was judged from. */
1057
- export declare function installsReconciledNote(g: InstallsReconciled): string;
1058
- /**
1059
- * Whom moving `scope` breaks (#1756): the promote gate's question (`exportBreaksOf`), asked of
1060
- * ONE install in its own tenant, since an edge never crosses one.
1061
- *
1062
- * A scope's exports leave from the code it RUNS, and `runningVersionOf` names that code from two
1063
- * inputs: the version pointer and the serving ref. So a move is either or both of them changing —
1064
- * a bind (`next.versionId`), or a route onto or off a serving script (`next.servingRef`, which is
1065
- * how an adopt moves a scope before its pointer ever does). Both are judged by the same rule, on
1066
- * the running version before against the running version after, the rule the consumers are judged
1067
- * on too:
1068
- *
1069
- * - **Re-pointing a scope that stays on its vertical's serving script** changes nothing it runs,
1070
- * so it is never refused. The change reached it when the serving script was replaced — at a
1071
- * promote, which judged every tenant then. A route ONTO the serving script is not that case:
1072
- * the scope goes from its own version to whatever is served, and that is judged.
1073
- * - **A fork or a preview** is never an edge's producer (`resolveVerticalInstanceFrom` takes the
1074
- * primary install only), so nothing it runs can break an edge.
1075
- * - **A scope still provisioning** has never been active, so no edge has ever delivered from it.
1076
- * - **A first bind** runs nothing before it, so it promised nothing.
1077
- * - **A lineage crossing** (the version belongs to another vertical than the scope's, or the route
1078
- * goes onto a script that is not this vertical's serving script) is not judged here, and nothing
1079
- * else judges it either: every consumer importing `from` the old slug
1080
- * loses its producer, and `rebind-vertical`'s acknowledgements are about migrations, not about
1081
- * that. A known gap, older than this gate.
1082
- */
1083
- export declare function bindExportBreaksOf(input: {
1084
- admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
1085
- actor: PlatformActorId;
1086
- scope: Pick<Scope, 'tenantId' | 'forkedFrom' | 'kind' | 'status' | 'vertical' | 'verticalVersionId' | 'servingRef'>;
1087
- /** The version the scope is bound to after the move (its vertical's slug beside it). */
1088
- incoming: {
1089
- id: string;
1090
- verticalSlug: string;
1091
- };
1092
- /** The serving ref it routes by after the move. Omitted: unchanged. */
1093
- servingRef?: string | null;
1094
- /** The serving pointer of the scope's vertical, or null when nothing is served in place. */
1095
- serving: ServingPointer | null;
1096
- readExports: (versionId: string) => Promise<ManifestExports>;
1097
- readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
1098
- }): Promise<ExportBreak[]>;
787
+ }): NonNullable<CrossVerticalReach['candidates']>;
1099
788
  /** Where a consumer's door stands for each peer, as `admin.peerGrantsStatus` answers it. */
1100
789
  type DoorRead = (tenantId: TenantId, scopeId: ScopeId) => Promise<readonly {
1101
790
  vertical: string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}