@substrat-run/kernel 0.116.0 → 0.117.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 +220 -0
- package/dist/capability.d.ts.map +1 -0
- package/dist/capability.js +537 -0
- package/dist/capability.js.map +1 -0
- package/dist/check-key.d.ts +30 -0
- package/dist/check-key.d.ts.map +1 -0
- package/dist/check-key.js +37 -0
- package/dist/check-key.js.map +1 -0
- package/dist/denial-query.d.ts +32 -1
- package/dist/denial-query.d.ts.map +1 -1
- package/dist/denial-query.js +66 -28
- package/dist/denial-query.js.map +1 -1
- package/dist/index.d.ts +19 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/outbox-event.d.ts +131 -0
- package/dist/outbox-event.d.ts.map +1 -0
- package/dist/outbox-event.js +185 -0
- package/dist/outbox-event.js.map +1 -0
- package/dist/permission-checker.d.ts +8 -1
- package/dist/permission-checker.d.ts.map +1 -1
- package/dist/permission-checker.js +18 -0
- package/dist/permission-checker.js.map +1 -1
- package/dist/permission-eval.d.ts +8 -0
- package/dist/permission-eval.d.ts.map +1 -1
- package/dist/permission-eval.js +164 -91
- package/dist/permission-eval.js.map +1 -1
- package/dist/platform-request-query.d.ts +58 -1
- package/dist/platform-request-query.d.ts.map +1 -1
- package/dist/platform-request-query.js +61 -1
- package/dist/platform-request-query.js.map +1 -1
- package/dist/platform-sweep.d.ts +123 -8
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +158 -34
- package/dist/platform-sweep.js.map +1 -1
- package/dist/row-decode.d.ts +107 -0
- package/dist/row-decode.d.ts.map +1 -0
- package/dist/row-decode.js +93 -0
- package/dist/row-decode.js.map +1 -0
- package/dist/scope-host.d.ts +211 -9
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js +33 -0
- package/dist/scope-host.js.map +1 -1
- package/dist/scope-tuple-seat.d.ts +72 -0
- package/dist/scope-tuple-seat.d.ts.map +1 -0
- package/dist/scope-tuple-seat.js +93 -0
- package/dist/scope-tuple-seat.js.map +1 -0
- package/dist/subject-redaction.d.ts +160 -0
- package/dist/subject-redaction.d.ts.map +1 -0
- package/dist/subject-redaction.js +210 -0
- package/dist/subject-redaction.js.map +1 -0
- package/dist/system-switch.d.ts +108 -0
- package/dist/system-switch.d.ts.map +1 -0
- package/dist/system-switch.js +145 -0
- package/dist/system-switch.js.map +1 -0
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +109 -57
- package/dist/timeline.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type Actor, type PermissionKey } from '@substrat-run/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* The tolerant decode of one spine row, field by field (#1588, #1636).
|
|
4
|
+
*
|
|
5
|
+
* Every spine read that returns a LIST used to decode its rows strictly, so one row
|
|
6
|
+
* whose JSON would not parse threw out of the map and took every healthy neighbour
|
|
7
|
+
* with it — the intent journal (#1588), an entity's history and its cause walks, the
|
|
8
|
+
* denial log and its summary (#1636). The reads hit worst were the ones that exist to
|
|
9
|
+
* explain a failure, switched off by exactly the row that failed.
|
|
10
|
+
*
|
|
11
|
+
* So each field is decoded against its OWN contract field, and a row says what did not
|
|
12
|
+
* decode rather than taking the list down:
|
|
13
|
+
*
|
|
14
|
+
* - a JSON column that does not decode comes back EMPTY — the caller names the empty
|
|
15
|
+
* value, which must be one the field's schema accepts (`null`, or a self-naming marker
|
|
16
|
+
* such as {@link UNDECODED_ACTOR} for a field that cannot be null). Never the raw text:
|
|
17
|
+
* a raw payload would read as a string payload that was never sent.
|
|
18
|
+
* - a nullable scalar that breaks its schema comes back `null`.
|
|
19
|
+
* - a REQUIRED scalar has no honest empty value, so a row that breaks one cannot be the
|
|
20
|
+
* contract shape without lying. It is collected, and `finish` throws naming every
|
|
21
|
+
* column the row broke — the strict decode this replaced, kept for exactly the part it
|
|
22
|
+
* cannot honestly relax.
|
|
23
|
+
*
|
|
24
|
+
* **Every value a decoder built on this returns satisfies the published schema**, which
|
|
25
|
+
* is #1634's review finding carried forward: a field is only ever replaced by a value its
|
|
26
|
+
* own schema accepts, so a caller can trust the type it was handed. What did not decode
|
|
27
|
+
* is named, by column, in `decodeError` — ABSENT on a row the kernel wrote, so a healthy
|
|
28
|
+
* list reads exactly as it did before.
|
|
29
|
+
*
|
|
30
|
+
* The message never quotes the stored text. `JSON.parse`'s own message does, and for a
|
|
31
|
+
* payload that is the event's content: copied into a dead letter or a sweep log it would
|
|
32
|
+
* be personal data somewhere an erasure does not reach. The one exception is `marked`, for
|
|
33
|
+
* a short identifier whose stored value IS the evidence (a denial's permission key): that
|
|
34
|
+
* one is quoted, capped, on purpose.
|
|
35
|
+
*/
|
|
36
|
+
type FieldParse<T> = {
|
|
37
|
+
success: true;
|
|
38
|
+
data: T;
|
|
39
|
+
} | {
|
|
40
|
+
success: false;
|
|
41
|
+
error: {
|
|
42
|
+
issues: ReadonlyArray<{
|
|
43
|
+
message: string;
|
|
44
|
+
path: ReadonlyArray<PropertyKey>;
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
/** The one method a decoder needs from a contract field — any Zod schema has it. */
|
|
49
|
+
export interface Field<T> {
|
|
50
|
+
safeParse(value: unknown): FieldParse<T>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* What an actor reads as when the stored one did not decode. An actor is required and has
|
|
54
|
+
* no empty value, so this is a marker that names itself rather than a plausible actor: a
|
|
55
|
+
* guessed principal would be the one thing worse than admitting nobody can tell.
|
|
56
|
+
*/
|
|
57
|
+
export declare const UNDECODED_ACTOR: Actor;
|
|
58
|
+
/**
|
|
59
|
+
* What a denial's `permission` reads as when the stored key is not a permission key (#1636).
|
|
60
|
+
*
|
|
61
|
+
* Unlike the other required scalars, this one is reachable from LIVE module code rather than
|
|
62
|
+
* only from a dump: nothing validates a checked key at runtime, so a module that casts a
|
|
63
|
+
* malformed key into `ctx.check` is refused, and the refusal is recorded with that key. The
|
|
64
|
+
* denial log is exactly where someone goes to find out why — so the row must not take the
|
|
65
|
+
* list with it, and the bad key is the evidence: `marked` carries it, verbatim, in
|
|
66
|
+
* `decodeError`, beside this self-naming marker.
|
|
67
|
+
*/
|
|
68
|
+
export declare const UNDECODED_PERMISSION: PermissionKey;
|
|
69
|
+
/** `column: message`, for the first issue a field's schema raised. */
|
|
70
|
+
export declare function issueOf(column: string, error: Extract<FieldParse<unknown>, {
|
|
71
|
+
success: false;
|
|
72
|
+
}>['error']): string;
|
|
73
|
+
/** The message a JSON column that does not parse is recorded with — never the text itself. */
|
|
74
|
+
export declare const NOT_JSON = "not valid JSON";
|
|
75
|
+
export interface RowDecoder {
|
|
76
|
+
/** A required scalar. A failure is held until `finish`, which throws — the value never escapes. */
|
|
77
|
+
required<T>(column: string, field: Field<T>, stored: unknown): T;
|
|
78
|
+
/** A nullable scalar: `null`, named in `decodeError`, when it breaks its schema. */
|
|
79
|
+
nullable<T>(column: string, field: Field<T | null>, stored: unknown): T | null;
|
|
80
|
+
/**
|
|
81
|
+
* A required scalar with a self-naming `marker` to stand in for it — for the column whose
|
|
82
|
+
* stored value is the EVIDENCE (a denial's permission key), so the row is returned rather
|
|
83
|
+
* than thrown, and the value is quoted in `decodeError` rather than lost. `marker` must be
|
|
84
|
+
* a value `field` accepts. Only for a short identifier, never for content: it is quoted.
|
|
85
|
+
*/
|
|
86
|
+
marked<T>(column: string, field: Field<T>, stored: unknown, marker: T): T;
|
|
87
|
+
/** A JSON column: `empty`, named in `decodeError`, when it does not parse or breaks its schema. */
|
|
88
|
+
json<T>(column: string, field: Field<T>, stored: string | null, empty: T): T;
|
|
89
|
+
/** Every column that did not decode, required or not — for a caller whose logic reads one. */
|
|
90
|
+
readonly failed: ReadonlySet<string>;
|
|
91
|
+
/**
|
|
92
|
+
* The row, with `decodeError` naming every column that did not decode — or absent when
|
|
93
|
+
* all did. Throws, naming every column, when a required scalar broke.
|
|
94
|
+
*/
|
|
95
|
+
finish<R extends object>(decoded: R): R & {
|
|
96
|
+
decodeError?: string;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* One row's decoder. `subject` names the row in a throw (`platform request row "01J…"`),
|
|
101
|
+
* `contract` the shape it could not be read as. Every field is decoded before `finish`
|
|
102
|
+
* reads the lists, so a message names every column that failed — not whichever one
|
|
103
|
+
* happened to be reached first.
|
|
104
|
+
*/
|
|
105
|
+
export declare function rowDecoder(subject: string, contract: string): RowDecoder;
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=row-decode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-decode.d.ts","sourceRoot":"","sources":["../src/row-decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,KAAK,UAAU,CAAC,CAAC,IACb;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhH,oFAAoF;AACpF,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAA8C,CAAC;AAE7E;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAA6D,CAAC;AAKjG,sEAAsE;AACtE,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,GAC/D,MAAM,CAIR;AAED,8FAA8F;AAC9F,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,mGAAmG;IACnG,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;IACjE,oFAAoF;IACpF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/E;;;;;OAKG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1E,mGAAmG;IACnG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7E,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAwDxE"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { actor, permissionKey } from '@substrat-run/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* What an actor reads as when the stored one did not decode. An actor is required and has
|
|
4
|
+
* no empty value, so this is a marker that names itself rather than a plausible actor: a
|
|
5
|
+
* guessed principal would be the one thing worse than admitting nobody can tell.
|
|
6
|
+
*/
|
|
7
|
+
export const UNDECODED_ACTOR = actor.parse({ system: 'undecodable' });
|
|
8
|
+
/**
|
|
9
|
+
* What a denial's `permission` reads as when the stored key is not a permission key (#1636).
|
|
10
|
+
*
|
|
11
|
+
* Unlike the other required scalars, this one is reachable from LIVE module code rather than
|
|
12
|
+
* only from a dump: nothing validates a checked key at runtime, so a module that casts a
|
|
13
|
+
* malformed key into `ctx.check` is refused, and the refusal is recorded with that key. The
|
|
14
|
+
* denial log is exactly where someone goes to find out why — so the row must not take the
|
|
15
|
+
* list with it, and the bad key is the evidence: `marked` carries it, verbatim, in
|
|
16
|
+
* `decodeError`, beside this self-naming marker.
|
|
17
|
+
*/
|
|
18
|
+
export const UNDECODED_PERMISSION = permissionKey.parse('undecodable:permission');
|
|
19
|
+
/** How much of a stored scalar a `marked` field quotes back — a key, not a payload. */
|
|
20
|
+
const QUOTED_MAX = 200;
|
|
21
|
+
/** `column: message`, for the first issue a field's schema raised. */
|
|
22
|
+
export function issueOf(column, error) {
|
|
23
|
+
const issue = error.issues[0];
|
|
24
|
+
const at = issue && issue.path.length ? `.${issue.path.map(String).join('.')}` : '';
|
|
25
|
+
return `${column}${at}: ${issue?.message ?? 'does not match the contract'}`;
|
|
26
|
+
}
|
|
27
|
+
/** The message a JSON column that does not parse is recorded with — never the text itself. */
|
|
28
|
+
export const NOT_JSON = 'not valid JSON';
|
|
29
|
+
/**
|
|
30
|
+
* One row's decoder. `subject` names the row in a throw (`platform request row "01J…"`),
|
|
31
|
+
* `contract` the shape it could not be read as. Every field is decoded before `finish`
|
|
32
|
+
* reads the lists, so a message names every column that failed — not whichever one
|
|
33
|
+
* happened to be reached first.
|
|
34
|
+
*/
|
|
35
|
+
export function rowDecoder(subject, contract) {
|
|
36
|
+
const undecoded = [];
|
|
37
|
+
const unreadable = [];
|
|
38
|
+
const failed = new Set();
|
|
39
|
+
return {
|
|
40
|
+
failed,
|
|
41
|
+
required(column, field, stored) {
|
|
42
|
+
const r = field.safeParse(stored);
|
|
43
|
+
if (r.success)
|
|
44
|
+
return r.data;
|
|
45
|
+
unreadable.push(issueOf(column, r.error));
|
|
46
|
+
failed.add(column);
|
|
47
|
+
return undefined;
|
|
48
|
+
},
|
|
49
|
+
nullable(column, field, stored) {
|
|
50
|
+
const r = field.safeParse(stored);
|
|
51
|
+
if (r.success)
|
|
52
|
+
return r.data;
|
|
53
|
+
undecoded.push(issueOf(column, r.error));
|
|
54
|
+
failed.add(column);
|
|
55
|
+
return null;
|
|
56
|
+
},
|
|
57
|
+
marked(column, field, stored, marker) {
|
|
58
|
+
const r = field.safeParse(stored);
|
|
59
|
+
if (r.success)
|
|
60
|
+
return r.data;
|
|
61
|
+
const quoted = JSON.stringify(stored) ?? String(stored);
|
|
62
|
+
undecoded.push(`${issueOf(column, r.error)} (stored ${quoted.length > QUOTED_MAX ? `${quoted.slice(0, QUOTED_MAX)}…` : quoted})`);
|
|
63
|
+
failed.add(column);
|
|
64
|
+
return marker;
|
|
65
|
+
},
|
|
66
|
+
json(column, field, stored, empty) {
|
|
67
|
+
let value = null;
|
|
68
|
+
if (stored !== null) {
|
|
69
|
+
try {
|
|
70
|
+
value = JSON.parse(stored);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
undecoded.push(`${column}: ${NOT_JSON}`);
|
|
74
|
+
failed.add(column);
|
|
75
|
+
return empty;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const r = field.safeParse(value);
|
|
79
|
+
if (r.success)
|
|
80
|
+
return r.data;
|
|
81
|
+
undecoded.push(issueOf(column, r.error));
|
|
82
|
+
failed.add(column);
|
|
83
|
+
return empty;
|
|
84
|
+
},
|
|
85
|
+
finish(decoded) {
|
|
86
|
+
if (unreadable.length) {
|
|
87
|
+
throw new Error(`${subject} cannot be read as a ${contract} — ${[...unreadable, ...undecoded].join('; ')}`);
|
|
88
|
+
}
|
|
89
|
+
return undecoded.length ? { ...decoded, decodeError: undecoded.join('; ') } : decoded;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=row-decode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-decode.js","sourceRoot":"","sources":["../src/row-decode.ts"],"names":[],"mappings":"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"}
|
package/dist/scope-host.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { AdminAction, ListPage, Connection, ConnectionFilter, ConnectionId, ConnectionGrant, ConnectionGrantRecord, ConnectionSecret, CreateConnectionInput, OpenConnection, ProjectedConnectionGrant, ProjectedConnectionKey, AccessLogEntry, DelegatedReadRecord, BindHostnameInput, AdminLogEntry, OpsFailureEntry, SweepRunEntry, SweepRunKind, SweepRunOutcome, ModelUsageEntry, ModelUsageSummary, CapabilityGrant, CreateTenantInput, Decision, Instant, DomainEvent, DomainEventInput, PlatformRequestInput, PlatformRequestId, PlatformRequest, PlatformRequestFilter, PlatformRequestStatus, PlatformRequestFailure, EntitlementGrant, EntitlementGrantInput, EntitlementView, MeterReading, EntityRef, IdentityLink, IdentityPool, Jurisdiction, ModuleId, ModuleManifest, ScheduleSpec, SystemGrant, CreateOrgInput, Node, Org, OrgId, OrgMembership, PermissionKey, PlatformActorId, ChannelName, ChannelHistoryEntry, DnsRecord, HostnameBinding, HostnameStatus, PromotionAcknowledgement, PublishVersionInput, RegisterVerticalInput, VerticalServingState, RouteTarget, DirectoryDump, IdentityMembership, PrincipalId, ResolvedIdentity, RoleAssignment, RoleDefinition, QueryScopeInput, ReadScopeTableInput, Scope, ScopeDump, SubjectShredReceipt, ScopeQueryResult, ScopeId, ScopeStatus, ScopeTable, DenialFilter, DenialSummary, PermissionDenial, Coverage, BeginImpersonationInput, ImpersonationFilter, ImpersonationSession, ImpersonationSessionId, ScopeTablePage, StorageShape, Tenant, TenantId, TenantRole, TenantStoreHandle, AttachmentRecord, BlobStoreHandle, Visibility, Vertical, VerticalChannel, VerticalVersion, TenantStatus, Page, CountedPage, FreshnessSpec,
|
|
1
|
+
import type { AdminAction, BecomeCapabilityInput, CapabilityExchange, CapabilityId, MintedCapability, ListPage, Connection, ConnectionFilter, ConnectionId, ConnectionGrant, ConnectionGrantRecord, ConnectionSecret, CreateConnectionInput, OpenConnection, ProjectedConnectionGrant, ProjectedConnectionKey, AccessLogEntry, DelegatedReadRecord, BindHostnameInput, AdminLogEntry, OpsFailureEntry, SweepRunEntry, SweepRunKind, SweepRunOutcome, ModelUsageEntry, ModelUsageSummary, CapabilityGrant, CreateTenantInput, Decision, Instant, DomainEvent, DomainEventInput, PlatformRequestInput, PlatformRequestId, PlatformRequest, PlatformRequestFilter, PlatformRequestStatus, PlatformRequestFailure, EntitlementGrant, EntitlementGrantInput, EntitlementView, MeterReading, EntityRef, IdentityLink, IdentityPool, Jurisdiction, ModuleId, ModuleManifest, ScheduleSpec, SystemGrant, SystemSwitch, SystemSwitchResult, CreateOrgInput, Node, Org, OrgId, OrgMembership, PermissionKey, PlatformActorId, ChannelName, ChannelHistoryEntry, DnsRecord, HostnameBinding, HostnameStatus, PromotionAcknowledgement, PublishVersionInput, RegisterVerticalInput, VerticalServingState, RouteTarget, DirectoryDump, IdentityMembership, PrincipalId, ResolvedIdentity, RoleAssignment, RoleDefinition, QueryScopeInput, ReadScopeTableInput, Scope, ScopeDump, SubjectShredReceipt, ScopeQueryResult, ScopeId, ScopeStatus, ScopeTable, DenialFilter, DenialSummary, PermissionDenial, Coverage, BeginImpersonationInput, ImpersonationFilter, ImpersonationSession, ImpersonationSessionId, ScopeTablePage, StorageShape, Tenant, TenantId, TenantRole, TenantStoreHandle, AttachmentRecord, BlobStoreHandle, Visibility, Vertical, VerticalChannel, VerticalVersion, TenantStatus, Page, CountedPage, FreshnessSpec, EntityHistoryInput, EventFacetInput, EventCauseInput, EventEffectsInput, EffectsTree, InvocationEventsInput, InvocationEvents, DeadLettersInput, DeadLetter, CauseChain, EventFacetResult, HistoryEntry, ErrorCode, PlatformRequestFailureOrigin, IssueEntry, IssueStatus, IssueStatusInput } from '@substrat-run/contracts';
|
|
2
|
+
import type { CapabilityVerbs } from './capability.js';
|
|
2
3
|
import type { ModelUsageFilter, ModelUsageInput, ModelUsageWindow } from './model-usage.js';
|
|
3
4
|
import type { SealedSecret } from './secret-box.js';
|
|
4
5
|
import type { SearchHit, SearchOptions } from './search-index.js';
|
|
5
6
|
import type { EntityVersion } from './entity-version.js';
|
|
7
|
+
import type { UndrainedEvents } from './outbox-event.js';
|
|
6
8
|
import type { JobDriveReport, JobHandler, JobRun, JobRunFilter, StartJobRunInput } from './job-run.js';
|
|
7
9
|
/**
|
|
8
10
|
* What a caller asks a paged read for (#811).
|
|
@@ -153,7 +155,11 @@ export interface OperationContext {
|
|
|
153
155
|
* one to an untrusted caller does its own `assertAllowed` first.
|
|
154
156
|
*/
|
|
155
157
|
versionOf(entity: EntityRef): EntityVersion | null;
|
|
156
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Node-level check; pass `entity` for per-entity checks (portal access, §4.2 rule 3).
|
|
160
|
+
* A `permission` that is not a key (a cast past the brand) throws `internal` rather
|
|
161
|
+
* than returning a denial, and records none (#1642, `assertPermissionKey`).
|
|
162
|
+
*/
|
|
157
163
|
check(permission: PermissionKey, entity?: EntityRef): Promise<Decision>;
|
|
158
164
|
/**
|
|
159
165
|
* Find entities of one type by what a person typed (#827) — the read a picker
|
|
@@ -327,6 +333,41 @@ export interface OperationContext {
|
|
|
327
333
|
* permission problem.
|
|
328
334
|
*/
|
|
329
335
|
canAssign(roleKey: string): Promise<Coverage>;
|
|
336
|
+
/**
|
|
337
|
+
* Capabilities (#1672) — authority carried by a SECRET rather than held by a principal:
|
|
338
|
+
* "anyone with this link may read this folder until Friday".
|
|
339
|
+
*
|
|
340
|
+
* `mint` narrows authority the CALLER holds onto one entity (and what lies beneath it
|
|
341
|
+
* through declared parent edges), specific keys, an optional operation allowlist, an
|
|
342
|
+
* optional expiry and use limit, and returns the secret once. Whoever later exchanges
|
|
343
|
+
* that secret (`ScopeHost.exchangeCapability`) acts as `{ capability: <id> }` — resolved
|
|
344
|
+
* by the checker against the capability's own row, stamped on every event it emits,
|
|
345
|
+
* refused into the denial log like any other actor.
|
|
346
|
+
*
|
|
347
|
+
* Non-escalating on EVERY use, not only at mint: each key is re-checked here on the
|
|
348
|
+
* entity with this operation's own check (`ctx.grant`'s predicate), and the checker
|
|
349
|
+
* re-checks the minter every time the capability acts — so revoking the minter's access
|
|
350
|
+
* ends what their links can do. Only a principal may mint or revoke; a capability,
|
|
351
|
+
* connection or schedule cannot delegate.
|
|
352
|
+
*
|
|
353
|
+
* ```ts
|
|
354
|
+
* assertAllowed(await ctx.check('folder:share', folderRef));
|
|
355
|
+
* const { secret } = await ctx.capabilities.mint({
|
|
356
|
+
* entity: folderRef,
|
|
357
|
+
* permissions: ['folder:read'],
|
|
358
|
+
* expiresAt: input.expiresAt,
|
|
359
|
+
* });
|
|
360
|
+
* return { link: `${origin}/#share=${secret}` }; // a FRAGMENT: never sent to a server
|
|
361
|
+
* ```
|
|
362
|
+
*
|
|
363
|
+
* The kernel stores only the secret's hash, and an idempotency recording withholds the
|
|
364
|
+
* secret. Beyond that, a TRIPWIRE: while this invocation runs, `ctx.emit`,
|
|
365
|
+
* `ctx.requestPlatform` and `ctx.sql` refuse any record that carries the secret verbatim,
|
|
366
|
+
* which catches a module persisting it by accident. It is not a boundary against a module
|
|
367
|
+
* that means to leak it (`assertNoSecret` says why). Transactional with the operation,
|
|
368
|
+
* like `ctx.grant`.
|
|
369
|
+
*/
|
|
370
|
+
readonly capabilities: CapabilityVerbs;
|
|
330
371
|
/**
|
|
331
372
|
* Run `fn` as a SUB-TRANSACTION of this operation (#770,
|
|
332
373
|
* docs/architecture/sub-transactions.md) — the boundary that makes catching an
|
|
@@ -633,11 +674,23 @@ export interface FreshnessReport {
|
|
|
633
674
|
* What `runDueSchedules` did for one scope in one pass (#383). A schedule inside its
|
|
634
675
|
* cadence window is `skipped`; a due one is `fired` (its operation ran) or `failed`
|
|
635
676
|
* (the operation threw — recorded, never allowed to stop the others).
|
|
677
|
+
*
|
|
678
|
+
* A module switched off on the scope (#1666, `revokeFromSystem`) reports every schedule
|
|
679
|
+
* `skipped` with `switchedOff: true`, due or not: nothing ran, and that was decided, so
|
|
680
|
+
* it is neither a failure nor an absence. `skipped` rather than a new outcome because
|
|
681
|
+
* the durable sweep record parses outcomes on the platform side, and a vertical newer
|
|
682
|
+
* than its control plane must not emit a value that refuses the whole batch.
|
|
636
683
|
*/
|
|
637
684
|
export interface ScheduleRunReport {
|
|
638
685
|
fired: number;
|
|
639
686
|
skipped: number;
|
|
640
687
|
failed: number;
|
|
688
|
+
/**
|
|
689
|
+
* The module is switched off on this scope (#1666) — every `skipped` above is that,
|
|
690
|
+
* not a cadence window. Optional and absent otherwise, so a stored or pre-widening
|
|
691
|
+
* report stays valid.
|
|
692
|
+
*/
|
|
693
|
+
switchedOff?: true;
|
|
641
694
|
/** Per-schedule failures on this scope: the operation name and the error. */
|
|
642
695
|
errors: {
|
|
643
696
|
operation: string;
|
|
@@ -1233,10 +1286,75 @@ export interface HostAdmin {
|
|
|
1233
1286
|
* reason: one grant mechanism, tuples tombstoned on revoke (K-21), visible to the
|
|
1234
1287
|
* permission diff. It is what makes `ctx.check` resolve for a schedule — the gate
|
|
1235
1288
|
* stays `ctx.check`, not a bypass. Projected at scope provisioning from the
|
|
1236
|
-
* module's declared `schedules[].permissions
|
|
1237
|
-
*
|
|
1289
|
+
* module's declared `schedules[].permissions`.
|
|
1290
|
+
*
|
|
1291
|
+
* **Refused while the module's schedule kill switch is off on that scope** (#1666),
|
|
1292
|
+
* with `conflict`: restore is the lever; a grant is not. A grant that went through would
|
|
1293
|
+
* hand the module's system authority back to a job run or a `getSystemScope` invoke
|
|
1294
|
+
* while its schedules stayed off. Only `restoreToSystem` turns the switch back on.
|
|
1295
|
+
* (A TENANT-level grant — `node.scopeId` null — is not checked: the switch lives in each
|
|
1296
|
+
* scope's storage and the directory cannot see it. Nothing in the platform writes one.)
|
|
1238
1297
|
*/
|
|
1239
1298
|
grantToSystem(actor: PlatformActorId, grant: SystemGrant): Promise<void>;
|
|
1299
|
+
/**
|
|
1300
|
+
* The schedule kill switch (#1666): turn ONE module's scheduled work off on ONE scope.
|
|
1301
|
+
*
|
|
1302
|
+
* Module-wide on the scope, by design — see `systemSwitch` for why a per-permission or
|
|
1303
|
+
* per-schedule switch is either inexpressible or noisy. It tombstones every live
|
|
1304
|
+
* `system:<module>` grant the scope holds (K-21) and makes the scope's OFF marker live
|
|
1305
|
+
* (`system-switch.ts`). While it is off:
|
|
1306
|
+
*
|
|
1307
|
+
* - `runDueSchedules` fires nothing for the module and reports each schedule `skipped`
|
|
1308
|
+
* with `switchedOff: true` — never `failed`, so a switched-off scope makes no noise,
|
|
1309
|
+
* and its cadence clock is untouched, so a due schedule fires on the first pass after
|
|
1310
|
+
* `restoreToSystem`;
|
|
1311
|
+
* - anything acting with the module's system authority is denied by its own
|
|
1312
|
+
* `ctx.check` — a resumable job run (#1577) fails its step, a `getSystemScope` invoke
|
|
1313
|
+
* is refused;
|
|
1314
|
+
* - and nothing can hand that authority back: `grantToSystem` refuses, and a reconcile
|
|
1315
|
+
* seats no `system:` grant for the module, not even one a newer version declares.
|
|
1316
|
+
* `restoreToSystem` is the only way back.
|
|
1317
|
+
*
|
|
1318
|
+
* **Audited first, on every attempt**: an intent row (with the `reason`) before anything
|
|
1319
|
+
* moves, then an outcome row (`applied`, `refused`, or `failed`), paired by the
|
|
1320
|
+
* `operationId` the call answers with. A repeat — including the retry after a crash
|
|
1321
|
+
* between the move and its outcome row — answers `changed: false` and is audited all the
|
|
1322
|
+
* same. The scope's storage and the admin log are separate stores, so the pair is not
|
|
1323
|
+
* atomic: this order fails toward "an intent with no outcome", never toward "a switch
|
|
1324
|
+
* that moved with no row".
|
|
1325
|
+
*
|
|
1326
|
+
* Throws `not_found` when the scope holds no `system:<module>` grant at all — a typo in
|
|
1327
|
+
* an emergency must not answer "done". On a host that delegates to the deployment
|
|
1328
|
+
* serving the scope, the write happens THERE and the audit rows HERE.
|
|
1329
|
+
*/
|
|
1330
|
+
revokeFromSystem(actor: PlatformActorId, input: SystemSwitch): Promise<SystemSwitchResult>;
|
|
1331
|
+
/**
|
|
1332
|
+
* The inverse of `revokeFromSystem` (#1666), and the ONLY way to turn a switched-off
|
|
1333
|
+
* module's schedules back on: tombstones the OFF marker and restores exactly the grants
|
|
1334
|
+
* the OFF took — a grant revoked independently before the switch was pulled stays
|
|
1335
|
+
* revoked, so ON never widens the system principal. Same shape, same `reason`, same
|
|
1336
|
+
* audit-first rows, same idempotence and `not_found`.
|
|
1337
|
+
*/
|
|
1338
|
+
restoreToSystem(actor: PlatformActorId, input: SystemSwitch): Promise<SystemSwitchResult>;
|
|
1339
|
+
/**
|
|
1340
|
+
* Mint a `become` capability on a scope (#1672): whoever exchanges its secret yields
|
|
1341
|
+
* `input.principal` rather than a session — the shape an owner claim link and a member
|
|
1342
|
+
* invite are, so both can move onto this primitive later. The secret is returned once;
|
|
1343
|
+
* the scope keeps its hash. Expiry and a use limit are required.
|
|
1344
|
+
*
|
|
1345
|
+
* Platform-only in this first cut, deliberately: `become` is impersonation by another
|
|
1346
|
+
* name, and the bound on who may mint one from module code is designed with the claim
|
|
1347
|
+
* and invite migrations. Audited in the admin log (never the secret, never its hash).
|
|
1348
|
+
* Refuses an unknown or inactive scope, as `getScope` does.
|
|
1349
|
+
*/
|
|
1350
|
+
mintCapability(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, input: BecomeCapabilityInput): Promise<MintedCapability>;
|
|
1351
|
+
/**
|
|
1352
|
+
* Revoke any capability on a scope (#1672) — the operator's lever for a leaked link, and
|
|
1353
|
+
* how a re-minted claim link retires the last one. Takes effect on the next check, for
|
|
1354
|
+
* every session it handed out. Idempotent; `not_found` for a capability the scope does
|
|
1355
|
+
* not hold. Audited in the admin log.
|
|
1356
|
+
*/
|
|
1357
|
+
revokeCapability(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, capabilityId: CapabilityId): Promise<void>;
|
|
1240
1358
|
grantToOrg(actor: PlatformActorId, orgId: OrgId, permission: PermissionKey, node: Node, entity?: EntityRef): Promise<void>;
|
|
1241
1359
|
addMember(actor: PlatformActorId, tenantId: TenantId, principal: PrincipalId, orgId: OrgId): Promise<void>;
|
|
1242
1360
|
/**
|
|
@@ -1490,6 +1608,15 @@ export interface HostAdmin {
|
|
|
1490
1608
|
takenAt: string;
|
|
1491
1609
|
pending: string[];
|
|
1492
1610
|
}[]>;
|
|
1611
|
+
/**
|
|
1612
|
+
* The size in bytes of a CO-LOCATED scope's database (#1524): `SqlStorage.databaseSize`
|
|
1613
|
+
* on a Durable Object, `page_count × page_size` on SQLite. It covers the scope database
|
|
1614
|
+
* only. Attachment blobs, per-tenant D1 stores and the lake are elsewhere and are not
|
|
1615
|
+
* counted. It wakes the scope, so the one caller is an on-demand storage reading, never
|
|
1616
|
+
* a sweep. For a dispatch vertical the route reads it through the vertical's
|
|
1617
|
+
* `/internal/database-size` instead, and this is the co-located fallback. Access-logged.
|
|
1618
|
+
*/
|
|
1619
|
+
scopeDatabaseSize(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId): Promise<number>;
|
|
1493
1620
|
/**
|
|
1494
1621
|
* #286's backout: PITR-rewind a scope to a pre-migration bookmark — schema AND
|
|
1495
1622
|
* data, discarding every write since. Audited (destructive by design). The scope
|
|
@@ -1665,8 +1792,14 @@ export interface HostAdmin {
|
|
|
1665
1792
|
* repeat is harmless — the lake is keyed by event id and every consumer in this
|
|
1666
1793
|
* platform is already required-idempotent. At-least-once is the only one of the
|
|
1667
1794
|
* two that cannot silently lose exact history, which is the point of the tier.
|
|
1795
|
+
*
|
|
1796
|
+
* A row that does not decode is SKIPPED (#1636): never returned, so no sink receives an
|
|
1797
|
+
* event built from stand-ins, and never stamped, so the stamp stays exact. The read steps
|
|
1798
|
+
* past it so the rows behind it still ship, and says what it stepped over in the answer's
|
|
1799
|
+
* optional `skipped` — absent on a clean read, so every caller that reads an array reads
|
|
1800
|
+
* the one it always did. See `readUndrainedOutbox` for the bound, and for the cost.
|
|
1668
1801
|
*/
|
|
1669
|
-
readUndrainedEvents(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, limit?: number): Promise<
|
|
1802
|
+
readUndrainedEvents(actor: PlatformActorId, tenantId: TenantId, scopeId: ScopeId, limit?: number): Promise<UndrainedEvents>;
|
|
1670
1803
|
/**
|
|
1671
1804
|
* Stamp `drained_at` on events the sink accepted (#1334). Idempotent: marking a
|
|
1672
1805
|
* row already marked changes nothing, so a retry after a partial ship is safe.
|
|
@@ -2651,6 +2784,36 @@ export declare const OPS_FAILURE_RETENTION_DAYS = 90;
|
|
|
2651
2784
|
* for the same reason: the table stays bounded even where no scheduled pass runs.
|
|
2652
2785
|
*/
|
|
2653
2786
|
export declare const SWEEP_RUN_RETENTION_DAYS = 14;
|
|
2787
|
+
/**
|
|
2788
|
+
* The drained batch's dedupe key on the directory's `_substrat_sweep_runs` (#1232), as
|
|
2789
|
+
* both adapters build it: `recordSweepRun` is an `INSERT OR IGNORE` against this index,
|
|
2790
|
+
* which is what makes a replayed drain write nothing twice.
|
|
2791
|
+
*
|
|
2792
|
+
* `kind` is in it since #1572, and that is the fix rather than a tidy-up. Every entry of
|
|
2793
|
+
* one drained batch shares its `request_id`, and `unit` is built from two namespaces that
|
|
2794
|
+
* nothing keeps apart — `<scopeId>:<operation>` for a schedule, `<scopeId>:<eventType>`
|
|
2795
|
+
* for a freshness verdict — while `scheduleSpec.operation` is `z.string().min(1)`. A
|
|
2796
|
+
* schedule named exactly like an event type its scope expects freshness on collided on
|
|
2797
|
+
* `(request_id, unit)`, and the ignore-on-conflict write discarded the second row with no
|
|
2798
|
+
* error anywhere. Both rows are signals by their absence (a stopped evaluator, a missed
|
|
2799
|
+
* run), so losing one read as the very thing it was meant to rule out. It is #1288's
|
|
2800
|
+
* collision, in the record table beside the state table.
|
|
2801
|
+
*
|
|
2802
|
+
* Shared rather than spelled in each adapter because a directory that predates it
|
|
2803
|
+
* re-creates it (`ensureSweepRunsIntentKind`, in both), and `lint:spine-ddl` sees only
|
|
2804
|
+
* the created copy. One definition keeps the re-created shape and the created shape the
|
|
2805
|
+
* same shape; the gate then holds each adapter's DDL to including it.
|
|
2806
|
+
*/
|
|
2807
|
+
export declare const SWEEP_RUNS_INTENT_INDEX = "CREATE UNIQUE INDEX IF NOT EXISTS _substrat_sweep_runs_intent ON _substrat_sweep_runs (request_id, kind, unit);";
|
|
2808
|
+
/**
|
|
2809
|
+
* Whether a directory's `_substrat_sweep_runs_intent` already has `kind` among its
|
|
2810
|
+
* columns, read off the index's `sql` in `sqlite_master` — which DO SQLite serves and
|
|
2811
|
+
* `PRAGMA` does not, so both adapters detect by one strategy. `false` means the index
|
|
2812
|
+
* must be DROPPED and created again: `CREATE … IF NOT EXISTS` matches on the name alone,
|
|
2813
|
+
* so on every existing directory the old `(request_id, unit)` index would otherwise
|
|
2814
|
+
* stand for good, while a fresh one — and any test that starts from one — gets the new.
|
|
2815
|
+
*/
|
|
2816
|
+
export declare function sweepRunsIntentHasKind(indexSql: string): boolean;
|
|
2654
2817
|
/**
|
|
2655
2818
|
* How long an issue row outlives its last occurrence (#1233). Deliberately longer
|
|
2656
2819
|
* than the 90-day evidence beneath it: an issue is the compressed memory of a
|
|
@@ -2691,10 +2854,12 @@ export interface SweepRunInput {
|
|
|
2691
2854
|
at?: string | null;
|
|
2692
2855
|
/**
|
|
2693
2856
|
* The platform-intent id a drained batch arrived under — the dedupe key. The
|
|
2694
|
-
* adapters enforce UNIQUE (requestId, unit) with an ignore-on-conflict
|
|
2695
|
-
* so a replayed drain (a settle that failed in
|
|
2696
|
-
* re-run) writes nothing twice
|
|
2697
|
-
*
|
|
2857
|
+
* adapters enforce UNIQUE (requestId, kind, unit) with an ignore-on-conflict
|
|
2858
|
+
* write (`SWEEP_RUNS_INTENT_INDEX`), so a replayed drain (a settle that failed in
|
|
2859
|
+
* transport, a partial batch re-run) writes nothing twice — while a schedule and
|
|
2860
|
+
* a freshness entry of one batch that derive the same unit are two rows (#1572).
|
|
2861
|
+
* Unset (the direct sweep path) dedupes nothing: NULLs are distinct under the
|
|
2862
|
+
* unique index, exactly as intended.
|
|
2698
2863
|
*/
|
|
2699
2864
|
requestId?: string | null;
|
|
2700
2865
|
}
|
|
@@ -3062,6 +3227,43 @@ export interface ScopeHost {
|
|
|
3062
3227
|
* so the type holds, but it is **not a person**.
|
|
3063
3228
|
*/
|
|
3064
3229
|
getSystemScope(moduleId: ModuleId, tenantId: TenantId, scopeId: ScopeId): Promise<ScopeStub>;
|
|
3230
|
+
/**
|
|
3231
|
+
* Trade a capability's SECRET for what it grants (#1672) — one counted use.
|
|
3232
|
+
*
|
|
3233
|
+
* `act`: a session token to present to `getCapabilityScope`, valid until the earlier of
|
|
3234
|
+
* `CAPABILITY_SESSION_TTL_MS` and the capability's own expiry. The harness sets it as an
|
|
3235
|
+
* HttpOnly cookie, so the secret itself is presented exactly once and never lives in
|
|
3236
|
+
* browser history or a `Referer` (`@substrat-run/vertical-host`'s
|
|
3237
|
+
* `mountCapabilityExchange`). `become`: the principal the holder becomes, for the
|
|
3238
|
+
* harness's identity directory to bind.
|
|
3239
|
+
*
|
|
3240
|
+
* `null` for an unknown, expired, revoked or used-up secret — one answer, so a probe
|
|
3241
|
+
* learns nothing. The use is atomic: a single-use secret exchanged twice at once admits
|
|
3242
|
+
* one. The exchange is on the spine as `capability.exercised`, actor `{ capability }`.
|
|
3243
|
+
* Same fail-closed (tenant, scope) and lifecycle gate as `getScope`.
|
|
3244
|
+
*
|
|
3245
|
+
* `options.mode` names the only kind the caller can handle; a secret of the other kind
|
|
3246
|
+
* answers `null` WITHOUT taking a use — so a claim link pasted into a share-link route is
|
|
3247
|
+
* refused rather than spent.
|
|
3248
|
+
*/
|
|
3249
|
+
exchangeCapability(tenantId: TenantId, scopeId: ScopeId, secret: string, options?: {
|
|
3250
|
+
mode?: 'act' | 'become';
|
|
3251
|
+
}): Promise<CapabilityExchange | null>;
|
|
3252
|
+
/**
|
|
3253
|
+
* A scope stub whose authority is a CAPABILITY (#1672) — the fifth door, beside the
|
|
3254
|
+
* principal, connection, system and impersonation ones, and a door rather than a flag for
|
|
3255
|
+
* the reason each of those is: what differs is the authority.
|
|
3256
|
+
*
|
|
3257
|
+
* The session is re-resolved on EVERY invoke, inside the operation's transaction: a
|
|
3258
|
+
* revoked or expired capability, or an expired session, is refused `unauthenticated`
|
|
3259
|
+
* before the handler runs, and an operation outside the capability's allowlist is
|
|
3260
|
+
* refused `forbidden`. Neither is a K-35 denial — no key was checked. Inside, the
|
|
3261
|
+
* operation is ordinary: `ctx.check` resolves the capability's grant (its entity subtree,
|
|
3262
|
+
* its keys, its minter's authority now), refusals ARE recorded with actor
|
|
3263
|
+
* `{ capability }`, and so is every event it emits. `ctx.principal` carries the
|
|
3264
|
+
* capability id so the type holds; it is **not a person**.
|
|
3265
|
+
*/
|
|
3266
|
+
getCapabilityScope(sessionToken: string, tenantId: TenantId, scopeId: ScopeId, options?: ScopeStubOptions): Promise<ScopeStub>;
|
|
3065
3267
|
/**
|
|
3066
3268
|
* The recurring-work declarations of every module registered on this host (#383)
|
|
3067
3269
|
* — each module's id, the vertical it belongs to, and its `schedules`. Sync like
|