@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.
- package/dist/audit-outcome.d.ts +1 -1
- package/dist/audit-outcome.d.ts.map +1 -1
- package/dist/audit-outcome.js +4 -2
- package/dist/audit-outcome.js.map +1 -1
- package/dist/export-break.d.ts +137 -0
- package/dist/export-break.d.ts.map +1 -0
- package/dist/export-break.js +219 -0
- package/dist/export-break.js.map +1 -0
- package/dist/index.d.ts +17 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/install-receipts.d.ts +116 -0
- package/dist/install-receipts.d.ts.map +1 -0
- package/dist/install-receipts.js +162 -0
- package/dist/install-receipts.js.map +1 -0
- package/dist/invocation-line.d.ts +63 -0
- package/dist/invocation-line.d.ts.map +1 -1
- package/dist/invocation-line.js +44 -0
- package/dist/invocation-line.js.map +1 -1
- package/dist/map-bounded.d.ts +8 -0
- package/dist/map-bounded.d.ts.map +1 -0
- package/dist/map-bounded.js +16 -0
- package/dist/map-bounded.js.map +1 -0
- package/dist/meters.d.ts +5 -0
- package/dist/meters.d.ts.map +1 -1
- package/dist/meters.js +0 -0
- package/dist/meters.js.map +1 -1
- package/dist/peer.js +1 -1
- package/dist/platform-sweep.d.ts +52 -363
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +49 -564
- package/dist/platform-sweep.js.map +1 -1
- package/dist/schedule-state.d.ts +91 -0
- package/dist/schedule-state.d.ts.map +1 -0
- package/dist/schedule-state.js +118 -0
- package/dist/schedule-state.js.map +1 -0
- package/dist/scope-copy-ledger.d.ts +29 -0
- package/dist/scope-copy-ledger.d.ts.map +1 -1
- package/dist/scope-copy-ledger.js +23 -0
- package/dist/scope-copy-ledger.js.map +1 -1
- package/dist/scope-copy.d.ts.map +1 -1
- package/dist/scope-copy.js +3 -2
- package/dist/scope-copy.js.map +1 -1
- package/dist/scope-host.d.ts +199 -14
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js.map +1 -1
- package/dist/scope-identity.d.ts +68 -0
- package/dist/scope-identity.d.ts.map +1 -0
- package/dist/scope-identity.js +75 -0
- package/dist/scope-identity.js.map +1 -0
- package/dist/scope-store.d.ts +139 -0
- package/dist/scope-store.d.ts.map +1 -0
- package/dist/scope-store.js +237 -0
- package/dist/scope-store.js.map +1 -0
- package/dist/spine-restore.js +1 -1
- package/dist/sql-limits.d.ts.map +1 -1
- package/dist/sql-limits.js +10 -1
- package/dist/sql-limits.js.map +1 -1
- package/dist/storage-gauge.d.ts +21 -2
- package/dist/storage-gauge.d.ts.map +1 -1
- package/dist/storage-gauge.js +73 -6
- package/dist/storage-gauge.js.map +1 -1
- package/dist/store-kind-releases.d.ts +137 -0
- package/dist/store-kind-releases.d.ts.map +1 -0
- package/dist/store-kind-releases.js +252 -0
- package/dist/store-kind-releases.js.map +1 -0
- package/dist/upload-link.d.ts +89 -0
- package/dist/upload-link.d.ts.map +1 -0
- package/dist/upload-link.js +277 -0
- package/dist/upload-link.js.map +1 -0
- package/dist/vertical-scope-stores.d.ts +43 -0
- package/dist/vertical-scope-stores.d.ts.map +1 -0
- package/dist/vertical-scope-stores.js +195 -0
- package/dist/vertical-scope-stores.js.map +1 -0
- package/package.json +2 -2
package/dist/platform-sweep.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { AccessLogEntry, ConnectionId, MigrationProgress, MigrationStraggler, PlatformActorId, Scope, ScopeId, TenantId, DrainedEvent } from '@substrat-run/contracts';
|
|
2
|
-
import type {
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
631
|
-
*
|
|
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
|
-
*
|
|
880
|
-
*
|
|
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
|
-
*
|
|
885
|
-
*
|
|
886
|
-
*
|
|
887
|
-
*
|
|
888
|
-
*
|
|
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
|
-
*
|
|
902
|
-
* `
|
|
903
|
-
*
|
|
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
|
|
906
|
-
admin: Pick<HostAdmin, '
|
|
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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"}
|