@substrat-run/vertical-host 0.114.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.
@@ -0,0 +1,111 @@
1
+ /**
2
+ * The link-share exchange (#1672) — the HTTP half of a capability, authored once.
3
+ *
4
+ * A capability is minted inside an operation (`ctx.capabilities.mint`) and handed back as a
5
+ * secret. The secret is the credential, so it must be presented ONCE and then leave: a
6
+ * secret that lives in a URL lives in browser history, in the `Referer` of every request the
7
+ * page makes, and in every log line that records a path. This module is the one place that
8
+ * trades it for something that does not travel — an HttpOnly session cookie — so no
9
+ * vertical hand-rolls that step, and none gets it subtly wrong.
10
+ *
11
+ * **The link carries the secret in its FRAGMENT**, `https://<host>/#share=<secret>`. A
12
+ * fragment is never sent to a server, so it is in no router log, no invocation log and no
13
+ * `Referer`; and a mail scanner or chat unfurler that fetches the URL cannot spend a
14
+ * single-use link, because what it fetches carries no secret. The page reads the fragment,
15
+ * drops it from history, and posts it here:
16
+ *
17
+ * ```ts
18
+ * const m = location.hash.match(/(?:^#|&)share=([^&]+)/);
19
+ * if (m) {
20
+ * history.replaceState(null, '', location.pathname + location.search); // gone before the call
21
+ * await fetch('/api/capability/exchange', {
22
+ * method: 'POST',
23
+ * headers: { 'content-type': 'application/json' },
24
+ * body: JSON.stringify({ secret: decodeURIComponent(m[1]) }),
25
+ * });
26
+ * }
27
+ * ```
28
+ *
29
+ * The route answers with the session in `Set-Cookie` only (never in the body), `no-store`,
30
+ * and `Referrer-Policy: no-referrer`. From then on a link-share route resolves its stub with
31
+ * `linkShareStub` — the capability FIRST, then a signed-in principal — and every call acts
32
+ * as `{ capability }`, resolved by the checker against the capability's own row on every
33
+ * call, so a revoke is the next call.
34
+ *
35
+ * **Only `act` capabilities are exchanged here.** A `become` secret (a claim link) answers
36
+ * 404 and is NOT spent, so pasting a claim link into a share page cannot burn it.
37
+ *
38
+ * **A JSON content type is required**, so a cross-site page cannot plant its own link's
39
+ * session in a visitor's browser with a plain form post: `application/json` is not a CORS
40
+ * "simple" type, so the browser asks first, and this origin does not say yes.
41
+ *
42
+ * Rate limiting the exchange is the neighbouring control and is not here (#130). With 256
43
+ * bits of entropy a secret cannot be guessed; what a limit would bound is load.
44
+ */
45
+ import type { Context, Env, Hono } from 'hono';
46
+ import { type ScopeId, type TenantId } from '@substrat-run/contracts';
47
+ import type { ScopeHost, ScopeStub, ScopeStubOptions } from '@substrat-run/kernel';
48
+ /** The cookie a capability session rides in. Named beside oidc-rp's `sb_session`. */
49
+ export declare const CAPABILITY_COOKIE = "sb_capability";
50
+ /** Where `mountCapabilityExchange` listens unless told otherwise. */
51
+ export declare const CAPABILITY_EXCHANGE_PATH = "/api/capability/exchange";
52
+ type Awaitable<T> = T | Promise<T>;
53
+ /** The scope a request is for — the router-asserted (tenant, scope) the vertical already resolves. */
54
+ export interface CapabilityNode {
55
+ tenantId: TenantId;
56
+ scopeId: ScopeId;
57
+ }
58
+ export interface CapabilityExchangeOptions<E extends Env = Env> {
59
+ /** The host serving the scope. Taken structurally — any host with the exchange verb. */
60
+ host: (c: Context<E>) => Awaitable<Pick<ScopeHost, 'exchangeCapability'>>;
61
+ /** Which scope this request is for. */
62
+ node: (c: Context<E>) => Awaitable<CapabilityNode>;
63
+ /** Defaults to `CAPABILITY_EXCHANGE_PATH`. */
64
+ path?: string;
65
+ /** Defaults to `CAPABILITY_COOKIE`. */
66
+ cookieName?: string;
67
+ }
68
+ /**
69
+ * Mount `POST <path>`: trade a link's secret for an HttpOnly session cookie.
70
+ *
71
+ * 200 `{ capabilityId, entity, expiresAt }` — what the page needs to know where it is — and
72
+ * the session in `Set-Cookie` alone. 404 for an unknown, expired, revoked or used-up secret
73
+ * and for a `become` secret, all alike. 400 (`validation_failed`) without a JSON content type.
74
+ */
75
+ export declare function mountCapabilityExchange<E extends Env>(app: Hono<E>, options: CapabilityExchangeOptions<E>): void;
76
+ /** The capability session this request carries, or `undefined`. */
77
+ export declare function capabilitySessionOf(c: Context, cookieName?: string): string | undefined;
78
+ /**
79
+ * The stub a request's capability session acts through, or `undefined` when it carries
80
+ * none. The session is resolved on every invoke through the stub, not here, so a stub
81
+ * obtained before a revoke refuses the call after it. A link-share route wants
82
+ * `linkShareStub`, which also says what happens when the visitor is signed in.
83
+ */
84
+ export declare function capabilityStubOf(c: Context, host: Pick<ScopeHost, 'getCapabilityScope'>, node: CapabilityNode, options?: ScopeStubOptions & {
85
+ cookieName?: string;
86
+ }): Promise<ScopeStub | undefined>;
87
+ /**
88
+ * The stub a LINK-SHARE route acts through: **the capability first, then the principal.**
89
+ *
90
+ * On a route a link share serves, a presented capability wins over a signed-in principal.
91
+ * The other order ignores the link whenever the browser happens to be signed in: a
92
+ * recipient who is signed in but holds no access of their own would act as themselves, and
93
+ * the shared folder would answer 403 — the opposite of "whoever holds the link". With no
94
+ * capability cookie, `principal` decides, exactly as a route without link shares would.
95
+ *
96
+ * ```ts
97
+ * const stub = await linkShareStub(c, host, node, () => principalStubOf(c)); // yours
98
+ * ```
99
+ *
100
+ * The flip side of the precedence: a capability cookie that has gone stale (the link was
101
+ * revoked, or its session expired) refuses every call on such a route as `unauthenticated`,
102
+ * even for a visitor who is signed in. A page that sees that — or that is done with a
103
+ * link — calls `clearCapabilitySession`, and the principal decides again.
104
+ */
105
+ export declare function linkShareStub(c: Context, host: Pick<ScopeHost, 'getCapabilityScope'>, node: CapabilityNode, principal: () => Awaitable<ScopeStub | undefined>, options?: ScopeStubOptions & {
106
+ cookieName?: string;
107
+ }): Promise<ScopeStub | undefined>;
108
+ /** Forget this browser's capability session — so a signed-in visitor acts as themselves again. */
109
+ export declare function clearCapabilitySession(c: Context, cookieName?: string): void;
110
+ export {};
111
+ //# sourceMappingURL=capability-exchange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-exchange.d.ts","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC5D,wFAAwF;IACxF,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC1E,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,GAAG,EACnD,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,IAAI,CAqCN;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,MAAM,GAAG,SAAS,CAE1G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAGhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC3C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,EACjD,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AAED,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,MAA0B,GAAG,IAAI,CAE/F"}
@@ -0,0 +1,98 @@
1
+ import { deleteCookie, getCookie, setCookie } from 'hono/cookie';
2
+ import { substratError, z } from '@substrat-run/contracts';
3
+ import { problemResponse } from './errors.js';
4
+ /** The cookie a capability session rides in. Named beside oidc-rp's `sb_session`. */
5
+ export const CAPABILITY_COOKIE = 'sb_capability';
6
+ /** Where `mountCapabilityExchange` listens unless told otherwise. */
7
+ export const CAPABILITY_EXCHANGE_PATH = '/api/capability/exchange';
8
+ const exchangeBody = z.object({ secret: z.string().min(1).max(256) });
9
+ /** One refusal for every way an exchange can fail, so a probe learns nothing it can act on. */
10
+ const invalidLink = () => substratError('not_found', 'This link is not valid, or no longer is.');
11
+ /**
12
+ * Mount `POST <path>`: trade a link's secret for an HttpOnly session cookie.
13
+ *
14
+ * 200 `{ capabilityId, entity, expiresAt }` — what the page needs to know where it is — and
15
+ * the session in `Set-Cookie` alone. 404 for an unknown, expired, revoked or used-up secret
16
+ * and for a `become` secret, all alike. 400 (`validation_failed`) without a JSON content type.
17
+ */
18
+ export function mountCapabilityExchange(app, options) {
19
+ const path = options.path ?? CAPABILITY_EXCHANGE_PATH;
20
+ const cookieName = options.cookieName ?? CAPABILITY_COOKIE;
21
+ app.post(path, async (c) => {
22
+ // Before anything can fail: nothing about this exchange may be cached, and the page
23
+ // that posted it must not hand its own URL onwards.
24
+ c.header('Cache-Control', 'no-store');
25
+ c.header('Referrer-Policy', 'no-referrer');
26
+ try {
27
+ if (!(c.req.header('content-type') ?? '').toLowerCase().startsWith('application/json')) {
28
+ throw substratError('validation_failed', 'the exchange takes a JSON body: { "secret": "…" }');
29
+ }
30
+ const parsed = exchangeBody.safeParse(await c.req.json().catch(() => null));
31
+ if (!parsed.success)
32
+ throw invalidLink();
33
+ const node = await options.node(c);
34
+ const host = await options.host(c);
35
+ const outcome = await host.exchangeCapability(node.tenantId, node.scopeId, parsed.data.secret, {
36
+ mode: 'act',
37
+ });
38
+ if (!outcome || outcome.kind !== 'session')
39
+ throw invalidLink();
40
+ const maxAge = Math.max(0, Math.floor((Date.parse(outcome.expiresAt) - Date.now()) / 1000));
41
+ setCookie(c, cookieName, outcome.sessionToken, {
42
+ httpOnly: true,
43
+ sameSite: 'Lax',
44
+ path: '/',
45
+ secure: new URL(c.req.url).protocol === 'https:',
46
+ maxAge,
47
+ });
48
+ return c.json({
49
+ capabilityId: outcome.capabilityId,
50
+ entity: outcome.entity,
51
+ expiresAt: outcome.expiresAt,
52
+ });
53
+ }
54
+ catch (err) {
55
+ return problemResponse(c, err);
56
+ }
57
+ });
58
+ }
59
+ /** The capability session this request carries, or `undefined`. */
60
+ export function capabilitySessionOf(c, cookieName = CAPABILITY_COOKIE) {
61
+ return getCookie(c, cookieName) || undefined;
62
+ }
63
+ /**
64
+ * The stub a request's capability session acts through, or `undefined` when it carries
65
+ * none. The session is resolved on every invoke through the stub, not here, so a stub
66
+ * obtained before a revoke refuses the call after it. A link-share route wants
67
+ * `linkShareStub`, which also says what happens when the visitor is signed in.
68
+ */
69
+ export async function capabilityStubOf(c, host, node, options) {
70
+ const token = capabilitySessionOf(c, options?.cookieName);
71
+ return token ? host.getCapabilityScope(token, node.tenantId, node.scopeId, options) : undefined;
72
+ }
73
+ /**
74
+ * The stub a LINK-SHARE route acts through: **the capability first, then the principal.**
75
+ *
76
+ * On a route a link share serves, a presented capability wins over a signed-in principal.
77
+ * The other order ignores the link whenever the browser happens to be signed in: a
78
+ * recipient who is signed in but holds no access of their own would act as themselves, and
79
+ * the shared folder would answer 403 — the opposite of "whoever holds the link". With no
80
+ * capability cookie, `principal` decides, exactly as a route without link shares would.
81
+ *
82
+ * ```ts
83
+ * const stub = await linkShareStub(c, host, node, () => principalStubOf(c)); // yours
84
+ * ```
85
+ *
86
+ * The flip side of the precedence: a capability cookie that has gone stale (the link was
87
+ * revoked, or its session expired) refuses every call on such a route as `unauthenticated`,
88
+ * even for a visitor who is signed in. A page that sees that — or that is done with a
89
+ * link — calls `clearCapabilitySession`, and the principal decides again.
90
+ */
91
+ export async function linkShareStub(c, host, node, principal, options) {
92
+ return (await capabilityStubOf(c, host, node, options)) ?? (await principal());
93
+ }
94
+ /** Forget this browser's capability session — so a signed-in visitor acts as themselves again. */
95
+ export function clearCapabilitySession(c, cookieName = CAPABILITY_COOKIE) {
96
+ deleteCookie(c, cookieName, { path: '/' });
97
+ }
98
+ //# sourceMappingURL=capability-exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-exchange.js","sourceRoot":"","sources":["../src/capability-exchange.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -23,7 +23,8 @@
23
23
  * adapter satisfies the same interface.
