@substrat-run/control-plane-api 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/api.d.ts +69 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +986 -383
- package/dist/api.js.map +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/deploy.d.ts +46 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +53 -1
- package/dist/deploy.js.map +1 -1
- package/dist/errors.d.ts +19 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -4
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lake-gateway.d.ts +54 -0
- package/dist/lake-gateway.d.ts.map +1 -0
- package/dist/lake-gateway.js +158 -0
- package/dist/lake-gateway.js.map +1 -0
- package/dist/platform-entry.d.ts +23 -1
- package/dist/platform-entry.d.ts.map +1 -1
- package/dist/platform-entry.generated.d.ts +9 -1
- package/dist/platform-entry.generated.d.ts.map +1 -1
- package/dist/platform-entry.generated.js +10 -2
- package/dist/platform-entry.generated.js.map +1 -1
- package/dist/platform-entry.js +31 -1
- package/dist/platform-entry.js.map +1 -1
- package/dist/platform-scope-stores.d.ts +151 -0
- package/dist/platform-scope-stores.d.ts.map +1 -0
- package/dist/platform-scope-stores.js +241 -0
- package/dist/platform-scope-stores.js.map +1 -0
- package/dist/r2-sql-engine.d.ts +50 -0
- package/dist/r2-sql-engine.d.ts.map +1 -0
- package/dist/r2-sql-engine.js +126 -0
- package/dist/r2-sql-engine.js.map +1 -0
- package/dist/scope-copy-cleanup.d.ts +12 -0
- package/dist/scope-copy-cleanup.d.ts.map +1 -1
- package/dist/scope-copy-cleanup.js +14 -3
- package/dist/scope-copy-cleanup.js.map +1 -1
- package/dist/staff-client.d.ts +9 -1
- package/dist/staff-client.d.ts.map +1 -1
- package/dist/staff-client.js.map +1 -1
- package/dist/store-entry.d.ts +90 -0
- package/dist/store-entry.d.ts.map +1 -0
- package/dist/store-entry.generated.d.ts +60 -0
- package/dist/store-entry.generated.d.ts.map +1 -0
- package/dist/store-entry.generated.js +62 -0
- package/dist/store-entry.generated.js.map +1 -0
- package/dist/store-entry.js +178 -0
- package/dist/store-entry.js.map +1 -0
- package/dist/store-releases.d.ts +147 -0
- package/dist/store-releases.d.ts.map +1 -0
- package/dist/store-releases.js +298 -0
- package/dist/store-releases.js.map +1 -0
- package/dist/store-script.d.ts +80 -0
- package/dist/store-script.d.ts.map +1 -0
- package/dist/store-script.js +173 -0
- package/dist/store-script.js.map +1 -0
- package/dist/vertical-client.d.ts +19 -2
- package/dist/vertical-client.d.ts.map +1 -1
- package/dist/vertical-client.js +10 -1
- package/dist/vertical-client.js.map +1 -1
- package/dist/wfp.js +1 -1
- package/dist/wfp.js.map +1 -1
- package/package.json +7 -6
package/dist/api.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import type { ConnectionScopeBinding, ConnectionScopeBindingInput } from '@substrat-run/control-plane-client';
|
|
1
2
|
import { Hono } from 'hono';
|
|
2
|
-
import { type ConnectionCertificate, z } from '@substrat-run/contracts';
|
|
3
|
+
import { type ConnectionCertificate, z, type ScopeStoreNeed, type StoreKindRegistration } from '@substrat-run/contracts';
|
|
3
4
|
import type { Connection, ConnectionActivity, ConnectionActivitySource, ConnectionCredential, ConnectionProbe, PlatformActorId } from '@substrat-run/contracts';
|
|
4
5
|
import type { CrossVerticalOptions, HostAdmin, ScopeHost } from '@substrat-run/kernel';
|
|
5
6
|
import type { PlatformActorAuth, BuilderAuth, Principal, TenantServiceAuth } from './auth.js';
|
|
6
7
|
import { type VerticalClient } from './vertical-client.js';
|
|
8
|
+
import type { PlatformScopeStores } from './platform-scope-stores.js';
|
|
9
|
+
import type { ScopeStoreEnsurerOptions } from './store-script.js';
|
|
10
|
+
import { type CanaryCall, type StoreReleaseBytes } from './store-releases.js';
|
|
7
11
|
import { type ConnectionCandidatePrepare } from './connection-relay.js';
|
|
8
12
|
import type { DeployVerticalFn, FetchVerticalAssetFn, FetchVerticalModulesFn } from './deploy.js';
|
|
9
13
|
import type { PatchScriptBindingsFn } from './wfp.js';
|
|
@@ -11,6 +15,7 @@ import { type ObservabilityReader } from './observability.js';
|
|
|
11
15
|
import type { PlatformRuntime } from './platform-runtime.js';
|
|
12
16
|
import { type DoNamespaceReader } from './do-namespaces.js';
|
|
13
17
|
import type { DirectoryBackupStore, ScopeBackupStore } from './backups.js';
|
|
18
|
+
import { type LakeQueryEngine } from './lake-gateway.js';
|
|
14
19
|
import { type CustomHostnameProvisioner } from './custom-hostnames.js';
|
|
15
20
|
/**
|
|
16
21
|
* What one provider can answer about a live connection (#605) — the seam behind
|
|
@@ -24,6 +29,13 @@ import { type CustomHostnameProvisioner } from './custom-hostnames.js';
|
|
|
24
29
|
* callback capability token), and redaction has to be structural.
|
|
25
30
|
*/
|
|
26
31
|
export interface ConnectionInspector {
|
|
32
|
+
/** Poll-only landing setup. The API checks tenant, vertical and the in-scope grant first. */
|
|
33
|
+
bindScope?: (host: ScopeHost, connection: Connection, target: ConnectionScopeBindingInput & {
|
|
34
|
+
tenantId: string;
|
|
35
|
+
scopeId: string;
|
|
36
|
+
vertical: string;
|
|
37
|
+
}) => Promise<ConnectionScopeBinding>;
|
|
38
|
+
bindings?: (host: ScopeHost, connection: Connection) => Promise<ConnectionScopeBinding[]>;
|
|
27
39
|
probe?: (host: ScopeHost, connection: Connection) => Promise<ConnectionProbe>;
|
|
28
40
|
activity?: (host: ScopeHost, connection: Connection, opts: {
|
|
29
41
|
live: boolean;
|
|
@@ -121,6 +133,18 @@ export interface ControlPlaneApiOptions {
|
|
|
121
133
|
* resolvers, which is only correct before any scope has adopted the serving script.
|
|
122
134
|
*/
|
|
123
135
|
resolveVerticalRef?: (deploymentRef: string) => Promise<VerticalClient | undefined>;
|
|
136
|
+
/**
|
|
137
|
+
* Reserved scope-store operations, signed and sent to the store script (#2207).
|
|
138
|
+
* The vertical is not asked: it holds neither the namespace nor the key.
|
|
139
|
+
* Absent on a co-located host, whose own export and restore already carry the
|
|
140
|
+
* stores. Present on the hosted control plane, which is the only caller.
|
|
141
|
+
*/
|
|
142
|
+
platformScopeStores?: PlatformScopeStores;
|
|
143
|
+
/**
|
|
144
|
+
* The registered scope-store kinds (#2207) this control plane judges a scope's stores against
|
|
145
|
+
* (`mayHoldScopeStores`, #2242). `STORE_KINDS` unless a test registers one.
|
|
146
|
+
*/
|
|
147
|
+
storeKinds?: readonly StoreKindRegistration[];
|
|
124
148
|
/** #1722: how long a copy move owns its ledger entries, and so how long its restore may land
|
|
125
149
|
* (`CopyRestoreFence`). `SCOPE_COPY_LEASE_MS` unless a test needs a lease it can outlive. */
|
|
126
150
|
copyLeaseMs?: number;
|
|
@@ -131,6 +155,44 @@ export interface ControlPlaneApiOptions {
|
|
|
131
155
|
* 501s. See `deploy.ts`.
|
|
132
156
|
*/
|
|
133
157
|
deployVertical?: DeployVerticalFn;
|
|
158
|
+
/**
|
|
159
|
+
* Uploads the store script for each declared scope store before the vertical's own
|
|
160
|
+
* upload (#2210). Absent ⇒ a push that declares a store and has a registered kind is
|
|
161
|
+
* refused, rather than serving a vertical whose store script was never uploaded.
|
|
162
|
+
*/
|
|
163
|
+
ensureScopeStores?: (input: {
|
|
164
|
+
vertical: string;
|
|
165
|
+
stores: readonly ScopeStoreNeed[];
|
|
166
|
+
/** The release a rollout moves the scripts to; a push or serve passes none (#2300). */
|
|
167
|
+
to?: string;
|
|
168
|
+
loadRelease: ScopeStoreEnsurerOptions['loadRelease'];
|
|
169
|
+
}) => Promise<void | {
|
|
170
|
+
uploaded: number;
|
|
171
|
+
}>;
|
|
172
|
+
/**
|
|
173
|
+
* A store kind's release flow (D-63, #2300): where release bytes are kept, how a release is put
|
|
174
|
+
* in the kind's canary script, and how the canary's reserved calls reach it. Absent ⇒ the
|
|
175
|
+
* release routes answer 501, and a push of a declared store finds no release (409).
|
|
176
|
+
*/
|
|
177
|
+
storeReleases?: {
|
|
178
|
+
bytes: StoreReleaseBytes;
|
|
179
|
+
ensureCanary(input: {
|
|
180
|
+
kind: string;
|
|
181
|
+
to: string;
|
|
182
|
+
loadRelease: ScopeStoreEnsurerOptions['loadRelease'];
|
|
183
|
+
}): Promise<{
|
|
184
|
+
scriptName: string;
|
|
185
|
+
}>;
|
|
186
|
+
callCanary: CanaryCall;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* The actor a request's credential names when that credential is a person's staff session,
|
|
190
|
+
* else null (D-63: a release is published by a person). The host passes only the readers of a
|
|
191
|
+
* human sign-in, never a service token's, so the automation token, which resolves to a staff
|
|
192
|
+
* actor too, is refused here. That holds only while the staff roster lists people alone
|
|
193
|
+
* (docs/architecture/control-plane.md §4.4). Absent ⇒ no request publishes a release.
|
|
194
|
+
*/
|
|
195
|
+
humanStaffActor?: (request: Request) => Promise<PlatformActorId | null>;
|
|
134
196
|
/**
|
|
135
197
|
* Reads a script's module contents back from the platform runtime (#286) — the
|
|
136
198
|
* archive script is the bundle store the serving upload reads from. Host-injected
|
|
@@ -227,6 +289,12 @@ export interface ControlPlaneApiOptions {
|
|
|
227
289
|
* means forgetting that costs a feature, never a leak.
|
|
228
290
|
*/
|
|
229
291
|
observability?: ObservabilityReader;
|
|
292
|
+
/**
|
|
293
|
+
* The Tier-2 lake's query engine (#1334), host-injected like `observability` so this
|
|
294
|
+
* package holds no lake credential. Absent ⇒ `GET /tenants/:tenantId/lake/events` 501s.
|
|
295
|
+
* Every read goes through `lake-gateway.ts`, which is what scopes it to one tenant.
|
|
296
|
+
*/
|
|
297
|
+
lakeQuery?: LakeQueryEngine;
|
|
230
298
|
/**
|
|
231
299
|
* Per-provider connection **inspectors** (#605), keyed by provider slug — what makes
|
|
232
300
|
* an integration something an operator can interrogate rather than trust.
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|