@kya-os/mcp-i-cloudflare 1.11.1 → 1.12.1
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/agent.d.ts.map +1 -1
- package/dist/agent.js +2 -1
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +8 -4
- package/dist/app.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/delegation-http/anchor-do.d.ts.map +1 -1
- package/dist/delegation-http/anchor-do.js +48 -3
- package/dist/delegation-http/anchor-do.js.map +1 -1
- package/dist/delegation-http/anchor-registration-validate.d.ts +57 -0
- package/dist/delegation-http/anchor-registration-validate.d.ts.map +1 -0
- package/dist/delegation-http/anchor-registration-validate.js +182 -0
- package/dist/delegation-http/anchor-registration-validate.js.map +1 -0
- package/dist/delegation-http/anchor-registration.d.ts +62 -0
- package/dist/delegation-http/anchor-registration.d.ts.map +1 -0
- package/dist/delegation-http/anchor-registration.js +247 -0
- package/dist/delegation-http/anchor-registration.js.map +1 -0
- package/dist/delegation-http/consent-anchor-bridge.d.ts.map +1 -1
- package/dist/delegation-http/consent-anchor-bridge.js +47 -7
- package/dist/delegation-http/consent-anchor-bridge.js.map +1 -1
- package/dist/delegation-http/constants.d.ts +8 -0
- package/dist/delegation-http/constants.d.ts.map +1 -1
- package/dist/delegation-http/constants.js +8 -0
- package/dist/delegation-http/constants.js.map +1 -1
- package/dist/delegation-http/register.d.ts +9 -2
- package/dist/delegation-http/register.d.ts.map +1 -1
- package/dist/delegation-http/register.js +23 -3
- package/dist/delegation-http/register.js.map +1 -1
- package/dist/delegation-http/registrar-auth.d.ts +24 -0
- package/dist/delegation-http/registrar-auth.d.ts.map +1 -0
- package/dist/delegation-http/registrar-auth.js +61 -0
- package/dist/delegation-http/registrar-auth.js.map +1 -0
- package/dist/delegation-http/types.d.ts +21 -0
- package/dist/delegation-http/types.d.ts.map +1 -1
- package/dist/delegation-http/well-known-capability.d.ts +11 -4
- package/dist/delegation-http/well-known-capability.d.ts.map +1 -1
- package/dist/delegation-http/well-known-capability.js +12 -4
- package/dist/delegation-http/well-known-capability.js.map +1 -1
- package/dist/helpers/env-mapper.d.ts.map +1 -1
- package/dist/helpers/env-mapper.js +6 -0
- package/dist/helpers/env-mapper.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/services/delegation.service.d.ts.map +1 -1
- package/dist/services/delegation.service.js +7 -0
- package/dist/services/delegation.service.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* draft-kya-http-02 delegation layer — external anchor registration
|
|
3
|
+
* (`POST /api/v1/bouncer/sessions`).
|
|
4
|
+
*
|
|
5
|
+
* The cross-resource authorization-host surface: an external PEP in the same
|
|
6
|
+
* project (checkpoint's gateway `registration-client.ts`, the .NET
|
|
7
|
+
* `DelegationAnchorRegistrar`) provisions a pickup anchor on THIS worker for a
|
|
8
|
+
* challenge the worker didn't issue, so the §8.1 challenge that PEP emits can
|
|
9
|
+
* point `consent_uri`/`pickup_uri` at this deployment — no reverse proxy. Path
|
|
10
|
+
* and request/response shapes are the EXACT contract checkpoint's own bouncer
|
|
11
|
+
* sessions route serves (frozen by the vendored `registration.request.json` /
|
|
12
|
+
* `registration.response.json` fixtures), so pointing an existing registrar at
|
|
13
|
+
* a different base URL is the whole integration. Auth lives in
|
|
14
|
+
* `registrar-auth.ts` (the deployment's own `AGENTSHIELD_API_KEY` as Bearer).
|
|
15
|
+
*
|
|
16
|
+
* Semantics mirror checkpoint's route: idempotent first-write-wins per sid
|
|
17
|
+
* (re-registering a live sid returns 200 echoing the ORIGINAL anchor's scopes;
|
|
18
|
+
* a fresh sid returns 201). A non-`kya-` session_id maps to a deterministic
|
|
19
|
+
* `kya-` sid returned in `data.session_id` — the .NET client adopts the
|
|
20
|
+
* response sid; the gateway client already generates `kya-` sids.
|
|
21
|
+
*
|
|
22
|
+
* @module @kya-os/mcp-i-cloudflare/delegation-http/anchor-registration
|
|
23
|
+
*/
|
|
24
|
+
import type { CloudflareEnv } from "../types";
|
|
25
|
+
import type { HttpChallengeConfig } from "../config";
|
|
26
|
+
import type { CloudflareProofGenerator } from "../proof-generator";
|
|
27
|
+
import type { getAnchorStub } from "./anchor-routing";
|
|
28
|
+
/** Minimal view of the Hono context this handler needs (avoids an `any` dependency). */
|
|
29
|
+
interface RegistrationRequestContext {
|
|
30
|
+
req: {
|
|
31
|
+
header(name: string): string | undefined;
|
|
32
|
+
url: string;
|
|
33
|
+
raw: Request;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
interface RegistrationDeps {
|
|
37
|
+
getAnchorStub: typeof getAnchorStub;
|
|
38
|
+
proofGenerator: () => Promise<CloudflareProofGenerator>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Whether this deployment serves the anchor-registration route: the layer is ON,
|
|
42
|
+
* the ops kill switch hasn't disabled it, and the registrar bearer
|
|
43
|
+
* (`AGENTSHIELD_API_KEY`) is configured. Single source of truth for the route
|
|
44
|
+
* gate AND the well-known capability advertisement.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isAnchorRegistrationEnabled(cfg: Required<HttpChallengeConfig> | null, env: CloudflareEnv): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Map a registrar-chosen session_id to the worker's anchor-sid namespace. A
|
|
49
|
+
* conforming `kya-` sid (what the gateway and this package both generate) is
|
|
50
|
+
* used verbatim; anything else derives a deterministic `kya-` sid so repeated
|
|
51
|
+
* registrations of the same session still reuse one anchor. The response's
|
|
52
|
+
* `data.session_id` carries the result — the authoritative sid for callers.
|
|
53
|
+
*/
|
|
54
|
+
export declare function deriveRegistrationSid(sessionId: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Handle `POST /api/v1/bouncer/sessions`. The route gate
|
|
57
|
+
* (`isAnchorRegistrationEnabled` + layer flag) lives in `register.ts`; by the
|
|
58
|
+
* time this runs the layer is ON and a registrar bearer is configured.
|
|
59
|
+
*/
|
|
60
|
+
export declare function handleAnchorRegistration(c: RegistrationRequestContext, env: CloudflareEnv, cfg: Required<HttpChallengeConfig>, deps: RegistrationDeps): Promise<Response>;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=anchor-registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor-registration.d.ts","sourceRoot":"","sources":["../../src/delegation-http/anchor-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAatD,wFAAwF;AACxF,UAAU,0BAA0B;IAClC,GAAG,EAAE;QACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACzC,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;CACH;AASD,UAAU,gBAAgB;IACxB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACzD;AAkBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,IAAI,EACzC,GAAG,EAAE,aAAa,GACjB,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/D;AAgHD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,CAAC,EAAE,0BAA0B,EAC7B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAClC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CA0InB"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* draft-kya-http-02 delegation layer — external anchor registration
|
|
3
|
+
* (`POST /api/v1/bouncer/sessions`).
|
|
4
|
+
*
|
|
5
|
+
* The cross-resource authorization-host surface: an external PEP in the same
|
|
6
|
+
* project (checkpoint's gateway `registration-client.ts`, the .NET
|
|
7
|
+
* `DelegationAnchorRegistrar`) provisions a pickup anchor on THIS worker for a
|
|
8
|
+
* challenge the worker didn't issue, so the §8.1 challenge that PEP emits can
|
|
9
|
+
* point `consent_uri`/`pickup_uri` at this deployment — no reverse proxy. Path
|
|
10
|
+
* and request/response shapes are the EXACT contract checkpoint's own bouncer
|
|
11
|
+
* sessions route serves (frozen by the vendored `registration.request.json` /
|
|
12
|
+
* `registration.response.json` fixtures), so pointing an existing registrar at
|
|
13
|
+
* a different base URL is the whole integration. Auth lives in
|
|
14
|
+
* `registrar-auth.ts` (the deployment's own `AGENTSHIELD_API_KEY` as Bearer).
|
|
15
|
+
*
|
|
16
|
+
* Semantics mirror checkpoint's route: idempotent first-write-wins per sid
|
|
17
|
+
* (re-registering a live sid returns 200 echoing the ORIGINAL anchor's scopes;
|
|
18
|
+
* a fresh sid returns 201). A non-`kya-` session_id maps to a deterministic
|
|
19
|
+
* `kya-` sid returned in `data.session_id` — the .NET client adopts the
|
|
20
|
+
* response sid; the gateway client already generates `kya-` sids.
|
|
21
|
+
*
|
|
22
|
+
* @module @kya-os/mcp-i-cloudflare/delegation-http/anchor-registration
|
|
23
|
+
*/
|
|
24
|
+
import { INTERNAL_PICKUP_CREATE } from "./constants";
|
|
25
|
+
import { isAnchorSid } from "./sid";
|
|
26
|
+
import { sha256Hex } from "./hash";
|
|
27
|
+
import { buildConsentUri, signChallengeProof } from "./challenge";
|
|
28
|
+
import { registrarAuthorized, registrationRateLimited } from "./registrar-auth";
|
|
29
|
+
import { validateRegistrationBody, } from "./anchor-registration-validate";
|
|
30
|
+
/** Internal origin for durable-object stub fetches — the DO routes by pathname only. */
|
|
31
|
+
const DO_INTERNAL_ORIGIN = "https://do.internal";
|
|
32
|
+
/**
|
|
33
|
+
* Whether this deployment serves the anchor-registration route: the layer is ON,
|
|
34
|
+
* the ops kill switch hasn't disabled it, and the registrar bearer
|
|
35
|
+
* (`AGENTSHIELD_API_KEY`) is configured. Single source of truth for the route
|
|
36
|
+
* gate AND the well-known capability advertisement.
|
|
37
|
+
*/
|
|
38
|
+
export function isAnchorRegistrationEnabled(cfg, env) {
|
|
39
|
+
return (cfg !== null &&
|
|
40
|
+
cfg.remoteAnchorRegistration &&
|
|
41
|
+
typeof env.AGENTSHIELD_API_KEY === "string" &&
|
|
42
|
+
env.AGENTSHIELD_API_KEY.length > 0 &&
|
|
43
|
+
// No anchor store, no registration surface: getAnchorStub throws on an
|
|
44
|
+
// unbound MCP_OBJECT, so an unbound deployment must 404 like every other
|
|
45
|
+
// unprovisioned state instead of 500ing per request.
|
|
46
|
+
env.MCP_OBJECT !== undefined);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Map a registrar-chosen session_id to the worker's anchor-sid namespace. A
|
|
50
|
+
* conforming `kya-` sid (what the gateway and this package both generate) is
|
|
51
|
+
* used verbatim; anything else derives a deterministic `kya-` sid so repeated
|
|
52
|
+
* registrations of the same session still reuse one anchor. The response's
|
|
53
|
+
* `data.session_id` carries the result — the authoritative sid for callers.
|
|
54
|
+
*/
|
|
55
|
+
export function deriveRegistrationSid(sessionId) {
|
|
56
|
+
if (isAnchorSid(sessionId))
|
|
57
|
+
return sessionId;
|
|
58
|
+
return `kya-${sha256Hex(sessionId).slice(0, 32)}`;
|
|
59
|
+
}
|
|
60
|
+
/** JSON error envelope matching checkpoint's `{ success: false, error: {…} }`. */
|
|
61
|
+
function errorResponse(status, code, message, details) {
|
|
62
|
+
return new Response(JSON.stringify({
|
|
63
|
+
success: false,
|
|
64
|
+
error: { code, message, ...(details ? { details } : {}) },
|
|
65
|
+
}), {
|
|
66
|
+
status,
|
|
67
|
+
headers: {
|
|
68
|
+
"Content-Type": "application/json",
|
|
69
|
+
"Cache-Control": "no-store",
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** POST a JSON body to one of the anchor's `/_internal/pickup/*` routes. */
|
|
74
|
+
async function callAnchor(env, deps, sid, internalPath, body) {
|
|
75
|
+
const stub = deps.getAnchorStub(env, sid);
|
|
76
|
+
const response = await stub.fetch(new URL(internalPath, DO_INTERNAL_ORIGIN).toString(), {
|
|
77
|
+
method: "POST",
|
|
78
|
+
headers: { "Content-Type": "application/json" },
|
|
79
|
+
body: JSON.stringify(body),
|
|
80
|
+
});
|
|
81
|
+
return response;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Ensure a live anchor exists for `sid`, first-write-wins: a live anchor is
|
|
85
|
+
* reused as-is (its stored values are authoritative, mirroring checkpoint's
|
|
86
|
+
* COALESCE-on-conflict); otherwise create one from this registration, honoring
|
|
87
|
+
* a `challenge_pin` ONLY when unverified keyid holders are enabled — a pinned
|
|
88
|
+
* keyid the pickup surface would reject (W2) must not brick the anchor.
|
|
89
|
+
*
|
|
90
|
+
* ONE atomic round-trip: the DO input gate serializes creates, and the create
|
|
91
|
+
* response body carries both the `reused` discriminator (two racing
|
|
92
|
+
* registrations get exactly one fresh 201 and one reused 200 — checkpoint
|
|
93
|
+
* status parity under concurrency) and the authoritative record snapshot to
|
|
94
|
+
* echo — there is no create→read-back window for the anchor to expire in.
|
|
95
|
+
* Stub failures (redeployed/evicted DOs, transport errors) map to the
|
|
96
|
+
* contract's 502 envelope instead of escaping as off-contract 500s.
|
|
97
|
+
*/
|
|
98
|
+
async function ensureAnchor(env, cfg, deps, sid, challenge, session) {
|
|
99
|
+
const pin = challenge.challengePin && cfg.allowUnverifiedKeyidHolders
|
|
100
|
+
? { type: "keyid", valueSha256: sha256Hex(challenge.challengePin) }
|
|
101
|
+
: undefined;
|
|
102
|
+
const anchorUnavailable = {
|
|
103
|
+
error: errorResponse(502, "anchor_unavailable", "The anchor store did not accept the registration"),
|
|
104
|
+
};
|
|
105
|
+
let created;
|
|
106
|
+
let body;
|
|
107
|
+
try {
|
|
108
|
+
created = await callAnchor(env, deps, sid, INTERNAL_PICKUP_CREATE, {
|
|
109
|
+
sid,
|
|
110
|
+
requiredScopes: challenge.requiredScopes,
|
|
111
|
+
pollIntervalS: cfg.pollIntervalS,
|
|
112
|
+
anchorTtlS: cfg.anchorTtlS,
|
|
113
|
+
delegationExpiresInS: cfg.delegationExpiresInS,
|
|
114
|
+
agentDid: challenge.detectedAgentDid ?? session.agentDid,
|
|
115
|
+
registeredAtMs: session.registeredAtMs,
|
|
116
|
+
// Cross-resource claim inputs (drive the minted VC's aud / server_did —
|
|
117
|
+
// see consent-anchor-bridge's withCrossResourceClaims).
|
|
118
|
+
...(challenge.audience ? { audience: challenge.audience } : {}),
|
|
119
|
+
...(session.serverDid ? { serverDid: session.serverDid } : {}),
|
|
120
|
+
...(pin ? { pin } : {}),
|
|
121
|
+
});
|
|
122
|
+
if (created.status !== 201)
|
|
123
|
+
return anchorUnavailable;
|
|
124
|
+
body = (await created.json());
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.warn(`[kya-http] anchor create failed (sid=${sid}):`, error instanceof Error ? error.message : String(error));
|
|
128
|
+
return anchorUnavailable;
|
|
129
|
+
}
|
|
130
|
+
if (!body.anchor || !Array.isArray(body.anchor.requiredScopes)) {
|
|
131
|
+
return anchorUnavailable;
|
|
132
|
+
}
|
|
133
|
+
return { isNew: body.reused !== true, snapshot: body.anchor };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Handle `POST /api/v1/bouncer/sessions`. The route gate
|
|
137
|
+
* (`isAnchorRegistrationEnabled` + layer flag) lives in `register.ts`; by the
|
|
138
|
+
* time this runs the layer is ON and a registrar bearer is configured.
|
|
139
|
+
*/
|
|
140
|
+
export async function handleAnchorRegistration(c, env, cfg, deps) {
|
|
141
|
+
// AuthN first, reading only the header — never the body (checkpoint parity).
|
|
142
|
+
if (!registrarAuthorized(env, c.req.header("Authorization"))) {
|
|
143
|
+
return errorResponse(401, "unauthorized", "Invalid or missing API key");
|
|
144
|
+
}
|
|
145
|
+
if (registrationRateLimited(Date.now())) {
|
|
146
|
+
return errorResponse(429, "rate_limited", "Too many anchor registrations; retry shortly");
|
|
147
|
+
}
|
|
148
|
+
let raw;
|
|
149
|
+
try {
|
|
150
|
+
raw = await c.req.raw.clone().json();
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return errorResponse(400, "invalid_request", "Invalid request body", [
|
|
154
|
+
{ path: "", message: "body must be JSON" },
|
|
155
|
+
]);
|
|
156
|
+
}
|
|
157
|
+
const validated = validateRegistrationBody(raw);
|
|
158
|
+
if (!validated.ok) {
|
|
159
|
+
return errorResponse(400, "invalid_request", "Invalid request body", validated.issues);
|
|
160
|
+
}
|
|
161
|
+
// This surface exists ONLY to anchor challenges (mirrors checkpoint's
|
|
162
|
+
// gateway-service branch): a non-challenge session registration belongs to
|
|
163
|
+
// checkpoint's own route, which owns the sessions table this worker lacks.
|
|
164
|
+
const { challenge } = validated.input;
|
|
165
|
+
if (!challenge) {
|
|
166
|
+
return errorResponse(401, "unauthorized", "This endpoint only accepts challenge registration");
|
|
167
|
+
}
|
|
168
|
+
const sid = deriveRegistrationSid(validated.input.sessionId);
|
|
169
|
+
// Loud dead-end (review P1): without challenge.audience the minted credential
|
|
170
|
+
// carries no aud and cannot pass an org-pinned §4.3 audience gate — a failure
|
|
171
|
+
// that would otherwise surface only POST-consent, at the registrar's PEP,
|
|
172
|
+
// looking like the PEP's fault. Registration still proceeds (self-verifying
|
|
173
|
+
// registrars and future flows are legitimate), but the gap is diagnosable
|
|
174
|
+
// here and in the response's cross_resource flag.
|
|
175
|
+
if (!challenge.audience) {
|
|
176
|
+
console.warn(`[kya-http] external registration without challenge.audience (sid=${sid}): ` +
|
|
177
|
+
`the minted credential will FAIL an org-pinned §4.3 audience gate; ` +
|
|
178
|
+
`cross-resource use requires the registrar to send challenge.audience`);
|
|
179
|
+
}
|
|
180
|
+
const anchor = await ensureAnchor(env, cfg, deps, sid, challenge, {
|
|
181
|
+
agentDid: validated.input.agentDid,
|
|
182
|
+
serverDid: validated.input.serverDid,
|
|
183
|
+
registeredAtMs: validated.input.createdAt,
|
|
184
|
+
});
|
|
185
|
+
if ("error" in anchor)
|
|
186
|
+
return anchor.error;
|
|
187
|
+
// W4: pin the advertised host to the configured realm when set, so a
|
|
188
|
+
// Host-header-reflecting request cannot mint consent/pickup URIs (and a
|
|
189
|
+
// signed proof over them) pointing at an attacker host.
|
|
190
|
+
const host = cfg.realm || new URL(c.req.url).host;
|
|
191
|
+
const verdict = {
|
|
192
|
+
requiredScopes: anchor.snapshot.requiredScopes,
|
|
193
|
+
authorizationHost: host,
|
|
194
|
+
realm: host,
|
|
195
|
+
sid,
|
|
196
|
+
pollIntervalS: cfg.pollIntervalS,
|
|
197
|
+
};
|
|
198
|
+
const consentUri = buildConsentUri(verdict);
|
|
199
|
+
let challengeProof;
|
|
200
|
+
try {
|
|
201
|
+
challengeProof = await signChallengeProof(await deps.proofGenerator(), {
|
|
202
|
+
sid,
|
|
203
|
+
consent_uri: consentUri,
|
|
204
|
+
required_scopes: anchor.snapshot.requiredScopes,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
// The anchor persisted but is unreachable without a proof-bearing response;
|
|
209
|
+
// it expires via its ≤600s TTL (same orphan rationale as the challenge
|
|
210
|
+
// emitter's signing-failure path).
|
|
211
|
+
console.warn(`[kya-http] registration challenge_proof signing failed (sid=${sid}):`, error instanceof Error ? error.message : String(error));
|
|
212
|
+
return errorResponse(502, "proof_unavailable", "The challenge proof could not be signed");
|
|
213
|
+
}
|
|
214
|
+
// Persisted-originals parity (checkpoint echoes the stored row): a reused
|
|
215
|
+
// anchor echoes the FIRST registration's created_at/issued_at, not this
|
|
216
|
+
// request's. The challenge_proof itself is re-signed per response over the
|
|
217
|
+
// stored values, so proof/consent scope desync remains impossible.
|
|
218
|
+
const createdAtMs = anchor.snapshot.registeredAtMs ?? validated.input.createdAt;
|
|
219
|
+
const issuedAtMs = anchor.snapshot.issuedAtMs ?? Date.now();
|
|
220
|
+
return new Response(JSON.stringify({
|
|
221
|
+
success: true,
|
|
222
|
+
data: {
|
|
223
|
+
session_id: sid,
|
|
224
|
+
registered: true,
|
|
225
|
+
created_at: new Date(createdAtMs).toISOString(),
|
|
226
|
+
challenge: {
|
|
227
|
+
consent_uri: consentUri,
|
|
228
|
+
challenge_proof: challengeProof,
|
|
229
|
+
required_scopes: anchor.snapshot.requiredScopes,
|
|
230
|
+
issued_at: issuedAtMs,
|
|
231
|
+
// ADDITIVE diagnostic (not in the frozen conformance key set, ignored
|
|
232
|
+
// by both existing parsers): whether the minted credential will carry
|
|
233
|
+
// the §4.3 cross-resource claims. False means no audience was
|
|
234
|
+
// registered — the credential only self-verifies at this worker.
|
|
235
|
+
cross_resource: typeof anchor.snapshot.audience === "string",
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
}), {
|
|
239
|
+
status: anchor.isNew ? 201 : 200,
|
|
240
|
+
headers: {
|
|
241
|
+
"Content-Type": "application/json",
|
|
242
|
+
// Checkpoint's route parity (its success responses are private/no-cache).
|
|
243
|
+
"Cache-Control": "private, no-cache",
|
|
244
|
+
},
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=anchor-registration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor-registration.js","sourceRoot":"","sources":["../../src/delegation-http/anchor-registration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-anchor-bridge.d.ts","sourceRoot":"","sources":["../../src/delegation-http/consent-anchor-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"consent-anchor-bridge.d.ts","sourceRoot":"","sources":["../../src/delegation-http/consent-anchor-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AA6arD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAClC,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACjC,OAAO,CAAC,QAAQ,CAAC,CAyEnB"}
|
|
@@ -216,6 +216,37 @@ function isTestConsentMode(env) {
|
|
|
216
216
|
return environment === "development";
|
|
217
217
|
}
|
|
218
218
|
// ── VC-JWT minting (same primitive chain as consent.service.issueDelegationVC) ──
|
|
219
|
+
/**
|
|
220
|
+
* draft-kya-http-02 §4.3 claims for a CROSS-RESOURCE delegation. An anchor
|
|
221
|
+
* registered by an external PEP carries the resource org's DID; the minted
|
|
222
|
+
* VC-JWT must then present exactly what checkpoint's claim gate
|
|
223
|
+
* (`delegation-claims.ts` `checkDelegationClaims`) pins:
|
|
224
|
+
* - `aud` === the resource org's DID (`kyaos/audience-mismatch` otherwise) —
|
|
225
|
+
* the ORG, not the resource URL: scope remains the per-resource boundary,
|
|
226
|
+
* and per-resource audience would require rewriting the verifier's
|
|
227
|
+
* audience/trust model;
|
|
228
|
+
* - `sid` — the anchor sid, required non-empty (`kyaos/session-mismatch`);
|
|
229
|
+
* - `server_did` — the challenged resource's DID, attribution only (nothing
|
|
230
|
+
* verifies it today; it gives audit trails a per-resource record and a
|
|
231
|
+
* re-mint-free path to tighten audience later).
|
|
232
|
+
*
|
|
233
|
+
* A SELF-ISSUED anchor has no `audience`, so this returns the unsigned parts'
|
|
234
|
+
* original `signingInput` untouched — the self-gating VC-JWT stays
|
|
235
|
+
* byte-identical (the regression guard). `encodedHeader` is reused verbatim so
|
|
236
|
+
* the only re-encoded segment is the payload actually being extended (via this
|
|
237
|
+
* module's own base64url helper — the CSRF token codec below).
|
|
238
|
+
*/
|
|
239
|
+
function withCrossResourceClaims(unsigned, info, sid) {
|
|
240
|
+
if (!info.audience)
|
|
241
|
+
return unsigned.signingInput;
|
|
242
|
+
const payload = {
|
|
243
|
+
...unsigned.payload,
|
|
244
|
+
aud: info.audience,
|
|
245
|
+
sid,
|
|
246
|
+
...(info.serverDid ? { server_did: info.serverDid } : {}),
|
|
247
|
+
};
|
|
248
|
+
return `${unsigned.encodedHeader}.${base64UrlEncodeString(JSON.stringify(payload))}`;
|
|
249
|
+
}
|
|
219
250
|
/**
|
|
220
251
|
* Mint a delegation VC-JWT for an approved anchor, wrap it as a VC, and sign it —
|
|
221
252
|
* the primitive chain `consent.service.ts` uses, called here directly (the service
|
|
@@ -247,12 +278,14 @@ async function mintDelegationVcJwt(env, sid, info, expiresInS) {
|
|
|
247
278
|
keyId = `${issuerDid}#${didKeyFragment(issuerDid)}`;
|
|
248
279
|
signingPrivateKey = rawKeyPair.privateKey;
|
|
249
280
|
}
|
|
250
|
-
// Subject (the agent the delegation is granted to).
|
|
251
|
-
//
|
|
252
|
-
//
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
|
|
281
|
+
// Subject (the agent the delegation is granted to). An externally-registered
|
|
282
|
+
// anchor carries the registering PEP's agent DID (verified `detected_agent_did`
|
|
283
|
+
// when present, else the session `agent_did` — possibly the anonymous-principal
|
|
284
|
+
// sentinel); a self-issued anchor does not, so fall back to the worker's
|
|
285
|
+
// configured agent DID when present (the same value as the issuer when an
|
|
286
|
+
// identity is configured, and an independent ephemeral holder DID when it
|
|
287
|
+
// isn't — both were already true of the subject's own fallback before this).
|
|
288
|
+
const agentDid = info.agentDid || env.MCP_IDENTITY_AGENT_DID || issuerDid;
|
|
256
289
|
const nowS = Math.floor(Date.now() / 1000);
|
|
257
290
|
const delegation = {
|
|
258
291
|
id: `urn:uuid:${sid}`,
|
|
@@ -263,6 +296,10 @@ async function mintDelegationVcJwt(env, sid, info, expiresInS) {
|
|
|
263
296
|
scopes: info.requiredScopes,
|
|
264
297
|
notBefore: nowS,
|
|
265
298
|
notAfter: nowS + expiresInS,
|
|
299
|
+
// §11.7 outer===inner audience invariant (checkpoint's own mints bind the
|
|
300
|
+
// audience in BOTH the JWT aud and constraints.audience): set the inner
|
|
301
|
+
// half for cross-resource anchors so verifiers reading either slot agree.
|
|
302
|
+
...(info.audience ? { audience: info.audience } : {}),
|
|
266
303
|
},
|
|
267
304
|
signature: "",
|
|
268
305
|
status: "active",
|
|
@@ -273,7 +310,10 @@ async function mintDelegationVcJwt(env, sid, info, expiresInS) {
|
|
|
273
310
|
issuanceDate: new Date().toISOString(),
|
|
274
311
|
});
|
|
275
312
|
const vcWithIssuer = { ...unsignedVC, issuer: issuerDid };
|
|
276
|
-
const
|
|
313
|
+
const unsigned = createUnsignedVCJWT(vcWithIssuer, { keyId });
|
|
314
|
+
// Cross-resource anchors extend the payload (aud/sid/server_did) BEFORE
|
|
315
|
+
// signing; self-issued anchors sign the original input, byte-identical.
|
|
316
|
+
const signingInput = withCrossResourceClaims(unsigned, info, sid);
|
|
277
317
|
const signatureBytes = await cryptoProvider.sign(new TextEncoder().encode(signingInput), signingPrivateKey);
|
|
278
318
|
const signature = base64urlEncodeFromBytes(signatureBytes);
|
|
279
319
|
return completeVCJWT(signingInput, signature);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-anchor-bridge.js","sourceRoot":"","sources":["../../src/delegation-http/consent-anchor-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consent-anchor-bridge.js","sourceRoot":"","sources":["../../src/delegation-http/consent-anchor-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,14 @@ export declare const PICKUP_ROUTE = "/api/delegation/pickup/:sid";
|
|
|
16
16
|
* falls through with `next()`.
|
|
17
17
|
*/
|
|
18
18
|
export declare const CONSENT_ROUTE = "/consent";
|
|
19
|
+
/**
|
|
20
|
+
* Anchor-registration endpoint — the SAME path and wire contract as checkpoint's
|
|
21
|
+
* bouncer sessions route, so an external PEP that already registers challenge
|
|
22
|
+
* anchors against checkpoint (gateway `registration-client.ts`, .NET
|
|
23
|
+
* `DelegationAnchorRegistrar`) can be pointed at this worker unmodified. Shape is
|
|
24
|
+
* frozen by the vendored `registration.request.json` / `registration.response.json`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const ANCHOR_REGISTRATION_ROUTE = "/api/v1/bouncer/sessions";
|
|
19
27
|
/** Raw pickup-token header for token-path holders (hashed before storage). */
|
|
20
28
|
export declare const PICKUP_TOKEN_HEADER = "X-KYA-Pickup-Token";
|
|
21
29
|
/** Fallback delegation header used when `Authorization` is occupied by an OAuth bearer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/delegation-http/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oFAAoF;AACpF,eAAO,MAAM,YAAY,gCAAgC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,sGASxB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAC7D,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,eAAO,MAAM,oBAAoB,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/delegation-http/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oFAAoF;AACpF,eAAO,MAAM,YAAY,gCAAgC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AAEpE,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,sGASxB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAC7D,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,eAAO,MAAM,oBAAoB,2BAA2B,CAAC"}
|
|
@@ -16,6 +16,14 @@ export const PICKUP_ROUTE = "/api/delegation/pickup/:sid";
|
|
|
16
16
|
* falls through with `next()`.
|
|
17
17
|
*/
|
|
18
18
|
export const CONSENT_ROUTE = "/consent";
|
|
19
|
+
/**
|
|
20
|
+
* Anchor-registration endpoint — the SAME path and wire contract as checkpoint's
|
|
21
|
+
* bouncer sessions route, so an external PEP that already registers challenge
|
|
22
|
+
* anchors against checkpoint (gateway `registration-client.ts`, .NET
|
|
23
|
+
* `DelegationAnchorRegistrar`) can be pointed at this worker unmodified. Shape is
|
|
24
|
+
* frozen by the vendored `registration.request.json` / `registration.response.json`.
|
|
25
|
+
*/
|
|
26
|
+
export const ANCHOR_REGISTRATION_ROUTE = "/api/v1/bouncer/sessions";
|
|
19
27
|
/** Raw pickup-token header for token-path holders (hashed before storage). */
|
|
20
28
|
export const PICKUP_TOKEN_HEADER = "X-KYA-Pickup-Token";
|
|
21
29
|
/** Fallback delegation header used when `Authorization` is occupied by an OAuth bearer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/delegation-http/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO;IACP,KAAK;IACL,aAAa;IACb,YAAY;IACZ,OAAO;IACP,eAAe;IACf,UAAU;IACV,MAAM;CACE,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB,EAAE,8BAA8B;IACrD,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,sBAAsB;IACrC,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,oBAAoB;IACjC,iBAAiB,EAAE,0BAA0B;CACrC,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/delegation-http/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO;IACP,KAAK;IACL,aAAa;IACb,YAAY;IACZ,OAAO;IACP,eAAe;IACf,UAAU;IACV,MAAM;CACE,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB,EAAE,8BAA8B;IACrD,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,sBAAsB;IACrC,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,oBAAoB;IACjC,iBAAiB,EAAE,0BAA0B;CACrC,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC"}
|
|
@@ -11,9 +11,16 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { Hono } from "hono";
|
|
13
13
|
import type { CreateMCPIAppOptions } from "../app";
|
|
14
|
+
import type { CloudflareProofGenerator } from "../proof-generator";
|
|
15
|
+
/** App-provided dependencies for routes that must sign (anchor registration). */
|
|
16
|
+
export interface DelegationHttpRouteDeps {
|
|
17
|
+
/** Lazily build a proof generator bound to the request's env (see app.ts). */
|
|
18
|
+
proofGenerator?: (c: unknown) => Promise<CloudflareProofGenerator>;
|
|
19
|
+
}
|
|
14
20
|
/**
|
|
15
21
|
* Register the kya-http delegation routes (worker-served pickup, anchor consent
|
|
16
|
-
* interception). Call this BEFORE the legacy
|
|
22
|
+
* interception, external anchor registration). Call this BEFORE the legacy
|
|
23
|
+
* `/consent` registrations.
|
|
17
24
|
*/
|
|
18
|
-
export declare function registerDelegationHttpRoutes(app: Hono, options: CreateMCPIAppOptions): void;
|
|
25
|
+
export declare function registerDelegationHttpRoutes(app: Hono, options: CreateMCPIAppOptions, deps?: DelegationHttpRouteDeps): void;
|
|
19
26
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/delegation-http/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,MAAM,CAAC;AAMvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/delegation-http/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,MAAM,CAAC;AAMvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAkBnE,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACpE;AA2BD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,oBAAoB,EAC7B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAmDN"}
|
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { mapPrefixedEnv } from "../helpers/env-mapper";
|
|
13
13
|
import { resolveHttpChallengeConfig } from "../config";
|
|
14
|
-
import { PICKUP_ROUTE, CONSENT_ROUTE } from "./constants";
|
|
14
|
+
import { PICKUP_ROUTE, CONSENT_ROUTE, ANCHOR_REGISTRATION_ROUTE, } from "./constants";
|
|
15
15
|
import { isAnchorSid } from "./sid";
|
|
16
16
|
import { handlePickupGet } from "./pickup-routes";
|
|
17
17
|
import { handleAnchorConsentGet, handleAnchorConsentApprove, } from "./consent-anchor-bridge";
|
|
18
|
+
import { getAnchorStub } from "./anchor-routing";
|
|
19
|
+
import { handleAnchorRegistration, isAnchorRegistrationEnabled, } from "./anchor-registration";
|
|
18
20
|
/**
|
|
19
21
|
* Resolve the request's mapped env and the (flag-gated) http-challenge config.
|
|
20
22
|
* Never throws — a config failure resolves to `cfg: null` (layer OFF) so the legacy
|
|
@@ -37,9 +39,10 @@ c, options) {
|
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
41
|
* Register the kya-http delegation routes (worker-served pickup, anchor consent
|
|
40
|
-
* interception). Call this BEFORE the legacy
|
|
42
|
+
* interception, external anchor registration). Call this BEFORE the legacy
|
|
43
|
+
* `/consent` registrations.
|
|
41
44
|
*/
|
|
42
|
-
export function registerDelegationHttpRoutes(app, options) {
|
|
45
|
+
export function registerDelegationHttpRoutes(app, options, deps) {
|
|
43
46
|
// §8.2 worker-served pickup. New path — when OFF, `next()` yields the app's 404.
|
|
44
47
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
48
|
app.get(PICKUP_ROUTE, async (c, next) => {
|
|
@@ -68,5 +71,22 @@ export function registerDelegationHttpRoutes(app, options) {
|
|
|
68
71
|
return next();
|
|
69
72
|
return handleAnchorConsentApprove(c, sid, env, cfg);
|
|
70
73
|
});
|
|
74
|
+
// External anchor registration (checkpoint's bouncer-sessions wire contract).
|
|
75
|
+
// Serves only when the layer is ON, the ops kill switch hasn't disabled it,
|
|
76
|
+
// the registrar bearer (AGENTSHIELD_API_KEY) is configured, AND the app wired
|
|
77
|
+
// a proof generator; otherwise next() yields the app's 404 — byte-identical
|
|
78
|
+
// to a deployment that predates this surface.
|
|
79
|
+
const proofGenerator = deps?.proofGenerator;
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
81
|
+
app.post(ANCHOR_REGISTRATION_ROUTE, async (c, next) => {
|
|
82
|
+
const { env, cfg } = resolveRequest(c, options);
|
|
83
|
+
if (!cfg || !isAnchorRegistrationEnabled(cfg, env) || !proofGenerator) {
|
|
84
|
+
return next();
|
|
85
|
+
}
|
|
86
|
+
return handleAnchorRegistration(c, env, cfg, {
|
|
87
|
+
getAnchorStub,
|
|
88
|
+
proofGenerator: () => proofGenerator(c),
|
|
89
|
+
});
|
|
90
|
+
});
|
|
71
91
|
}
|
|
72
92
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/delegation-http/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/delegation-http/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAOvD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAQ/B;;;;GAIG;AACH,SAAS,cAAc;AACrB,8DAA8D;AAC9D,CAAM,EACN,OAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS;YAC3B,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAA4B,EAAE,OAAO,CAAC,SAAS,CAAC;YACnE,CAAC,CAAE,CAAC,CAAC,GAAqB,CAAC;QAC7B,MAAM,GAAG,GAAG,0BAA0B,CACpC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAC7B,GAAyC,CAC1C,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;QAChF,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAoB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,GAAS,EACT,OAA6B,EAC7B,IAA8B;IAE9B,iFAAiF;IACjF,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,CAAM,EAAE,IAAU,EAAE,EAAE;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,iFAAiF;IACjF,iEAAiE;IACjE,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAM,EAAE,IAAU,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QAC7C,OAAO,sBAAsB,CAAC,CAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,uEAAuE;IACvE,8DAA8D;IAC9D,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,UAAU,EAAE,KAAK,EAAE,CAAM,EAAE,IAAU,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QAC7C,OAAO,0BAA0B,CAC/B,CAA2B,EAC3B,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;IAC5C,8DAA8D;IAC9D,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAM,EAAE,IAAU,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACtE,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,wBAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;YAC3C,aAAa;YACb,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* draft-kya-http-02 delegation layer — anchor-registration registrar auth.
|
|
3
|
+
*
|
|
4
|
+
* The registration surface authenticates external PEPs with the deployment's
|
|
5
|
+
* own per-project dashboard API key (`AGENTSHIELD_API_KEY`) presented as
|
|
6
|
+
* `Authorization: Bearer …` — the same credential (and header) the .NET
|
|
7
|
+
* `DelegationAnchorRegistrar` already sends to checkpoint's bouncer sessions
|
|
8
|
+
* route, so no new secret is provisioned and no caller changes shape. The raw
|
|
9
|
+
* key is never logged; comparison is constant-time over SHA-256 digests.
|
|
10
|
+
*
|
|
11
|
+
* @module @kya-os/mcp-i-cloudflare/delegation-http/registrar-auth
|
|
12
|
+
*/
|
|
13
|
+
import type { CloudflareEnv } from "../types";
|
|
14
|
+
/**
|
|
15
|
+
* Validate the presented registrar bearer against the deployment's own
|
|
16
|
+
* per-project API key. Digest-then-compare keeps the comparison constant-time
|
|
17
|
+
* and length-independent.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registrarAuthorized(env: CloudflareEnv, authorizationHeader: string | undefined): boolean;
|
|
20
|
+
/** Count one registration attempt; true when the isolate's window is exhausted. */
|
|
21
|
+
export declare function registrationRateLimited(now: number): boolean;
|
|
22
|
+
/** Test seam: reset the per-isolate rate window. */
|
|
23
|
+
export declare function resetRegistrationRateLimiterForTests(): void;
|
|
24
|
+
//# sourceMappingURL=registrar-auth.d.ts.map
|