24
24
  */
25
25
  import type { Hono } from 'hono';
26
- import { z, ownerSeat, type DenialFilter, type DenialSummary, type PermissionDenial, readScopeTableInput, type EntityHistoryInput, type EventFacetInput, type EventCauseInput, type EventEffectsInput, type EffectsTree, type InvocationEventsInput, type InvocationEvents, type DeadLettersInput, type DeadLetter, type CauseChain, type EventFacetResult, type HistoryEntry, type Page, type DrainedEvent, type ScopeId, type TenantId, type PrincipalId, type ConnectionId, type PermissionKey, type EntityRef, type Visibility, type RoleDefinition, type ScopeDumpTable, type ScopeTable, type ScopeQueryResult, type EntitlementGrant, type ProjectedConnectionGrant, type ProjectedConnectionKey, type ProjectedIdentityLink, type OwnerClaimLink, type PlatformRequest, type PlatformRequestFilter, type PlatformRequestId, type PlatformRequestStatus, type PlatformRequestFailure } from '@substrat-run/contracts';
26
+ import { type UndrainedEvents } from '@substrat-run/kernel';
27
+ import { z, ownerSeat, type DenialFilter, type DenialSummary, type PermissionDenial, readScopeTableInput, type EntityHistoryInput, type EventFacetInput, type EventCauseInput, type EventEffectsInput, type EffectsTree, type InvocationEventsInput, type InvocationEvents, type DeadLettersInput, type DeadLetter, type CauseChain, type EventFacetResult, type HistoryEntry, type Page, type ScopeId, type TenantId, type PrincipalId, type ConnectionId, type PermissionKey, type EntityRef, type Visibility, type RoleDefinition, type ScopeDumpTable, type ScopeTable, type ScopeQueryResult, type EntitlementGrant, type ProjectedConnectionGrant, type ProjectedConnectionKey, type ProjectedIdentityLink, type OwnerClaimLink, type PlatformRequest, type PlatformRequestFilter, type PlatformRequestId, type PlatformRequestStatus, type PlatformRequestFailure, type ModuleId, type SystemSwitchOutcome } from '@substrat-run/contracts';
27
28
  /**
28
29
  * The slice of the scope host the platform surface delegates to. Structural on purpose:
29
30
  * this package names behaviour, never the concrete `CloudflareScopeHost`. Every method
@@ -66,11 +67,27 @@ export interface VerticalScopeHost {
66
67
  * this deployment holds, and the stamp once the platform's sink confirmed them.
67
68
  * Two verbs on purpose — the platform reads, ships, and only then stamps — and the
68
69
  * instant is the platform's, carried through, so its admin receipt and the rows agree.
70
+ * The read's optional `skipped` says what it stepped over because it would not decode
71
+ * (#1636).
69
72
  */
