@substrat-run/kernel 0.118.0 → 0.119.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/capability.d.ts +22 -1
- package/dist/capability.d.ts.map +1 -1
- package/dist/capability.js +20 -0
- package/dist/capability.js.map +1 -1
- package/dist/connector-calls.d.ts +205 -0
- package/dist/connector-calls.d.ts.map +1 -0
- package/dist/connector-calls.js +192 -0
- package/dist/connector-calls.js.map +1 -0
- package/dist/idempotency.d.ts +7 -1
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +8 -2
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/peer.d.ts +132 -0
- package/dist/peer.d.ts.map +1 -0
- package/dist/peer.js +177 -0
- package/dist/peer.js.map +1 -0
- package/dist/permission-checker.d.ts +1 -1
- package/dist/permission-checker.d.ts.map +1 -1
- package/dist/permission-checker.js +4 -1
- package/dist/permission-checker.js.map +1 -1
- package/dist/platform-sweep.d.ts +116 -1
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +209 -0
- package/dist/platform-sweep.js.map +1 -1
- package/dist/scope-host.d.ts +228 -7
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js.map +1 -1
- package/dist/system-switch.d.ts +38 -0
- package/dist/system-switch.d.ts.map +1 -1
- package/dist/system-switch.js +50 -3
- package/dist/system-switch.js.map +1 -1
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +30 -3
- package/dist/timeline.js.map +1 -1
- package/dist/vertical-events.d.ts +162 -0
- package/dist/vertical-events.d.ts.map +1 -0
- package/dist/vertical-events.js +348 -0
- package/dist/vertical-events.js.map +1 -0
- package/package.json +2 -2
package/dist/system-switch.js
CHANGED
|
@@ -61,7 +61,15 @@ export const SYSTEM_SWITCH_OFF_PREDICATE = `EXISTS (SELECT 1 FROM _substrat_tupl
|
|
|
61
61
|
* Object caps its patterns (#1655); an exact prefix compare is neither.
|
|
62
62
|
*/
|
|
63
63
|
export function systemScheduleState(db, moduleId, now) {
|
|
64
|
-
|
|
64
|
+
return subjectGrantState(db, subjectOf(moduleId), now);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The same gate for ANY switched subject (#1706) — `system:<module>` above, `vertical:<slug>`
|
|
68
|
+
* for a peer. One statement, one spelling: the peer switch's status read must not be able to
|
|
69
|
+
* disagree with the schedule switch's about what "off" and "ungranted" mean, and the surest
|
|
70
|
+
* way to hold that is for there to be one predicate rather than two that look alike.
|
|
71
|
+
*/
|
|
72
|
+
export function subjectGrantState(db, subject, now) {
|
|
65
73
|
const row = db.all(`SELECT
|
|
66
74
|
${SYSTEM_SWITCH_OFF_PREDICATE} AS off,
|
|
67
75
|
EXISTS (SELECT 1 FROM _substrat_tuples
|
|
@@ -71,9 +79,31 @@ export function systemScheduleState(db, moduleId, now) {
|
|
|
71
79
|
return 'off';
|
|
72
80
|
return Number(row?.granted) === 1 ? 'on' : 'ungranted';
|
|
73
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Every module this scope holds or has ever held system authority for, and where each
|
|
84
|
+
* stands (#1674) — the per-scope status read (`GET .../system-grants`). One SELECT
|
|
85
|
+
* enumerating the `system:<moduleId>` subjects this scope's storage has a live `granted:`
|
|
86
|
+
* tuple or OFF marker for (a module with neither has never run here, and has nothing to
|
|
87
|
+
* report — not even `ungranted`), then `systemScheduleState` per one: the SAME predicate
|
|
88
|
+
* `runDueSchedules` gates on, so the read and the runner cannot disagree.
|
|
89
|
+
*/
|
|
90
|
+
export function systemGrantsStatus(db, now) {
|
|
91
|
+
const rows = db.all(`SELECT DISTINCT subject FROM _substrat_tuples
|
|
92
|
+
WHERE substr(subject, 1, 7) = 'system:'
|
|
93
|
+
AND (substr(relation, 1, 8) = 'granted:' OR relation = '${SYSTEM_SWITCH_OFF_RELATION}')
|
|
94
|
+
ORDER BY subject`);
|
|
95
|
+
return rows.map((row) => {
|
|
96
|
+
const moduleId = row.subject.slice('system:'.length);
|
|
97
|
+
return { moduleId, schedules: systemScheduleState(db, moduleId, now) };
|
|
98
|
+
});
|
|
99
|
+
}
|
|
74
100
|
/** Is this module switched off on the scope `db` is? What `grantToSystem` refuses on. */
|
|
75
101
|
export function systemSwitchedOff(db, moduleId) {
|
|
76
|
-
|
|
102
|
+
return subjectSwitchedOff(db, subjectOf(moduleId));
|
|
103
|
+
}
|
|
104
|
+
/** Is this subject's OFF marker live on the scope `db` is? Any subject — see `switchSubjectGrants`. */
|
|
105
|
+
export function subjectSwitchedOff(db, subject) {
|
|
106
|
+
const row = db.all(`SELECT ${SYSTEM_SWITCH_OFF_PREDICATE} AS off`, subject)[0];
|
|
77
107
|
return Number(row?.off) === 1;
|
|
78
108
|
}
|
|
79
109
|
/** The refusal `grantToSystem` throws while the switch is off — one wording, both adapters. */
|
|
@@ -98,7 +128,24 @@ export function systemSwitchedOffMessage(moduleId, scopeId) {
|
|
|
98
128
|
* Run it inside one transaction; the reads and writes here are meant to be one unit.
|
|
99
129
|
*/
|
|
100
130
|
export function switchSystemSchedules(db, input) {
|
|
101
|
-
|
|
131
|
+
return switchSubjectGrants(db, {
|
|
132
|
+
subject: subjectOf(input.moduleId),
|
|
133
|
+
scopeId: input.scopeId,
|
|
134
|
+
to: input.to,
|
|
135
|
+
at: input.at,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The switch itself, for ANY non-person subject's scope-level grants — `switchSystemSchedules`
|
|
140
|
+
* for a schedule (`system:<module>`), and the peer kill switch for another vertical
|
|
141
|
+
* (`vertical:<slug>`, #1706). One body, so the two levers cannot disagree about what OFF
|
|
142
|
+
* tombstones, what ON gives back, or when a call held nothing. Everything said above
|
|
143
|
+
* `switchSystemSchedules` holds for every subject: the marker is `SYSTEM_SWITCH_OFF_RELATION`,
|
|
144
|
+
* and `seatScopeTuple`'s predicate is already bound per subject, so a marker blocks the seat
|
|
145
|
+
* for exactly the subject it names.
|
|
146
|
+
*/
|
|
147
|
+
export function switchSubjectGrants(db, input) {
|
|
148
|
+
const subject = input.subject;
|
|
102
149
|
const object = `scope:${input.scopeId}`;
|
|
103
150
|
const grants = db.all(`SELECT relation, revoked_at FROM _substrat_tuples
|
|
104
151
|
WHERE subject = ? AND object = ? AND substr(relation, 1, 8) = 'granted:'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-switch.js","sourceRoot":"","sources":["../src/system-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAC;AAEvD,uFAAuF;AACvF,MAAM,eAAe,GAAG,WAAW,CAAC;AAqBpC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;sCACL,0BAA0B,2BAA2B,CAAC;AAE5F;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAa,EAAE,QAAgB,EAAE,GAAW;IAC9E,
|
|
1
|
+
{"version":3,"file":"system-switch.js","sourceRoot":"","sources":["../src/system-switch.ts"],"names":[],"mappings":"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"}
|
package/dist/timeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAMf,KAAK,QAAQ,EACb,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;CACxC;AAmID;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAAC,aAAa,CAAC,CAKrB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAAC,YAAY,CAAC,CAKpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAK,GACZ,UAAU,CAiEZ;AAkDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAK,GACZ,WAAW,CAoFb;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,SAAM,GACV,gBAAgB,CAOlB;AA+DD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAwChH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAqEzF"}
|
package/dist/timeline.js
CHANGED
|
@@ -184,6 +184,21 @@ export function walkEventCause(ctx, eventId, maxDepth = 25) {
|
|
|
184
184
|
const rows = ctx.sql.query(`SELECT ${HISTORY_COLUMNS} FROM _substrat_outbox WHERE id = ? LIMIT 1`, [next]);
|
|
185
185
|
const row = rows[0];
|
|
186
186
|
if (row === undefined) {
|
|
187
|
+
// #1705: not in the outbox, but RECEIVED: the cause is another vertical's exported
|
|
188
|
+
// event. The trail leaves this scope rather than breaking, so the walk says where it
|
|
189
|
+
// went and does not raise the integrity alarm that 'missing' is.
|
|
190
|
+
const imported = ctx.sql.query('SELECT source_vertical, source_scope_id FROM _substrat_imports WHERE event_id = ? LIMIT 1', [next])[0];
|
|
191
|
+
if (imported !== undefined) {
|
|
192
|
+
return {
|
|
193
|
+
chain,
|
|
194
|
+
terminal: 'imported',
|
|
195
|
+
imported: {
|
|
196
|
+
eventId: next,
|
|
197
|
+
vertical: imported.source_vertical,
|
|
198
|
+
scopeId: imported.source_scope_id,
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
}
|
|
187
202
|
// The FIRST id missing means the caller named an event this scope does not
|
|
188
203
|
// hold; a later one means the spine lost a row it should still have. Both are
|
|
189
204
|
// 'missing' — the view says the trail cannot be followed further, and does not
|
|
@@ -427,12 +442,24 @@ export function readDeadLetters(ctx, page) {
|
|
|
427
442
|
params.push(event, event, consumer);
|
|
428
443
|
}
|
|
429
444
|
params.push(limit);
|
|
445
|
+
// #1705: a delivery's event is in this scope's outbox, OR it was received from another
|
|
446
|
+
// vertical and its envelope is in `_substrat_imports`. An import that gave up, or one the
|
|
447
|
+
// producer withheld, is a dead letter this scope's operator must see, so the read takes
|
|
448
|
+
// both. Two LEFT JOINs rather than a UNION: each seeks its table's key, where a UNION ALL
|
|
449
|
+
// subquery in a join could be materialized over the whole outbox. An imported event
|
|
450
|
+
// carries no invocation of this scope, so that column reads null.
|
|
430
451
|
const rows = ctx.sql.query(`SELECT d.event_id, d.consumer_module, d.delivered_at, d.error, d.attempts,
|
|
431
452
|
d.invocation_id AS attempt_invocation_id,
|
|
432
|
-
o.type,
|
|
453
|
+
COALESCE(o.type, i.type) AS type,
|
|
454
|
+
COALESCE(o.occurred_at, i.occurred_at) AS occurred_at,
|
|
455
|
+
COALESCE(o.entity_type, i.entity_type) AS entity_type,
|
|
456
|
+
COALESCE(o.entity_id, i.entity_id) AS entity_id,
|
|
457
|
+
o.invocation_id
|
|
433
458
|
FROM _substrat_deliveries d
|
|
434
|
-
JOIN _substrat_outbox o ON o.id = d.event_id
|
|
435
|
-
|
|
459
|
+
LEFT JOIN _substrat_outbox o ON o.id = d.event_id
|
|
460
|
+
LEFT JOIN _substrat_imports i ON i.event_id = d.event_id
|
|
461
|
+
WHERE d.error IS NOT NULL AND d.next_attempt_at IS NULL
|
|
462
|
+
AND (o.id IS NOT NULL OR i.event_id IS NOT NULL)${after}
|
|
436
463
|
ORDER BY d.event_id DESC, d.consumer_module DESC
|
|
437
464
|
LIMIT ?`, params);
|
|
438
465
|
const entries = rows.map(deadLetterOf);
|
package/dist/timeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-vertical event delivery (#1705): the half both adapters share.
|
|
3
|
+
*
|
|
4
|
+
* A vertical exports an event type by declaring it (`events.exports`), and another vertical of
|
|
5
|
+
* the same tenant imports it by declaring `events.consumes: [{ from, … }]`. Nothing is written
|
|
6
|
+
* when an exported event commits. The producer's outbox is retained and is already the durable
|
|
7
|
+
* record, so an export is a READ over it, and a consumer's progress is a watermark the consumer
|
|
8
|
+
* keeps. Each platform sweep pass then:
|
|
9
|
+
*
|
|
10
|
+
* 1. asks the consumer scope for its watermark on this producer (`IMPORT_CURSORS_SQL`);
|
|
11
|
+
* 2. reads the producer's outbox after it, in the producer's own scope, through its own
|
|
12
|
+
* running `exports` (`exportReadQuery` + `planExportBatch`);
|
|
13
|
+
* 3. hands the batch to the consumer, which journals each event and runs its handlers,
|
|
14
|
+
* then moves the watermark in the same store (`IMPORT_CURSOR_ADVANCE_SQL`).
|
|
15
|
+
*
|
|
16
|
+
* The tables here are the consumer's half of that, and they hold NO payload. The event's only
|
|
17
|
+
* copy stays in the producer's outbox, where a subject erasure already reaches. An imported
|
|
18
|
+
* payload would be one more resting copy for the erasure to find, and #1600 and #1632 were
|
|
19
|
+
* each about a copy it had missed. What the consumer keeps is the envelope. That is enough to
|
|
20
|
+
* dedupe, to show a dead letter, and to resolve a `caused_by` that points across the edge.
|
|
21
|
+
*
|
|
22
|
+
* Shared from here for `CAPABILITY_DDL`'s reason: the self-host builds these tables and
|
|
23
|
+
* production builds them, and one definition is what keeps the two identical.
|
|
24
|
+
* `lint:spine-ddl` holds each adapter to including it.
|
|
25
|
+
*/
|
|
26
|
+
import { type EventExport, type ModuleManifest, type ExportedBatch, type WantedEvent, type WithheldEvent } from '@substrat-run/contracts';
|
|
27
|
+
import { type OutboxEnvelopeRow } from './outbox-event.js';
|
|
28
|
+
import type { ImportHandler } from './scope-host.js';
|
|
29
|
+
export declare const VERTICAL_EVENTS_DDL = "\n -- #1705: every event this scope has received from another vertical. The envelope only, and\n -- never the payload. The producer's outbox keeps the one copy, where erasure already reaches.\n CREATE TABLE IF NOT EXISTS _substrat_imports (\n -- The PRODUCER's event id. A ULID the producer's host minted, so it is unique across\n -- every source this scope imports from, and it is the dedupe key: a batch delivered\n -- twice finds its events here and its handlers' journal rows in _substrat_deliveries.\n event_id TEXT PRIMARY KEY,\n source_scope_id TEXT NOT NULL,\n source_vertical TEXT NOT NULL,\n type TEXT NOT NULL,\n schema_version INTEGER NOT NULL,\n occurred_at TEXT NOT NULL,\n entity_type TEXT NOT NULL,\n entity_id TEXT NOT NULL,\n -- How many vertical boundaries this event's cause chain has crossed, this one included.\n -- An export read in THIS scope counts from here when one of its own events was caused by\n -- an import, which is how a loop between two verticals is stopped.\n hops INTEGER NOT NULL,\n -- NULL: released, and handed to this scope's handlers. Otherwise the producer's reason\n -- for NOT releasing it ('pii', 'version', 'cascade', 'undecodable'). Such a row was\n -- named but never carried.\n withheld TEXT,\n imported_at TEXT NOT NULL\n );\n -- #1705: how far this scope has read each producer. Written in the same store as the\n -- handlers' writes, so a restore of this scope rewinds the watermark with the data and the\n -- producer re-delivers what the restore undid. A watermark the platform held instead would\n -- skip it.\n CREATE TABLE IF NOT EXISTS _substrat_import_cursors (\n source_scope_id TEXT PRIMARY KEY,\n source_vertical TEXT NOT NULL,\n -- The id of the last producer row the reads walked (released or withheld). NULL is not\n -- stored: a producer with no row here has never been read, which the absence says.\n cursor TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n -- #1705: the export read, on the PRODUCER side. It asks for a few types after a watermark,\n -- in id order. Without this index SQLite walks the primary key from the watermark forward and\n -- steps over every row of every other type. A consumer that is caught up would then pay, on\n -- every pass, for all the unexported activity since the last exported event. With it, the read\n -- seeks each type's range and costs what it returns.\n CREATE INDEX IF NOT EXISTS _substrat_outbox_type_id ON _substrat_outbox (type, id);\n";
|
|
30
|
+
/**
|
|
31
|
+
* The producer-side read: rows of the given types after the watermark, oldest first.
|
|
32
|
+
*
|
|
33
|
+
* `types` is already the intersection of what the consumer wants and what this scope exports.
|
|
34
|
+
* The caller computes it from its own registered manifests, never from the request alone, so
|
|
35
|
+
* nothing here can widen what leaves.
|
|
36
|
+
*/
|
|
37
|
+
export declare function exportReadQuery(types: readonly string[], after: string | null, limit: number): {
|
|
38
|
+
sql: string;
|
|
39
|
+
params: unknown[];
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* How many vertical boundaries the cause chain of an outbox row with this `caused_by` has
|
|
43
|
+
* already crossed. The answer is the `hops` of the NEAREST import in its chain, or no row when
|
|
44
|
+
* the chain never crossed one.
|
|
45
|
+
*
|
|
46
|
+
* Walks `caused_by` backwards through this scope's outbox. The chain ends at an import, which
|
|
47
|
+
* is in `_substrat_imports` and not in the outbox, or at an event nothing caused. Bounded at 64
|
|
48
|
+
* steps: a chain that long inside ONE scope has already been cut many times by the per-call
|
|
49
|
+
* cascade cap. Past the bound, the row counts as having crossed nothing. That under-counts, and
|
|
50
|
+
* it is stated rather than hidden. It can only let a loop run for more passes than the cap
|
|
51
|
+
* intends. It cannot release an event that should not cross.
|
|
52
|
+
*/
|
|
53
|
+
export declare const EXPORT_HOPS_SQL = "\n WITH RECURSIVE chain(id, depth) AS (\n SELECT ?, 0\n UNION ALL\n SELECT o.caused_by, c.depth + 1\n FROM chain c JOIN _substrat_outbox o ON o.id = c.id\n WHERE o.caused_by IS NOT NULL AND c.depth < 64\n )\n SELECT i.hops AS hops FROM chain c JOIN _substrat_imports i ON i.event_id = c.id\n ORDER BY c.depth LIMIT 1\n";
|
|
54
|
+
/** A stored outbox row, as the export read sees it: the envelope, plus the cause column. */
|
|
55
|
+
export type ExportRow = OutboxEnvelopeRow & {
|
|
56
|
+
caused_by?: string | null;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* The producer-side decision, over rows already read: what is released, what is withheld and
|
|
60
|
+
* why, and the watermark the consumer should hold afterwards.
|
|
61
|
+
*
|
|
62
|
+
* Pure, so both adapters make the same decision about the same rows. Authority is NOT decided
|
|
63
|
+
* here. The adapter checks the consumer's principal before it reads anything, and a missing
|
|
64
|
+
* key pauses the edge without walking a row. Every reason this function withholds for is
|
|
65
|
+
* fixed at write time (the classification, the version, the cause chain, the stored text),
|
|
66
|
+
* so stepping the watermark past a withheld row can never lose an event that a later pass
|
|
67
|
+
* would have released.
|
|
68
|
+
*/
|
|
69
|
+
export declare function planExportBatch(input: {
|
|
70
|
+
rows: readonly ExportRow[];
|
|
71
|
+
/** What the consumer declares it takes, by type. */
|
|
72
|
+
wanted: ReadonlyMap<string, number>;
|
|
73
|
+
/** How many boundaries a row's cause chain already crossed (0 = none). */
|
|
74
|
+
hopsBefore: (row: ExportRow) => number;
|
|
75
|
+
after: string | null;
|
|
76
|
+
limit: number;
|
|
77
|
+
hopCap?: number;
|
|
78
|
+
}): Pick<ExportedBatch, 'events' | 'withheld' | 'next' | 'more'>;
|
|
79
|
+
/**
|
|
80
|
+
* The read plan for one request: which types to read, which keys the consumer must hold for
|
|
81
|
+
* them, and what it asked for that this scope does not export.
|
|
82
|
+
*
|
|
83
|
+
* `exports` is THIS scope's running declaration, the union over its registered modules. A
|
|
84
|
+
* wanted type absent from it is reported and never read. That is the producer's own code
|
|
85
|
+
* deciding what leaves, whatever the platform asked for.
|
|
86
|
+
*/
|
|
87
|
+
export declare function exportReadPlan(exports: ReadonlyMap<string, EventExport>, wants: readonly WantedEvent[]): {
|
|
88
|
+
types: string[];
|
|
89
|
+
keys: string[];
|
|
90
|
+
wanted: Map<string, number>;
|
|
91
|
+
unexported: WantedEvent[];
|
|
92
|
+
};
|
|
93
|
+
/** Every (type → export) the given manifests declare. The caller's registration refuses conflicts. */
|
|
94
|
+
export declare function exportsOf(manifests: readonly {
|
|
95
|
+
events: {
|
|
96
|
+
exports?: readonly EventExport[];
|
|
97
|
+
};
|
|
98
|
+
}[]): Map<string, EventExport>;
|
|
99
|
+
/** The consumer's watermark per producer, oldest source first. */
|
|
100
|
+
export declare const IMPORT_CURSORS_SQL = "SELECT source_scope_id, source_vertical, cursor, updated_at FROM _substrat_import_cursors ORDER BY source_scope_id";
|
|
101
|
+
/** One producer's watermark, for the compare-and-set a batch is applied under. */
|
|
102
|
+
export declare const IMPORT_CURSOR_OF_SQL = "SELECT cursor FROM _substrat_import_cursors WHERE source_scope_id = ?";
|
|
103
|
+
/**
|
|
104
|
+
* Move one producer's watermark. Params: (source_scope_id, source_vertical, cursor, updated_at).
|
|
105
|
+
*
|
|
106
|
+
* Only ever forward. ULIDs sort by time, and a batch's `next` is the last id its read walked,
|
|
107
|
+
* so a smaller value can only come from a pass that read less than one already applied. The
|
|
108
|
+
* batch's own compare-and-set normally refuses that pass before it gets here, and this is the
|
|
109
|
+
* second line.
|
|
110
|
+
*/
|
|
111
|
+
export declare const IMPORT_CURSOR_ADVANCE_SQL = "\n INSERT INTO _substrat_import_cursors (source_scope_id, source_vertical, cursor, updated_at)\n VALUES (?, ?, ?, ?)\n ON CONFLICT (source_scope_id) DO UPDATE SET\n source_vertical = excluded.source_vertical,\n cursor = excluded.cursor,\n updated_at = excluded.updated_at\n WHERE excluded.cursor > _substrat_import_cursors.cursor\n";
|
|
112
|
+
/**
|
|
113
|
+
* Journal one received (or withheld) event's envelope. Params in column order. Ignored on a
|
|
114
|
+
* repeat: the first journaling is the fact, and a redelivered batch must not move
|
|
115
|
+
* `imported_at` forward or rewrite what was withheld and why.
|
|
116
|
+
*/
|
|
117
|
+
export declare const IMPORT_RECORD_SQL = "\n INSERT OR IGNORE INTO _substrat_imports\n (event_id, source_scope_id, source_vertical, type, schema_version, occurred_at,\n entity_type, entity_id, hops, withheld, imported_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n";
|
|
118
|
+
/** The note a withheld event's dead letter carries at the consumer. Names the reason, never the content. */
|
|
119
|
+
export declare function withheldNote(reason: WithheldEvent['reason'], vertical: string): string;
|
|
120
|
+
/** One registered import handler: which module, from which vertical, for which (type, version). */
|
|
121
|
+
export interface RegisteredImport {
|
|
122
|
+
moduleId: string;
|
|
123
|
+
from: string;
|
|
124
|
+
type: string;
|
|
125
|
+
schemaVersion: number;
|
|
126
|
+
handler: ImportHandler;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* A host's cross-vertical declarations (#1705), accumulated module by module. It is held by
|
|
130
|
+
* every place that registers modules (the pure host, the Cloudflare coordinator and the
|
|
131
|
+
* scope DO), so the three refuse the same wiring with the same words.
|
|
132
|
+
*
|
|
133
|
+
* What it refuses, and why each would otherwise be silent:
|
|
134
|
+
* - **An import handler for a (source, type) the manifest does not declare `from` it.** It
|
|
135
|
+
* would run for events nobody reviewed the module receiving, because the declaration is
|
|
136
|
+
* what the permission diff shows.
|
|
137
|
+
* - **A declared import with no handler.** The edge would be read, the events journaled and
|
|
138
|
+
* the watermark moved, and nothing would ever run: a delivery that reports success and
|
|
139
|
+
* does nothing. (A LOCAL consume without a handler stays allowed, as it always was.)
|
|
140
|
+
* - **Two modules importing one (source, type) at different versions**, or **exporting one
|
|
141
|
+
* type under different versions or keys**. The edge asks for one version and gates on one
|
|
142
|
+
* key, and which module won would depend on registration order.
|
|
143
|
+
*/
|
|
144
|
+
export declare class CrossVerticalRegistry {
|
|
145
|
+
private readonly exportsByType;
|
|
146
|
+
private readonly importVersion;
|
|
147
|
+
private readonly registered;
|
|
148
|
+
register(manifest: Pick<ModuleManifest, 'id' | 'events'>, handlers: Record<string, Record<string, ImportHandler>> | undefined): void;
|
|
149
|
+
/** type → export, over every registered module: what this deployment releases. */
|
|
150
|
+
exports(): Map<string, EventExport>;
|
|
151
|
+
/** What this deployment imports, one row per (source, type), sorted. */
|
|
152
|
+
consumes(): {
|
|
153
|
+
from: string;
|
|
154
|
+
type: string;
|
|
155
|
+
schemaVersion: number;
|
|
156
|
+
}[];
|
|
157
|
+
/** The handlers for one (source, type), in registration order. */
|
|
158
|
+
handlersFor(from: string, type: string): RegisteredImport[];
|
|
159
|
+
/** Every module that imports anything from `from`: who a withheld event's dead letter is filed under. */
|
|
160
|
+
modulesImporting(from: string, type: string): string[];
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=vertical-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertical-events.d.ts","sourceRoot":"","sources":["../src/vertical-events.ts"],"names":[],"mappings":"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"}
|