@substrat-run/control-plane-api 0.87.0 → 0.89.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.map +1 -1
- package/dist/api.js +76 -3
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +9 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +35 -1
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +2 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +85 -58
- package/dist/errors.js.map +1 -1
- package/dist/vertical-client.d.ts +11 -1
- package/dist/vertical-client.d.ts.map +1 -1
- package/dist/vertical-client.js +34 -0
- package/dist/vertical-client.js.map +1 -1
- package/package.json +6 -6
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EntitlementGrant, EntitlementGrantInput, QueryScopeInput, ReadScopeTableInput, Scope, ScopeId, ScopeQueryResult, ScopeTable, ScopeTablePage, Tenant, TenantId } from '@substrat-run/contracts';
|
|
1
|
+
import type { EntitlementGrant, EntitlementGrantInput, QueryScopeInput, ReadScopeTableInput, Scope, ScopeId, ScopeQueryResult, DenialFilter, DenialSummary, PermissionDenial, ScopeTable, ScopeTablePage, Tenant, TenantId } from '@substrat-run/contracts';
|
|
2
2
|
/**
|
|
3
3
|
* A typed HTTP client for the control-plane API — the vertical side of the
|
|
4
4
|
* connect seam (first-flow.md slice 4).
|
|
@@ -79,6 +79,14 @@ export declare class ControlPlaneClient {
|
|
|
79
79
|
readScopeTable(tenantId: TenantId, scopeId: ScopeId, input: ReadScopeTableInput): Promise<ScopeTablePage>;
|
|
80
80
|
/** One read-only SQL statement against the scope's database — the console (#219). */
|
|
81
81
|
queryScope(tenantId: TenantId, scopeId: ScopeId, input: QueryScopeInput): Promise<ScopeQueryResult>;
|
|
82
|
+
/**
|
|
83
|
+
* The scope's recorded permission refusals, bucketed per (actor, permission) with the
|
|
84
|
+
* window's own facts beside them — the view to open first, because the raw log's
|
|
85
|
+
* volume is attacker-influenceable and a prober can flood a newest-first page.
|
|
86
|
+
*/
|
|
87
|
+
summarizeDenials(tenantId: TenantId, scopeId: ScopeId, filter?: DenialFilter): Promise<DenialSummary>;
|
|
88
|
+
/** The raw rows behind a bucket, newest first. */
|
|
89
|
+
listDenials(tenantId: TenantId, scopeId: ScopeId, filter?: DenialFilter): Promise<PermissionDenial[]>;
|
|
82
90
|
/**
|
|
83
91
|
* The gate. Throws unless the tenant is active AND the scope exists and is
|
|
84
92
|
* active — the same fail-closed logic the kernel's `validateScopeAccess`
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/** Both denial reads take the same filter; one spelling of it, so they cannot drift. */
|
|
2
|
+
function denialQuery(filter) {
|
|
3
|
+
const q = new URLSearchParams();
|
|
4
|
+
if (filter?.actor)
|
|
5
|
+
q.set('actor', filter.actor);
|
|
6
|
+
if (filter?.permission)
|
|
7
|
+
q.set('permission', filter.permission);
|
|
8
|
+
if (filter?.operation)
|
|
9
|
+
q.set('operation', filter.operation);
|
|
10
|
+
if (filter?.since)
|
|
11
|
+
q.set('since', filter.since);
|
|
12
|
+
if (filter?.until)
|
|
13
|
+
q.set('until', filter.until);
|
|
14
|
+
if (filter?.limit)
|
|
15
|
+
q.set('limit', String(filter.limit));
|
|
16
|
+
return q;
|
|
17
|
+
}
|
|
1
18
|
import { DEV_ACTOR_HEADER, SERVICE_TOKEN_HEADER } from './auth.js';
|
|
2
19
|
/** A non-2xx (or unreachable) control-plane response. `status` is 0 on a transport error. */
|
|
3
20
|
export class ControlPlaneError extends Error {
|
|
@@ -43,8 +60,12 @@ export class ControlPlaneClient {
|
|
|
43
60
|
if (res.status === 404 && allow404)
|
|
44
61
|
return undefined;
|
|
45
62
|
if (!res.ok) {
|
|
63
|
+
// `detail` first, `error` second (#113 phase 4): the plane answers RFC 9457
|
|
64
|
+
// problem bodies now, where `detail` is the sentence and `error` is the deprecated
|
|
65
|
+
// duplicate kept for one window. Reading both means this works either way, and
|
|
66
|
+
// keeps working the day the duplicate is deleted.
|
|
46
67
|
const body = (await res.json().catch(() => null));
|
|
47
|
-
throw new ControlPlaneError(res.status, body?.error ?? `${res.status} ${res.statusText}`);
|
|
68
|
+
throw new ControlPlaneError(res.status, body?.detail ?? body?.error ?? `${res.status} ${res.statusText}`);
|
|
48
69
|
}
|
|
49
70
|
return res.status === 204 ? undefined : (await res.json());
|
|
50
71
|
}
|
|
@@ -99,6 +120,19 @@ export class ControlPlaneClient {
|
|
|
99
120
|
body: JSON.stringify(input),
|
|
100
121
|
});
|
|
101
122
|
}
|
|
123
|
+
// -- the denial log (K-35, #867) --------------------------------------------
|
|
124
|
+
/**
|
|
125
|
+
* The scope's recorded permission refusals, bucketed per (actor, permission) with the
|
|
126
|
+
* window's own facts beside them — the view to open first, because the raw log's
|
|
127
|
+
* volume is attacker-influenceable and a prober can flood a newest-first page.
|
|
128
|
+
*/
|
|
129
|
+
summarizeDenials(tenantId, scopeId, filter) {
|
|
130
|
+
return this.call(`/tenants/${tenantId}/scopes/${scopeId}/denials/summary?${denialQuery(filter)}`);
|
|
131
|
+
}
|
|
132
|
+
/** The raw rows behind a bucket, newest first. */
|
|
133
|
+
listDenials(tenantId, scopeId, filter) {
|
|
134
|
+
return this.call(`/tenants/${tenantId}/scopes/${scopeId}/denials?${denialQuery(filter)}`);
|
|
135
|
+
}
|
|
102
136
|
/**
|
|
103
137
|
* The gate. Throws unless the tenant is active AND the scope exists and is
|
|
104
138
|
* active — the same fail-closed logic the kernel's `validateScopeAccess`
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { ContentfulStatusCode } from 'hono/utils/http-status';
|
|
2
|
+
import { type Problem } from '@substrat-run/contracts';
|
|
2
3
|
export interface ApiError {
|
|
3
4
|
status: ContentfulStatusCode;
|
|
4
|
-
body:
|
|
5
|
-
error: string;
|
|
6
|
-
};
|
|
5
|
+
body: Problem;
|
|
7
6
|
}
|
|
8
7
|
export declare function mapError(err: unknown): ApiError;
|
|
9
8
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAOL,KAAK,OAAO,EACb,MAAM,yBAAyB,CAAC;AAuFjC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA0D/C"}
|
package/dist/errors.js
CHANGED
|
@@ -1,52 +1,56 @@
|
|
|
1
|
-
import { errorCodeOf } from '@substrat-run/contracts';
|
|
1
|
+
import { errorCodeOf, PROBLEM_CATALOG, problemForStatus, substratError, toProblem, } from '@substrat-run/contracts';
|
|
2
2
|
import { SecretBoxUnconfiguredError } from '@substrat-run/kernel';
|
|
3
3
|
import { ControlPlaneError } from './client.js';
|
|
4
4
|
import { ConnectionRelayError } from './connection-relay.js';
|
|
5
5
|
/**
|
|
6
|
-
* Map
|
|
6
|
+
* Map a `HostAdmin` throw onto a problem document — #113 phase 4.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* **The code is read first, and the table below is what is left.** A throw that
|
|
9
|
+
* declared what it is (`substratError`, `PermissionDenied`, anything carrying a
|
|
10
|
+
* `Substrat.<code>` name across the RPC hop) is rendered from its own declaration by
|
|
11
|
+
* `toProblem`, extensions and all. Only a throw that declared nothing reaches the
|
|
12
|
+
* patterns, and each pattern that survives is one more `HostAdmin` throw site nobody
|
|
13
|
+
* has typed yet — a to-do list that shortens, rather than a mapping layer that grows.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* turns a contract test red, not just this mapping.
|
|
17
|
-
* - It is still text. The durable fix is typed errors on `HostAdmin` — a tagged
|
|
18
|
-
* union the adapters throw and this reads. That is a kernel change, and it is
|
|
19
|
-
* not worth blocking the transport on.
|
|
15
|
+
* The table names a CODE now, not a status. The status follows from the catalog, so the
|
|
16
|
+
* two can no longer disagree — and the entry says what the failure IS, which is the
|
|
17
|
+
* thing a reviewer can check against the throw site. `409` was never checkable.
|
|
20
18
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
19
|
+
* What has not changed, and should not:
|
|
20
|
+
*
|
|
21
|
+
* - The patterns are less brittle than they look. Every one is a message the CONTRACT
|
|
22
|
+
* SUITE asserts on (`/unknown tenant/`, `/illegal scope transition/`, `/already
|
|
23
|
+
* taken/`, `/not active/`), against both adapters. Changing one turns a contract test
|
|
24
|
+
* red, not just this mapping. Phase 5 migrates those assertions onto codes and this
|
|
25
|
+
* table goes with them.
|
|
26
|
+
* - Anything unmatched is a 500 with a GENERIC body: an unrecognised throw is, by
|
|
27
|
+
* definition, one whose message we have not reviewed for what it discloses, and this
|
|
28
|
+
* surface has cross-tenant reach.
|
|
29
|
+
*
|
|
30
|
+
* **ORDER IS SIGNIFICANT** — first match wins, so every specific pattern must precede
|
|
31
|
+
* the general one it would otherwise be swallowed by. `cannot provision scope under
|
|
32
|
+
* unknown tenant` contains `unknown tenant:`, and listing the general one first turned a
|
|
33
|
+
* precondition conflict into a 404 claiming POST /scopes does not exist. That is the
|
|
34
|
+
* message-matching fragility this file admits to above, caught by the test below rather
|
|
35
|
+
* than by reading.
|
|
32
36
|
*/
|
|
33
|
-
const
|
|
37
|
+
const CODE_PATTERNS = [
|
|
34
38
|
// Well-formed, but conflicts with current state or references something absent.
|
|
35
39
|
// The addressed collection exists; the request cannot be applied to it.
|
|
36
|
-
[/cannot provision scope under unknown tenant/,
|
|
37
|
-
[/already taken/,
|
|
38
|
-
[/illegal scope transition/,
|
|
39
|
-
[/non-active tenant/,
|
|
40
|
-
[/not active \(status:/,
|
|
40
|
+
[/cannot provision scope under unknown tenant/, 'conflict'],
|
|
41
|
+
[/already taken/, 'conflict'],
|
|
42
|
+
[/illegal scope transition/, 'conflict'],
|
|
43
|
+
[/non-active tenant/, 'conflict'],
|
|
44
|
+
[/not active \(status:/, 'conflict'],
|
|
41
45
|
// Registry (#31): well-formed, but conflicts with a version's admission state or
|
|
42
46
|
// ownership, or needs an unacknowledged change acknowledged (the two checkpoints).
|
|
43
|
-
[/is already registered/,
|
|
47
|
+
[/is already registered/, 'conflict'],
|
|
44
48
|
// claim-on-first-push (builder-plane.md): a slug's owner is fixed at first push.
|
|
45
49
|
// A staff re-registration under a different owner is a conflict; a builder is
|
|
46
50
|
// refused with 403 in the transport before it reaches this throw.
|
|
47
|
-
[/is owned by /,
|
|
48
|
-
[/was rejected — publish a new one/,
|
|
49
|
-
[/is already admitted/,
|
|
51
|
+
[/is owned by /, 'conflict'],
|
|
52
|
+
[/was rejected — publish a new one/, 'conflict'],
|
|
53
|
+
[/is already admitted/, 'conflict'],
|
|
50
54
|
// The publish seam's refusal (marketplace-publish.md §5): prod points at a version
|
|
51
55
|
// carrying only the AUTO admission note, so no human has vouched for code that listing
|
|
52
56
|
// would expose to every tenant. It names its own way out — a staff admit of that
|
|
@@ -54,31 +58,41 @@ const STATUS_PATTERNS = [
|
|
|
54
58
|
// how the console's List button came to answer `internal error` and the operator had
|
|
55
59
|
// no way to learn that an admit was what it wanted. Pinned by the contract suite
|
|
56
60
|
// (`/auto-admitted.*staff admit/`) against both adapters, like every pattern here.
|
|
57
|
-
[/is auto-admitted \(private self-serve\)/,
|
|
58
|
-
[/belongs to '/,
|
|
59
|
-
[/not admitted/,
|
|
60
|
-
[/acknowledge it explicitly to promote/,
|
|
61
|
+
[/is auto-admitted \(private self-serve\)/, 'conflict'],
|
|
62
|
+
[/belongs to '/, 'conflict'],
|
|
63
|
+
[/not admitted/, 'conflict'],
|
|
64
|
+
[/acknowledge it explicitly to promote/, 'conflict'],
|
|
61
65
|
// deleteVertical's bound-scope refusal — the message names the count and the way
|
|
62
66
|
// out (delete or rebind the scopes), so it must reach the caller, not collapse
|
|
63
67
|
// into the generic 500 below.
|
|
64
|
-
[/still backs \d+ scope\(s\)/,
|
|
68
|
+
[/still backs \d+ scope\(s\)/, 'conflict'],
|
|
65
69
|
// The §4 sandbox contract: a declared binding reaches platform infrastructure.
|
|
66
70
|
// Forbidden, not a conflict — the upload is well-formed and still refused.
|
|
67
|
-
[/deploy refused:/,
|
|
71
|
+
[/deploy refused:/, 'forbidden'],
|
|
68
72
|
// The ADDRESSED resource does not exist — including the K-3 fail-closed case
|
|
69
73
|
// where it exists under a DIFFERENT tenant and must read as absent.
|
|
70
|
-
[/unknown tenant:/,
|
|
71
|
-
[/unknown scope for tenant/,
|
|
72
|
-
[/unknown scope /,
|
|
74
|
+
[/unknown tenant:/, 'not_found'],
|
|
75
|
+
[/unknown scope for tenant/, 'not_found'],
|
|
76
|
+
[/unknown scope /, 'not_found'],
|
|
73
77
|
// A read-only introspection read (§5.4) for a table the scope's schema does not have.
|
|
74
|
-
[/unknown table /,
|
|
78
|
+
[/unknown table /, 'not_found'],
|
|
75
79
|
// The SQL console's gate (#219) refused the statement — a malformed request, not a
|
|
76
80
|
// server fault. The prefix is pinned by the contract suite against both adapters.
|
|
77
|
-
[/read-only console/,
|
|
78
|
-
[/unknown vertical /,
|
|
79
|
-
[/unknown version /,
|
|
80
|
-
[/scope has no tenant record/,
|
|
81
|
+
[/read-only console/, 'validation_failed'],
|
|
82
|
+
[/unknown vertical /, 'not_found'],
|
|
83
|
+
[/unknown version /, 'not_found'],
|
|
84
|
+
[/scope has no tenant record/, 'not_found'],
|
|
81
85
|
];
|
|
86
|
+
/** A body built from a code this layer decided, rather than one the throw declared. */
|
|
87
|
+
const coded = (code, message) => ({
|
|
88
|
+
status: PROBLEM_CATALOG[code].status,
|
|
89
|
+
body: toProblem(substratError(code, message)),
|
|
90
|
+
});
|
|
91
|
+
/** A status raised somewhere else and relayed — `about:blank`, because it is not ours. */
|
|
92
|
+
const relayed = (status, message) => ({
|
|
93
|
+
status: status,
|
|
94
|
+
body: problemForStatus(status, message),
|
|
95
|
+
});
|
|
82
96
|
export function mapError(err) {
|
|
83
97
|
// A ControlPlaneError is a DELIBERATE downstream answer, not an unreviewed throw —
|
|
84
98
|
// the VerticalClient wraps the vertical's own JSON status/message in it. Passing it
|
|
@@ -86,9 +100,11 @@ export function mapError(err) {
|
|
|
86
100
|
// unimplemented verb) reach the dashboard as itself, instead of collapsing into the
|
|
87
101
|
// generic 500 below (the shape of the 2026-07-25 incident, on this side of the seam).
|
|
88
102
|
// Several routes hand-catch it already; this makes the boundary consistent for the rest.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
//
|
|
104
|
+
// `about:blank`: the status is the downstream's, and putting OUR taxonomy on someone
|
|
105
|
+
// else's refusal would be a claim we have no standing to make.
|
|
106
|
+
if (err instanceof ControlPlaneError)
|
|
107
|
+
return relayed(err.status, err.message);
|
|
92
108
|
// A deployment fact, not a fault in the request (#603, #828): this host was started
|
|
93
109
|
// without a piece of platform wiring, so a whole capability cannot work — no seal key
|
|
94
110
|
// (the connection store, the subject keys, the per-tenant D1 credential seal), or no
|
|
@@ -108,22 +124,33 @@ export function mapError(err) {
|
|
|
108
124
|
// is one of those legacy names and is covered here; the explicit check stays because it
|
|
109
125
|
// predates the code and its absence would be silent.
|
|
110
126
|
if (err instanceof SecretBoxUnconfiguredError || errorCodeOf(err) === 'unavailable') {
|
|
111
|
-
|
|
112
|
-
return { status: 503, body: { error: message } };
|
|
127
|
+
return coded('unavailable', err instanceof Error ? err.message : String(err));
|
|
113
128
|
}
|
|
114
129
|
// The relay's own refusals already carry a reviewed status and message. The connection
|
|
115
130
|
// route answers the 4xx ones itself (a 422 additionally carries the provider's probe);
|
|
116
131
|
// a 503 reaches here because the route rethrows it, so that the platform's own
|
|
117
132
|
// inability lands an ops-failure row (#559) instead of vanishing into the operator's
|
|
118
133
|
// screen alone.
|
|
119
|
-
if (err instanceof ConnectionRelayError)
|
|
120
|
-
return
|
|
134
|
+
if (err instanceof ConnectionRelayError)
|
|
135
|
+
return relayed(err.status, err.message);
|
|
136
|
+
// THE CODE, FIRST (#113 phase 4). A throw that declared what it is renders from its own
|
|
137
|
+
// declaration — extensions included, so a `conflict` arrives carrying the `reason` the
|
|
138
|
+
// engine narrowed it with, and a parse failure its field list. Everything below this
|
|
139
|
+
// line is a throw site nobody has typed yet.
|
|
140
|
+
const declared = errorCodeOf(err);
|
|
141
|
+
if (declared !== undefined && err instanceof Error) {
|
|
142
|
+
return { status: PROBLEM_CATALOG[declared].status, body: toProblem(err) };
|
|
121
143
|
}
|
|
122
144
|
const message = err instanceof Error ? err.message : String(err);
|
|
123
|
-
for (const [pattern,
|
|
145
|
+
for (const [pattern, code] of CODE_PATTERNS) {
|
|
124
146
|
if (pattern.test(message))
|
|
125
|
-
return
|
|
147
|
+
return coded(code, message);
|
|
126
148
|
}
|
|
127
|
-
|
|
149
|
+
// The generic 500. `toProblem` refuses to disclose the message — that is the rule, and
|
|
150
|
+
// this surface has cross-tenant reach — so the body carries no `detail`. The deprecated
|
|
151
|
+
// `error` duplicate is set by hand to the same constant this branch has always
|
|
152
|
+
// answered with, because it is OURS rather than the throw's, and every SPA in the repo
|
|
153
|
+
// still reads `{ error }`. It goes when the duplicate does.
|
|
154
|
+
return { status: 500, body: { ...toProblem(err), error: 'internal error' } };
|
|
128
155
|
}
|
|
129
156
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AttachmentRecord, ConnectionId, EntityRef, EntitlementGrant, PermissionKey, PlatformRequest, PlatformRequestFilter, PlatformRequestId, PlatformRequestStatus, PlatformRequestFailure, PrincipalId, ConnectionGrantRecord, ProjectedConnectionGrant, ProjectedConnectionKey, ProjectedIdentityLink, QueryScopeInput, ReadScopeTableInput, ScopeDumpTable, ScopeId, ScopeQueryResult, ScopeTable, ScopeTablePage, TenantId, TenantStoreHandle, Visibility } from '@substrat-run/contracts';
|
|
1
|
+
import type { AttachmentRecord, ConnectionId, EntityRef, EntitlementGrant, PermissionKey, PlatformRequest, PlatformRequestFilter, PlatformRequestId, PlatformRequestStatus, PlatformRequestFailure, PrincipalId, ConnectionGrantRecord, ProjectedConnectionGrant, ProjectedConnectionKey, ProjectedIdentityLink, QueryScopeInput, ReadScopeTableInput, ScopeDumpTable, ScopeId, ScopeQueryResult, DenialFilter, DenialSummary, PermissionDenial, ScopeTable, ScopeTablePage, TenantId, TenantStoreHandle, Visibility } from '@substrat-run/contracts';
|
|
2
2
|
import type { OpenedAttachment } from '@substrat-run/kernel';
|
|
3
3
|
/**
|
|
4
4
|
* The platform's client for calling a VERTICAL (K-31).
|
|
@@ -228,6 +228,16 @@ export declare class VerticalClient {
|
|
|
228
228
|
* the ControlPlaneError relays verbatim.
|
|
229
229
|
*/
|
|
230
230
|
queryScope(scopeId: ScopeId, input: QueryScopeInput): Promise<ScopeQueryResult>;
|
|
231
|
+
/**
|
|
232
|
+
* The scope's K-35 denial log (#867) — pulled for the same reason the tables are: a
|
|
233
|
+
* denial is written in the scope's own DO, which lives in the vertical's deployment
|
|
234
|
+
* (K-31), not the control plane's. The K-3 cross-check and the K-24 access-log entry
|
|
235
|
+
* are made on the platform side before this call; what crosses is a scope id and a
|
|
236
|
+
* filter, never SQL.
|
|
237
|
+
*/
|
|
238
|
+
listDenials(scopeId: ScopeId, filter?: DenialFilter): Promise<PermissionDenial[]>;
|
|
239
|
+
/** The bucketed view of the same log (K-35's rate-buckets), with the window's facts. */
|
|
240
|
+
summarizeDenials(scopeId: ScopeId, filter?: DenialFilter): Promise<DenialSummary>;
|
|
231
241
|
/**
|
|
232
242
|
* The scope's PENDING platform intents (platform-intents.md) — the platform pulls these because
|
|
233
243
|
* the intent rows live in the vertical's own scope DO, in the vertical's deployment (K-31), not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertical-client.d.ts","sourceRoot":"","sources":["../src/vertical-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"vertical-client.d.ts","sourceRoot":"","sources":["../src/vertical-client.ts"],"names":[],"mappings":"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"}
|
package/dist/vertical-client.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { attachmentRecord } from '@substrat-run/contracts';
|
|
2
2
|
import { CONNECTOR_ATTACHMENT_RECORD_HEADER, PLATFORM_SECRET_HEADER } from '@substrat-run/kernel';
|
|
3
3
|
import { ControlPlaneError } from './client.js';
|
|
4
|
+
/**
|
|
5
|
+
* The shared query string for both denial reads — same fields, same spelling, so the
|
|
6
|
+
* two routes cannot drift on what a filter means.
|
|
7
|
+
*/
|
|
8
|
+
function denialParams(scopeId, filter) {
|
|
9
|
+
const q = new URLSearchParams({ scopeId });
|
|
10
|
+
if (filter?.actor)
|
|
11
|
+
q.set('actor', filter.actor);
|
|
12
|
+
if (filter?.permission)
|
|
13
|
+
q.set('permission', filter.permission);
|
|
14
|
+
if (filter?.operation)
|
|
15
|
+
q.set('operation', filter.operation);
|
|
16
|
+
if (filter?.since)
|
|
17
|
+
q.set('since', filter.since);
|
|
18
|
+
if (filter?.until)
|
|
19
|
+
q.set('until', filter.until);
|
|
20
|
+
if (filter?.limit)
|
|
21
|
+
q.set('limit', String(filter.limit));
|
|
22
|
+
return q;
|
|
23
|
+
}
|
|
4
24
|
/** The ack fields every provision response carries — everything else is `result` material. */
|
|
5
25
|
const PROVISION_ACK_FIELDS = new Set(['tenantId', 'scopeId', 'owner', 'result']);
|
|
6
26
|
/** The backstop: a vertical that still returns credential-shaped keys has them dropped, not persisted. */
|
|
@@ -138,6 +158,20 @@ export class VerticalClient {
|
|
|
138
158
|
async queryScope(scopeId, input) {
|
|
139
159
|
return this.postInternal('/internal/query', { scopeId, sql: input.sql }, 'query');
|
|
140
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* The scope's K-35 denial log (#867) — pulled for the same reason the tables are: a
|
|
163
|
+
* denial is written in the scope's own DO, which lives in the vertical's deployment
|
|
164
|
+
* (K-31), not the control plane's. The K-3 cross-check and the K-24 access-log entry
|
|
165
|
+
* are made on the platform side before this call; what crosses is a scope id and a
|
|
166
|
+
* filter, never SQL.
|
|
167
|
+
*/
|
|
168
|
+
async listDenials(scopeId, filter) {
|
|
169
|
+
return this.getInternal(`/internal/denials?${denialParams(scopeId, filter)}`);
|
|
170
|
+
}
|
|
171
|
+
/** The bucketed view of the same log (K-35's rate-buckets), with the window's facts. */
|
|
172
|
+
async summarizeDenials(scopeId, filter) {
|
|
173
|
+
return this.getInternal(`/internal/denials/summary?${denialParams(scopeId, filter)}`);
|
|
174
|
+
}
|
|
141
175
|
/**
|
|
142
176
|
* The scope's PENDING platform intents (platform-intents.md) — the platform pulls these because
|
|
143
177
|
* the intent rows live in the vertical's own scope DO, in the vertical's deployment (K-31), not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertical-client.js","sourceRoot":"","sources":["../src/vertical-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vertical-client.js","sourceRoot":"","sources":["../src/vertical-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/control-plane-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.89.0",
|
|
4
4
|
"description": "HTTP surface over HostAdmin — the audited control-plane transport (control-plane.md §4.5)",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -23,21 +23,21 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"hono": "^4.6.0",
|
|
26
|
-
"@substrat-run/contracts": "^0.
|
|
27
|
-
"@substrat-run/kernel": "^0.
|
|
26
|
+
"@substrat-run/contracts": "^0.89.0",
|
|
27
|
+
"@substrat-run/kernel": "^0.89.0",
|
|
28
28
|
"@substrat-run/psl": "^0.2.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@hono/node-server": "^1.13.0",
|
|
32
32
|
"@types/better-sqlite3": "^9.6.0",
|
|
33
|
-
"better-auth": "^1.
|
|
33
|
+
"better-auth": "^1.7.1",
|
|
34
34
|
"better-sqlite3": "^13.0.3",
|
|
35
35
|
"hono": "^4.6.0",
|
|
36
36
|
"tsx": "^4.19.0",
|
|
37
37
|
"typescript": "^7.0.0",
|
|
38
38
|
"vitest": "^3.2.7",
|
|
39
|
-
"@substrat-run/adapter-sqlite": "^0.
|
|
40
|
-
"@substrat-run/vertical-host": "^0.
|
|
39
|
+
"@substrat-run/adapter-sqlite": "^0.89.0",
|
|
40
|
+
"@substrat-run/vertical-host": "^0.89.0"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|