70
- undrainedEventsLocal(scopeId: ScopeId, limit: number): Promise<DrainedEvent[]>;
73
+ undrainedEventsLocal(scopeId: ScopeId, limit: number): Promise<UndrainedEvents>;
71
74
  markEventsDrainedLocal(scopeId: ScopeId, eventIds: readonly string[], drainedAt: string): Promise<number>;
72
75
  /** Reopen rows stamped before an instant so they ship again (#1334) — the stamp's inverse. */
73
76
  redrainEventsLocal(scopeId: ScopeId, drainedBefore: string): Promise<number>;
77
+ /**
78
+ * How many rows that reopen would touch, reopening none (#1545) — the read-only half a
79
+ * dry run asks for. OPTIONAL, because a host older than #1545 does not have it and this
80
+ * interface is what such a host already satisfies; the route answers 501 rather than
81
+ * calling something that is not there. That refusal is the point: the alternative is a
82
+ * count that quietly performs the reopen it was meant to preview.
83
+ */
84
+ redrainCountLocal?(scopeId: ScopeId, drainedBefore: string): Promise<number>;
85
+ /**
86
+ * The scope database's size in bytes (#1524), for an on-demand storage reading. OPTIONAL
87
+ * for the reason `redrainCountLocal` is: a host built before it satisfies this interface
88
+ * without it, and the route answers 501 rather than 0, which a sum would add.
89
+ */
90
+ databaseSizeLocal?(scopeId: ScopeId): Promise<number>;
74
91
  entityHistoryLocal(scopeId: ScopeId, input: EntityHistoryInput): Promise<Page<HistoryEntry>>;
75
92
  facetEventsLocal(scopeId: ScopeId, input: EventFacetInput): Promise<EventFacetResult>;
76
93
  eventCauseLocal(scopeId: ScopeId, input: EventCauseInput): Promise<CauseChain>;
@@ -115,6 +132,13 @@ export interface VerticalScopeHost {
115
132
  contentType: string;
116
133
  } | null>;
117
134
  connectorGrantLocal(connectionId: ConnectionId, scopeId: ScopeId, permission: PermissionKey, expiresAt?: string): Promise<void>;
135
+ /**
136
+ * The far end of the schedule kill switch (#1666): move one module's switch in the
137
+ * scope's own storage. OPTIONAL for the reason `redrainCountLocal` is — a host built
138
+ * before it satisfies this interface without it — and the route answers 501, which the
139
+ * control plane reports as "redeploy", never as a switch that moved.
140
+ */
141
+ systemSwitchLocal?(scopeId: ScopeId, moduleId: ModuleId, to: 'on' | 'off'): Promise<SystemSwitchOutcome>;
118
142
  }
119
143
  /** `/internal/provision` body. `slug`/`name` ride along so `onProvision` can register a site (M2). */
120
144
  declare const provisionBody: z.ZodObject<{
@@ -249,6 +273,7 @@ export { requestConnectUrl, ConnectUrlRequestError } from './connect-url.js';
249
273
  export type { ConnectUrlRequest } from './connect-url.js';
250
274
  export * from './mcp.js';
251
275
  export * from './public-surface.js';
276
+ export * from './capability-exchange.js';
252
277
  export { classifyError, isPlatformFault, messageOf, problemFor, problemOf, problemResponse, } from './errors.js';
253
278
  export type { ClassifiedProblem, ErrorClassification } from './errors.js';
254
279
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { HTTPException } from 'hono/http-exception';
2
2
  import { classifyError, messageOf, problemOf } from './errors.js';
3
3
  import { assertPlatformCall, CONNECTOR_ATTACHMENT_RECORD_HEADER, PlatformCallError, } from '@substrat-run/kernel';
4
- import { z, PROBLEM_CONTENT_TYPE, scopeId as scopeIdOf, tenantId as tenantIdOf, principalId as principalIdOf, connectionId as connectionIdOf, permissionKey as permissionKeyOf, entityRef, visibility, instant, entitlementGrant, projectedConnectionGrant, projectedConnectionKey, projectedIdentityLink, ownerSeat, ownerClaimLink, platformRequestFilter, denialFilter, platformRequestId, platformRequestStatus, platformRequestFailure, readScopeTableInput, entityHistoryInput, eventFacetInput, eventCauseInput, eventEffectsInput, invocationEventsInput, deadLettersInput, queryScopeInput, } from '@substrat-run/contracts';
4
+ import { z, PROBLEM_CONTENT_TYPE, scopeId as scopeIdOf, tenantId as tenantIdOf, principalId as principalIdOf, connectionId as connectionIdOf, permissionKey as permissionKeyOf, moduleId as moduleIdOf, entityRef, visibility, instant, entitlementGrant, projectedConnectionGrant, projectedConnectionKey, projectedIdentityLink, ownerSeat, ownerClaimLink, platformRequestFilter, denialFilter, platformRequestId, platformRequestStatus, platformRequestFailure, readScopeTableInput, entityHistoryInput, eventFacetInput, eventCauseInput, eventEffectsInput, invocationEventsInput, deadLettersInput, queryScopeInput, } from '@substrat-run/contracts';
5
5
  /**
6
6
  * The denial-log filter, off the query string (#867). Both denial routes take the same
7
7
  * one, and it is PARSED here rather than forwarded: what arrives is text, and what it
@@ -80,6 +80,10 @@ const markDrainedBody = z.object({
80
80
  * `/internal/redrain-events` body (#1334) — reopen stamped rows so the drain ships them
81
81
  * again. `drainedBefore` required, as on the platform verb: it is what keeps rows that
82
82
  * already reached a rebuilt table from being reopened and landing there twice.
83
+ *
84
+ * `/internal/redrain-count` (#1545) takes the same body: the count rehearses exactly the
85
+ * window the reopen would touch, so anything it asked differently would be a rehearsal of
86
+ * a different run. The two are separate PATHS for the reason written at the route.
83
87
  */
84
88
  const redrainEventsBody = z.object({ scopeId: scopeIdOf, drainedBefore: instant });
85
89
  /** `/internal/connector-invoke` body (#574) — one operation, invoked as the connection. */
@@ -100,6 +104,12 @@ const connectorAttachmentMeta = z.object({
100
104
  contentType: z.string().min(1),
101
105
  visibility,
102
106
  });
107
+ /** `/internal/system-switch` body (#1666) — the far end of `revokeFromSystem` / `restoreToSystem`. */
108
+ const systemSwitchBody = z.object({
109
+ scopeId: scopeIdOf,
110
+ moduleId: moduleIdOf,
111
+ to: z.enum(['on', 'off']),
112
+ });
103
113
  /** `/internal/connector-grant` body (#574) — the delivery half of `grantToConnection`. */
104
114
  const connectorGrantBody = z.object({
105
115
  connectionId: connectionIdOf,
@@ -199,9 +209,20 @@ export function mountPlatformSurface(app, deps) {
199
209
  // cross (event payloads), for the reason `/internal/history` gives: it is the tenant's
200
210
  // own data, on its way to the lake the platform keeps for that tenant, and the
201
211
  // platform's `readUndrainedEvents` / `markEventsDrained` are the audited door.
202
- app.get('/internal/undrained-events', async (c) => c.json(await deps
203
- .hostFor(c.env)
204
- .undrainedEventsLocal(scopeIdOf.parse(c.req.query('scopeId')), z.coerce.number().int().min(1).max(1000).default(200).parse(c.req.query('limit') ?? undefined))));
212
+ //
213
+ // `withSkipped=1` (#1636) asks for `{ events, skipped? }` instead of the bare array, so the
214
+ // rows the read stepped over reach the sweep's report — a property on an array does not
215
+ // survive `c.json`. Opt-in by the CALLER, so a platform that predates it still gets the
216
+ // array it parses, and a platform that asks a vertical predating it gets the array too
217
+ // and reads it as "nothing said".
218
+ app.get('/internal/undrained-events', async (c) => {
219
+ const events = await deps
220
+ .hostFor(c.env)
221
+ .undrainedEventsLocal(scopeIdOf.parse(c.req.query('scopeId')), z.coerce.number().int().min(1).max(1000).default(200).parse(c.req.query('limit') ?? undefined));
222
+ if (c.req.query('withSkipped') !== '1')
223
+ return c.json(events);
224
+ return c.json({ events: [...events], ...(events.skipped ? { skipped: events.skipped } : {}) });
225
+ });
205
226
  app.post('/internal/mark-drained', async (c) => {
206
227
  const body = markDrainedBody.parse(await c.req.json());
207
228
  const drained = await deps.hostFor(c.env).markEventsDrainedLocal(body.scopeId, body.eventIds, body.drainedAt);
@@ -210,13 +231,52 @@ export function mountPlatformSurface(app, deps) {
210
231
  // The stamp's inverse. No audit here, as with the stamp: the platform's `redrainEvents`
211
232
  // is the door and writes the receipt, whichever deployment held the rows.
212
233
  app.post('/internal/redrain-events', async (c) => {
213
- const body = redrainEventsBody.parse(await c.req.json());
234
+ const raw = await c.req.json();
235
+ // `countOnly` is REFUSED here, not stripped (#1545), mirroring the control-plane door.
236
+ // Zod drops unknown keys by default, so a caller that asked this route for a count would
237
+ // silently get the reopen — the one failure the separate count route exists to prevent,
238
+ // and the fact that only the platform's own client calls this route is a reason to keep
239
+ // the refusal cheap, not a reason to trust the caller. NOT `.strict()` on the body: that
240
+ // would also refuse every future additive field, which is how this surface is meant to
241
+ // grow.
242
+ if (typeof raw === 'object' && raw !== null && 'countOnly' in raw) {
243
+ return c.json({ error: 'countOnly is not honoured here — POST to /internal/redrain-count instead' }, 400);
244
+ }
245
+ const body = redrainEventsBody.parse(raw);
214
246
  const redrained = await deps.hostFor(c.env).redrainEventsLocal(body.scopeId, body.drainedBefore);
215
247
  return c.json({ redrained });
216
248
  });
249
+ // The read-only half (#1545): how many rows the reopen above would touch. Its OWN path,
250
+ // not a flag on that one, because the two answer with the same shape and the caller is a
251
+ // control plane that may be newer than this deployment. A `countOnly` field would be
252
+ // stripped by a deployment built before #1545 — which would then reopen the window and
253
+ // answer with a number indistinguishable from the count that was asked for, during a dry
254
+ // run. A path that deployment does not serve is refused instead, which is the honest
255
+ // answer and leaves the rows alone.
256
+ app.post('/internal/redrain-count', async (c) => {
257
+ const body = redrainEventsBody.parse(await c.req.json());
258
+ const host = deps.hostFor(c.env);
259
+ // Same reasoning one layer in: a vertical whose adapter predates #1545 satisfies this
260
+ // interface without the method, and 501 is the answer that cannot be mistaken for 0.
261
+ if (!host.redrainCountLocal) {
262
+ return c.json({ error: 'this deployment cannot count a redrain window (#1545) — redeploy it' }, 501);
263
+ }
264
+ return c.json({ redrainable: await host.redrainCountLocal(body.scopeId, body.drainedBefore) });
265
+ });
217
266
  // #1236: when one scope's migrations actually ran — the schema-change annotation
218
267
  // release health reads. Metadata only; no scope bytes cross the boundary.
219
268
  app.get('/internal/migrations', async (c) => c.json(await deps.hostFor(c.env).appliedMigrationsLocal(scopeIdOf.parse(c.req.query('scopeId')))));
269
+ // #1524: one scope's database size, for the console's on-demand storage reading.
270
+ // Metadata only, and no scope bytes cross. The read wakes the scope's DO, which is why
271
+ // the platform asks only when a person opens the card and pages what it asks for.
272
+ app.get('/internal/database-size', async (c) => {
273
+ const scope = scopeIdOf.parse(c.req.query('scopeId'));
274
+ const host = deps.hostFor(c.env);
275
+ if (!host.databaseSizeLocal) {
276
+ return c.json({ error: 'this deployment cannot read a database size (#1524). Redeploy it' }, 501);
277
+ }
278
+ return c.json({ bytes: await host.databaseSizeLocal(scope) });
279
+ });
220
280
  // #286: the PITR bookmarks one scope recorded before its migration passes — the rewind
221
281
  // points a backout offers. Metadata only; no scope bytes cross the boundary.
222
282
  app.get('/internal/bookmarks', async (c) => c.json(await deps.hostFor(c.env).migrationBookmarksLocal(scopeIdOf.parse(c.req.query('scopeId')))));
@@ -381,6 +441,20 @@ export function mountPlatformSurface(app, deps) {
381
441
  .connectorGrantLocal(body.connectionId, body.scopeId, body.permission, body.expiresAt);
382
442
  return c.json({ granted: body.permission, scopeId: body.scopeId });
383
443
  });
444
+ // The schedule kill switch (#1666): the shared control plane's `revokeFromSystem` /
445
+ // `restoreToSystem` for a scope served HERE, whose `system:<module>` grants live in this
446
+ // deployment's scope DO and nowhere the platform can reach. The platform writes the audit
447
+ // row once this answers; nothing is recorded here. `held: false` is a 200 with that
448
+ // answer, never a 404 — a 404 from this path means the route does not exist, which is
449
+ // what a deployment built before it answers, and the platform reads it as exactly that.
450
+ app.post('/internal/system-switch', async (c) => {
451
+ const body = systemSwitchBody.parse(await c.req.json());
452
+ const host = deps.hostFor(c.env);
453
+ if (!host.systemSwitchLocal) {
454
+ return c.json({ error: 'this deployment cannot switch schedules (#1666) — redeploy it' }, 501);
455
+ }
456
+ return c.json(await host.systemSwitchLocal(body.scopeId, body.moduleId, body.to));
457
+ });
384
458
  app.post('/internal/platform-requests/settle', async (c) => {
385
459
  const body = settleBody.parse(await c.req.json());
386
460
  await deps.hostFor(c.env).settlePlatformRequest(body.tenantId, body.scopeId, body.id, {
@@ -416,6 +490,8 @@ export function mountPlatformSurface(app, deps) {
416
490
  // secret-gated /internal/provision, so the control plane calls this on their behalf
417
491
  // after checking ownership. It re-sources the owner from the vertical's durable
418
492
  // owner-of-record and re-runs the idempotent provision. No owner in the body.
493
+ // The kernel half SEATS its tuples (#1659): what is missing comes back, what an operator
494
+ // revoked stays revoked — except the owner's seat on a scope no one else can act in.
419
495
  app.post('/internal/reconcile', async (c) => {
420
496
  if (!deps.resolveOwner) {
421
497
  throw new HTTPException(501, { message: 'this vertical keeps no owner-of-record to reconcile from' });
@@ -548,5 +624,7 @@ export * from './operations-routes.js';
548
624
  export { requestConnectUrl, ConnectUrlRequestError } from './connect-url.js';
549
625
  export * from './mcp.js';
550
626
  export * from './public-surface.js';
627
+ // #1672: the link-share exchange — a capability's secret traded for an HttpOnly session.
628
+ export * from './capability-exchange.js';
551
629
  export { classifyError, isPlatformFault, messageOf, problemFor, problemOf, problemResponse, } from './errors.js';
552
630
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -130,7 +130,13 @@ export interface ProtectedResourceOptions {
130
130
  readonly authorizationServers: readonly string[] | ((c: Context) => readonly string[] | Promise<readonly string[]>);
131
131
  /** Advertised `scopes_supported`. Omit when the issuer does not scope by resource. */
132
132
  readonly scopesSupported?: readonly string[];
133
- /** The canonical resource identifier. Defaults to this endpoint's own absolute URL. */
133
+ /**
134
+ * The canonical resource identifier. Defaults to this endpoint's own absolute URL
135
+ * (`mcpResourceOf` in `@substrat-run/contracts`). It is also the audience a presented
136
+ * token must name. The platform registers a resource at a team auth-server from the
137
+ * default alone, so a vertical that pins another value here, or mounts the endpoint
138
+ * off `/api/mcp`, is not covered by that registration (#1619).
139
+ */
134
140
  readonly resource?: string;
135
141
  }
136
142
  export interface MountMcpOptions {
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAAI,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAc1D,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAsED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAkDlF;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,EACzB,SAAS,MAAM,EAAE,GACjB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AA4DD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAEtB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAC/C,OAAO,GAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoPjC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAAI,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAc1D,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAsED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAkDlF;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,EACzB,SAAS,MAAM,EAAE,GACjB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAuGD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAEtB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAC/C,OAAO,GAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6QjC"}
package/dist/mcp.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { HTTPException } from 'hono/http-exception';
2
- import { z, listPageQuery, LIST_PAGE_DEFAULT, LIST_PAGE_MAX, LIST_SORT_PARAM } from '@substrat-run/contracts';
2
+ import { z, listPageQuery, LIST_PAGE_DEFAULT, LIST_PAGE_MAX, LIST_SORT_PARAM, mcpEndpointPath, mcpResourceOf, } from '@substrat-run/contracts';
3
3
  import { classifyError, messageOf, problemResponse } from './errors.js';
4
4
  /**
5
5
  * The protocol revisions this server speaks, newest first.
@@ -190,6 +190,50 @@ function toolResult(value) {
190
190
  structuredContent: structured ? value : { result: value ?? null },
191
191
  };
192
192
  }
193
+ /**
194
+ * Why a presented bearer token was not minted for THIS endpoint, or `null` when there is
195
+ * nothing here to refuse (#1619).
196
+ *
197
+ * RFC 8707 and the MCP authorization spec both require a resource server to accept only
198
+ * tokens issued for it: `aud` must name its own resource identifier. Without the check, a
199
+ * token a client obtained for vertical B's endpoint works at vertical A's whenever the two
200
+ * share an issuer, as every vertical on one team auth-server does. That is a confused
201
+ * deputy. The same goes for an `id_token` presented as a bearer, whose `aud` is the client
202
+ * it was minted for rather than any resource.
203
+ *
204
+ * **It can only refuse.** The claim is read before the vertical's resolver runs and without
205
+ * checking the signature, because verification belongs to the resolver and this mount has
206
+ * no keys. That is safe because both have to pass. A forged token with the right `aud` gets
207
+ * through here and is refused by the resolver. A genuine token with the wrong `aud` is
208
+ * refused here. Nothing is ever admitted on this check alone.
209
+ *
210
+ * Two shapes get `null`, meaning they are the resolver's to judge. No bearer at all (a
211
+ * cookie session, or nobody, which the resolver answers with a 401). And a bearer that is
212
+ * not a JWS, which carries no readable `aud`: its verifier (introspection) is what must
213
+ * judge its audience. No resolver in this repo accepts an opaque token today.
214
+ */
215
+ function audienceRefusal(authorization, resource) {
216
+ if (!authorization?.toLowerCase().startsWith('bearer '))
217
+ return null;
218
+ const segments = authorization.slice(7).trim().split('.');
219
+ if (segments.length !== 3)
220
+ return null;
221
+ let claims;
222
+ try {
223
+ const b64 = segments[1].replace(/-/g, '+').replace(/_/g, '/');
224
+ const bytes = Uint8Array.from(atob(b64.padEnd(b64.length + ((4 - (b64.length % 4)) % 4), '=')), (ch) => ch.charCodeAt(0));
225
+ claims = JSON.parse(new TextDecoder().decode(bytes));
226
+ }
227
+ catch {
228
+ return null; // not a JWS payload, so not a token whose audience can be read here
229
+ }
230
+ if (claims === null || typeof claims !== 'object')
231
+ return null;
232
+ const aud = claims.aud;
233
+ const audiences = typeof aud === 'string' ? [aud] : Array.isArray(aud) ? aud : [];
234
+ // The reason names only this endpoint. The token's own claims are never echoed back.
235
+ return audiences.includes(resource) ? null : `this token was not issued for ${resource}`;
236
+ }
193
237
  /** A refusal the AGENT should read and adapt to, rather than a transport failure. */
194
238
  function toolError(message) {
195
239
  return { content: [{ type: 'text', text: message }], isError: true };
@@ -226,7 +270,7 @@ export function mountMcp(
226
270
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
227
271
  app, operations, resolveStub, options = {}) {
228
272
  const tools = mcpToolsOf(operations);
229
- const path = options.path ?? `${options.basePath ?? '/api'}/mcp`;
273
+ const path = options.path ?? mcpEndpointPath(options.basePath);
230
274
  const wellKnown = `/.well-known/oauth-protected-resource${path}`;
231
275
  const byName = new Map(tools.map((t) => [t.name, t]));
232
276
  const serverInfo = {
@@ -329,6 +373,14 @@ app, operations, resolveStub, options = {}) {
329
373
  }
330
374
  };
331
375
  const pr = options.protectedResource;
376
+ /**
377
+ * This endpoint's resource identifier, as a client reached it. It is ONE computation for
378
+ * the three places that need it: the document below publishes it, a client requests a
379
+ * token for exactly that string, and the audience check holds the token to it. It is
380
+ * computed per request because a vertical answering on several hostnames is a different
381
+ * resource on each.
382
+ */
383
+ const resourceFor = (c) => pr?.resource ?? mcpResourceOf(new URL(c.req.url).origin, path);
332
384
  /**
333
385
  * The `WWW-Authenticate` challenge a 401 from this endpoint carries.
334
386
  *
@@ -337,20 +389,17 @@ app, operations, resolveStub, options = {}) {
337
389
  * actually serve the document, because a challenge pointing at a 404 is worse than a
338
390
  * challenge pointing nowhere.
339
391
  */
340
- const challengeFor = (c) => {
341
- if (!pr)
342
- return 'Bearer';
343
- const url = new URL(c.req.url);
344
- return `Bearer resource_metadata="${url.origin}${wellKnown}"`;
392
+ const challengeFor = (c, ...params) => {
393
+ const all = [...(pr ? [`resource_metadata="${new URL(c.req.url).origin}${wellKnown}"`] : []), ...params];
394
+ return all.length > 0 ? `Bearer ${all.join(', ')}` : 'Bearer';
345
395
  };
346
396
  if (pr) {
347
397
  const document = async (c) => {
348
398
  const servers = typeof pr.authorizationServers === 'function'
349
399
  ? await pr.authorizationServers(c)
350
400
  : pr.authorizationServers;
351
- const origin = new URL(c.req.url).origin;
352
401
  return c.json({
353
- resource: pr.resource ?? `${origin}${path}`,
402
+ resource: resourceFor(c),
354
403
  // Omitted rather than empty when nothing is configured: a client reads an empty
355
404
  // list as "this resource has no issuer", which is a different claim from "this
356
405
  // install has not been configured yet" and sends it down a wrong path.
@@ -391,6 +440,20 @@ app, operations, resolveStub, options = {}) {
391
440
  const messages = Array.isArray(body) ? body : [body];
392
441
  if (messages.length === 0)
393
442
  return c.json(rpcError(null, -32600, 'Invalid Request'), 400);
443
+ /**
444
+ * A token minted for some other audience is refused BEFORE the resolver, so a
445
+ * resolver that verifies only the signature and the issuer cannot let it through. See
446
+ * `audienceRefusal` for why this can only refuse. It is the RFC 6750 `invalid_token`
447
+ * answer: the client holds a token, just not one for this endpoint, and the challenge
448
+ * it gets names the document that says which resource to ask for.
449
+ */
450
+ const refusal = audienceRefusal(c.req.header('authorization'), resourceFor(c));
451
+ if (refusal) {
452
+ const res = problemResponse(c, new HTTPException(401, { message: refusal }));
453
+ const challenged = new Response(res.body, res);
454
+ challenged.headers.set('WWW-Authenticate', challengeFor(c, 'error="invalid_token"', `error_description="${refusal}"`));
455
+ return challenged;
456
+ }
394
457
  const replies = [];
395
458
  try {
396
459
  /**
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/vertical-host",
3
- "version": "0.114.0",
3
+ "version": "0.117.0",
4
4
  "description": "The platform's /internal/* surface + error envelope, authored once — mount it in a vertical worker instead of re-copying the control-plane contract",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -29,13 +29,15 @@
29
29
  "ai": "7.0.62",
30
30
  "hono": "^4.6.0",
31
31
  "workers-ai-provider": "^4.0.0",
32
- "@substrat-run/contracts": "^0.114.0",
33
- "@substrat-run/model-providers": "^0.5.4",
34
- "@substrat-run/kernel": "^0.114.0"
32
+ "@substrat-run/contracts": "^0.117.0",
33
+ "@substrat-run/kernel": "^0.117.0",
34
+ "@substrat-run/model-providers": "^0.5.7"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^7.0.0",
38
- "vitest": "^3.2.7"
38
+ "vitest": "^3.2.7",
39
+ "@substrat-run/adapter-sqlite": "^0.117.0",
40
+ "@substrat-run/contract-tests": "^0.117.0"
39
41
  },
40
42
  "publishConfig": {
41
43
  "access": "public"