@kya-os/mcp-i-cloudflare 1.12.4 → 1.13.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/README.md +5 -1
- package/dist/agent.d.ts +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +23 -24
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +10 -5
- package/dist/app.js.map +1 -1
- package/dist/audit/assurance.d.ts +12 -0
- package/dist/audit/assurance.d.ts.map +1 -0
- package/dist/audit/assurance.js +21 -0
- package/dist/audit/assurance.js.map +1 -0
- package/dist/audit/deployment-binding.d.ts +513 -0
- package/dist/audit/deployment-binding.d.ts.map +1 -0
- package/dist/audit/deployment-binding.js +364 -0
- package/dist/audit/deployment-binding.js.map +1 -0
- package/dist/audit/durable-producer.d.ts +151 -0
- package/dist/audit/durable-producer.d.ts.map +1 -0
- package/dist/audit/durable-producer.js +953 -0
- package/dist/audit/durable-producer.js.map +1 -0
- package/dist/audit/verified-recorder-client.d.ts +34 -0
- package/dist/audit/verified-recorder-client.d.ts.map +1 -0
- package/dist/audit/verified-recorder-client.js +192 -0
- package/dist/audit/verified-recorder-client.js.map +1 -0
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/delegation-http/pickup-routes.d.ts.map +1 -1
- package/dist/delegation-http/pickup-routes.js +36 -3
- package/dist/delegation-http/pickup-routes.js.map +1 -1
- package/dist/delegation-http/well-known-capability.d.ts +2 -1
- package/dist/delegation-http/well-known-capability.d.ts.map +1 -1
- package/dist/delegation-http/well-known-capability.js +2 -1
- 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 +25 -0
- package/dist/helpers/env-mapper.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/invoke-tool-handler.d.ts +10 -0
- package/dist/runtime/invoke-tool-handler.d.ts.map +1 -0
- package/dist/runtime/invoke-tool-handler.js +11 -0
- package/dist/runtime/invoke-tool-handler.js.map +1 -0
- package/dist/runtime.d.ts +1 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +72 -72
- package/dist/runtime.js.map +1 -1
- package/dist/services/consent-audit.service.d.ts +3 -10
- package/dist/services/consent-audit.service.d.ts.map +1 -1
- package/dist/services/consent-audit.service.js +44 -77
- package/dist/services/consent-audit.service.js.map +1 -1
- package/dist/services/consent.service.d.ts.map +1 -1
- package/dist/services/consent.service.js +5 -9
- package/dist/services/consent.service.js.map +1 -1
- package/dist/services/proof.service.d.ts.map +1 -1
- package/dist/services/proof.service.js +20 -4
- package/dist/services/proof.service.js.map +1 -1
- package/dist/services/vault-resolver.d.ts +0 -8
- package/dist/services/vault-resolver.d.ts.map +1 -1
- package/dist/services/vault-resolver.js +0 -22
- package/dist/services/vault-resolver.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -5
- package/dist/runtime/audit-logger.d.ts +0 -96
- package/dist/runtime/audit-logger.d.ts.map +0 -1
- package/dist/runtime/audit-logger.js +0 -276
- package/dist/runtime/audit-logger.js.map +0 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { CryptoProviderAuditHasher, WebCryptoEvidenceEncryptor, } from "@kya-os/mcp/audit";
|
|
2
|
+
import { createHmacRuntimeAuditContextFactory, } from "@kya-os/mcp-i-runtime";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { WebCryptoProvider } from "../providers/crypto";
|
|
5
|
+
import { CloudflareAuditProducerBinding, createCloudflareAuditTrail, } from "./durable-producer";
|
|
6
|
+
export const KYA_OS_AUDIT_DISCOVERY_PATH = "/.well-known/kya-os-audit";
|
|
7
|
+
export const KYA_OS_AUDIT_CANARY_PATH = "/_kya/audit/canary";
|
|
8
|
+
const DEPLOYMENT_BINDING_SCHEMA = "https://schema.kya-os.org/v1/protocol/audit/deployment-binding/v1.0.0";
|
|
9
|
+
const PROBE_FORMAT = "org.kya-os.audit.runtime-capabilities.v1";
|
|
10
|
+
const CANARY_EVENT_TYPE = "configuration.changed";
|
|
11
|
+
const auditProfileSchema = z.enum(["AAP-0", "AAP-1", "AAP-2", "AAP-3", "AAP-4"]);
|
|
12
|
+
const deliverySchema = z.enum(["best-effort", "buffered", "required"]);
|
|
13
|
+
const digestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
|
|
14
|
+
const evidenceRefSchema = z.object({
|
|
15
|
+
objectId: z.string().min(1),
|
|
16
|
+
ciphertextDigest: digestSchema,
|
|
17
|
+
plaintextCommitment: digestSchema.optional(),
|
|
18
|
+
mediaType: z.string().min(1),
|
|
19
|
+
size: z.string().regex(/^(0|[1-9][0-9]*)$/),
|
|
20
|
+
encryption: z.object({
|
|
21
|
+
suite: z.literal("A256GCM"),
|
|
22
|
+
keyId: z.string().min(1),
|
|
23
|
+
nonce: z.string().min(1),
|
|
24
|
+
aadDigest: digestSchema,
|
|
25
|
+
}).strict(),
|
|
26
|
+
}).strict();
|
|
27
|
+
const partyRefSchemaV3 = z.discriminatedUnion("kind", [
|
|
28
|
+
z.object({ kind: z.literal("public_did"), did: z.string().startsWith("did:") }).strict(),
|
|
29
|
+
z.object({ kind: z.literal("pairwise_did"), did: z.string().startsWith("did:") }).strict(),
|
|
30
|
+
z.object({
|
|
31
|
+
kind: z.literal("keyed_commitment"),
|
|
32
|
+
value: digestSchema,
|
|
33
|
+
keyId: z.string().min(1),
|
|
34
|
+
}).strict(),
|
|
35
|
+
z.object({ kind: z.literal("evidence_ref"), ref: evidenceRefSchema }).strict(),
|
|
36
|
+
]);
|
|
37
|
+
const signerRefSchemaV3 = z.object({
|
|
38
|
+
did: z.string().startsWith("did:"),
|
|
39
|
+
kid: z.string().min(1),
|
|
40
|
+
alg: z.enum(["EdDSA", "ES256"]),
|
|
41
|
+
}).strict();
|
|
42
|
+
const auditDeploymentConfigSchema = z.object({
|
|
43
|
+
enabled: z.boolean(),
|
|
44
|
+
requestedProfile: auditProfileSchema,
|
|
45
|
+
delivery: deliverySchema,
|
|
46
|
+
evidenceMode: z.enum(["none", "encrypted-separate", "encrypted-inline"]),
|
|
47
|
+
retentionClass: z.string().min(1).max(128),
|
|
48
|
+
retentionDays: z.number().int().min(0).max(3650),
|
|
49
|
+
residency: z.enum(["inherit-project", "us", "eu", "global"]),
|
|
50
|
+
keyCustody: z.enum(["none", "checkpoint-managed", "customer-managed-kms"]),
|
|
51
|
+
recorderTopology: z.enum(["none", "self-hosted", "managed", "verified-mirror"]),
|
|
52
|
+
}).strict();
|
|
53
|
+
const deploymentBindingSchema = z.object({
|
|
54
|
+
schema: z.literal(DEPLOYMENT_BINDING_SCHEMA),
|
|
55
|
+
config: auditDeploymentConfigSchema,
|
|
56
|
+
readiness: z.object({
|
|
57
|
+
requestedProfile: auditProfileSchema,
|
|
58
|
+
effectiveProfile: auditProfileSchema,
|
|
59
|
+
status: z.enum(["disabled", "ready", "degraded"]),
|
|
60
|
+
reasonCodes: z.array(z.string().min(1).max(128)),
|
|
61
|
+
canary: z.unknown().nullable(),
|
|
62
|
+
}).strict(),
|
|
63
|
+
protocolBinding: z.string().startsWith("urn:kya-os:audit-binding:"),
|
|
64
|
+
tenantRef: partyRefSchemaV3,
|
|
65
|
+
producerRef: partyRefSchemaV3,
|
|
66
|
+
recorderSigner: signerRefSchemaV3,
|
|
67
|
+
recorderPublicJwk: z.record(z.string(), z.unknown()).refine((value) => typeof value.kty === "string" && value.kty.length > 0, "Recorder public JWK must declare kty"),
|
|
68
|
+
secretReferences: z.object({
|
|
69
|
+
producerInternalToken: z.literal("KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN"),
|
|
70
|
+
referenceSecret: z.literal("KYA_OS_AUDIT_REFERENCE_SECRET"),
|
|
71
|
+
evidenceKey: z.literal("KYA_OS_AUDIT_EVIDENCE_KEY").optional(),
|
|
72
|
+
}).strict(),
|
|
73
|
+
}).strict();
|
|
74
|
+
function isRecord(value) {
|
|
75
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
76
|
+
}
|
|
77
|
+
function requiredString(env, key) {
|
|
78
|
+
const value = env[key];
|
|
79
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
80
|
+
throw new Error(`Canonical audit deployment requires ${String(key)}`);
|
|
81
|
+
}
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
function parseBinding(raw) {
|
|
85
|
+
if (raw === undefined || raw.trim() === "")
|
|
86
|
+
return undefined;
|
|
87
|
+
let candidate;
|
|
88
|
+
try {
|
|
89
|
+
candidate = JSON.parse(raw);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
throw new Error("KYA_OS_AUDIT_CONFIG must be valid JSON");
|
|
93
|
+
}
|
|
94
|
+
return deploymentBindingSchema.parse(candidate);
|
|
95
|
+
}
|
|
96
|
+
function profileLevel(profile) {
|
|
97
|
+
return Number(profile.slice(-1));
|
|
98
|
+
}
|
|
99
|
+
function configuredProfile(requested, delivery, durable) {
|
|
100
|
+
if (!durable)
|
|
101
|
+
return "AAP-0";
|
|
102
|
+
const maximum = delivery === "best-effort" ? 1 : 2;
|
|
103
|
+
return `AAP-${Math.min(profileLevel(requested), maximum)}`;
|
|
104
|
+
}
|
|
105
|
+
function capabilitiesFor(env, binding, configured) {
|
|
106
|
+
const durable = env.AUDIT_PRODUCER !== undefined;
|
|
107
|
+
const delivery = binding?.config.delivery ?? "buffered";
|
|
108
|
+
const requested = binding?.config.requestedProfile ?? "AAP-2";
|
|
109
|
+
const evidenceRequested = binding?.config.evidenceMode !== "none";
|
|
110
|
+
const evidenceAvailable = configured
|
|
111
|
+
? evidenceRequested && typeof env.KYA_OS_AUDIT_EVIDENCE_KEY === "string"
|
|
112
|
+
: true;
|
|
113
|
+
return {
|
|
114
|
+
profile: configuredProfile(requested, delivery, durable),
|
|
115
|
+
recorderTopology: durable ? (binding?.config.recorderTopology ?? "managed") : "none",
|
|
116
|
+
delivery,
|
|
117
|
+
journalDurability: durable ? "durable" : "none",
|
|
118
|
+
atomicAppend: durable,
|
|
119
|
+
sourceHighWater: durable,
|
|
120
|
+
// Checkpoints/observers/anchors are recorder-side services. The producer
|
|
121
|
+
// cannot claim them merely because the requested profile names them.
|
|
122
|
+
merkleCheckpoints: false,
|
|
123
|
+
independentObservation: false,
|
|
124
|
+
supportingAnchors: [],
|
|
125
|
+
evidenceRetention: evidenceAvailable
|
|
126
|
+
? (binding?.config.evidenceMode === "encrypted-inline" ? "inline" : "separate")
|
|
127
|
+
: "none",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function publicCapabilities(capabilities) {
|
|
131
|
+
const { profile: _profile, ...mechanics } = capabilities;
|
|
132
|
+
return mechanics;
|
|
133
|
+
}
|
|
134
|
+
function configuredEnvPresent(env, binding) {
|
|
135
|
+
return binding !== undefined && binding.config.enabled &&
|
|
136
|
+
env.AUDIT_PRODUCER !== undefined &&
|
|
137
|
+
typeof env.KYA_OS_AUDIT_RECORDER_URL === "string" &&
|
|
138
|
+
typeof env.KYA_OS_AUDIT_INGEST_KEY === "string" &&
|
|
139
|
+
typeof env.KYA_OS_AUDIT_LEDGER_ID === "string" &&
|
|
140
|
+
typeof env.KYA_OS_AUDIT_LEDGER_EPOCH_ID === "string" &&
|
|
141
|
+
typeof env.KYA_OS_AUDIT_SOURCE_ID === "string" &&
|
|
142
|
+
typeof env.KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN === "string" &&
|
|
143
|
+
typeof env.KYA_OS_AUDIT_REFERENCE_SECRET === "string";
|
|
144
|
+
}
|
|
145
|
+
export function resolveAuditRuntimeProbe(env) {
|
|
146
|
+
const binding = parseBinding(env.KYA_OS_AUDIT_CONFIG);
|
|
147
|
+
const configured = configuredEnvPresent(env, binding);
|
|
148
|
+
return {
|
|
149
|
+
format: PROBE_FORMAT,
|
|
150
|
+
configured,
|
|
151
|
+
enabled: configured && binding?.config.enabled === true,
|
|
152
|
+
capabilities: publicCapabilities(capabilitiesFor(env, binding, configured)),
|
|
153
|
+
canaryEndpoint: KYA_OS_AUDIT_CANARY_PATH,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
export function createCloudflareAuditRuntimeFromEnv(env) {
|
|
157
|
+
const binding = parseBinding(env.KYA_OS_AUDIT_CONFIG);
|
|
158
|
+
if (binding === undefined || !binding.config.enabled)
|
|
159
|
+
return undefined;
|
|
160
|
+
if (!configuredEnvPresent(env, binding)) {
|
|
161
|
+
throw new Error("Canonical audit deployment binding is incomplete");
|
|
162
|
+
}
|
|
163
|
+
const ledgerId = requiredString(env, "KYA_OS_AUDIT_LEDGER_ID");
|
|
164
|
+
const ledgerEpochId = requiredString(env, "KYA_OS_AUDIT_LEDGER_EPOCH_ID");
|
|
165
|
+
const sourceId = requiredString(env, "KYA_OS_AUDIT_SOURCE_ID");
|
|
166
|
+
const capabilities = capabilitiesFor(env, binding, true);
|
|
167
|
+
const instanceName = `${ledgerId}\0${sourceId}`;
|
|
168
|
+
const producer = new CloudflareAuditProducerBinding({
|
|
169
|
+
namespace: env.AUDIT_PRODUCER,
|
|
170
|
+
instanceName,
|
|
171
|
+
delivery: binding.config.delivery,
|
|
172
|
+
internalToken: requiredString(env, "KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN"),
|
|
173
|
+
});
|
|
174
|
+
const trail = createCloudflareAuditTrail({
|
|
175
|
+
env,
|
|
176
|
+
instanceName,
|
|
177
|
+
delivery: binding.config.delivery,
|
|
178
|
+
ledgerId,
|
|
179
|
+
expectedLedgerEpochId: ledgerEpochId,
|
|
180
|
+
tenantRef: binding.tenantRef,
|
|
181
|
+
producer: binding.producerRef,
|
|
182
|
+
sourceId,
|
|
183
|
+
binding: binding.protocolBinding,
|
|
184
|
+
privacy: {
|
|
185
|
+
classification: "internal",
|
|
186
|
+
retentionClass: binding.config.retentionClass,
|
|
187
|
+
},
|
|
188
|
+
capabilities,
|
|
189
|
+
});
|
|
190
|
+
const auditTrail = {
|
|
191
|
+
trail,
|
|
192
|
+
sourceId,
|
|
193
|
+
context: createHmacRuntimeAuditContextFactory({
|
|
194
|
+
secret: requiredString(env, "KYA_OS_AUDIT_REFERENCE_SECRET"),
|
|
195
|
+
keyId: "kya-os-audit-reference-v1",
|
|
196
|
+
}),
|
|
197
|
+
};
|
|
198
|
+
return { binding, capabilities, auditTrail, trail, producer };
|
|
199
|
+
}
|
|
200
|
+
function base64urlToBytes(value) {
|
|
201
|
+
if (!/^[A-Za-z0-9_-]+$/.test(value)) {
|
|
202
|
+
throw new Error("KYA_OS_AUDIT_EVIDENCE_KEY must be unpadded base64url");
|
|
203
|
+
}
|
|
204
|
+
const base64 = value.replace(/-/g, "+").replace(/_/g, "/");
|
|
205
|
+
const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, "=");
|
|
206
|
+
const binary = atob(padded);
|
|
207
|
+
return Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
208
|
+
}
|
|
209
|
+
async function canaryEvidence(env, eventId) {
|
|
210
|
+
if (env.KYA_OS_AUDIT_EVIDENCE_KEY === undefined)
|
|
211
|
+
return undefined;
|
|
212
|
+
const keyBytes = base64urlToBytes(env.KYA_OS_AUDIT_EVIDENCE_KEY);
|
|
213
|
+
if (keyBytes.byteLength !== 32) {
|
|
214
|
+
throw new Error("KYA_OS_AUDIT_EVIDENCE_KEY must decode to 32 bytes");
|
|
215
|
+
}
|
|
216
|
+
const key = await crypto.subtle.importKey("raw", Uint8Array.from(keyBytes).buffer, "AES-GCM", false, ["encrypt"]);
|
|
217
|
+
const hasher = new CryptoProviderAuditHasher(new WebCryptoProvider());
|
|
218
|
+
const encryptor = new WebCryptoEvidenceEncryptor({
|
|
219
|
+
crypto,
|
|
220
|
+
hasher,
|
|
221
|
+
randomBytes: async (length) => crypto.getRandomValues(new Uint8Array(length)),
|
|
222
|
+
});
|
|
223
|
+
return encryptor.encrypt({
|
|
224
|
+
plaintext: new TextEncoder().encode(JSON.stringify({ kind: "audit-canary", eventId })),
|
|
225
|
+
mediaType: "application/json",
|
|
226
|
+
key,
|
|
227
|
+
keyId: "kya-os-audit-evidence-v1",
|
|
228
|
+
aad: new TextEncoder().encode(`org.kya-os.audit.canary\0${eventId}`),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
function recordedEntry(result) {
|
|
232
|
+
return result.status === "recorded" ? result.entry : undefined;
|
|
233
|
+
}
|
|
234
|
+
function constantTimeEqual(expected, actual) {
|
|
235
|
+
const left = new TextEncoder().encode(expected);
|
|
236
|
+
const right = new TextEncoder().encode(actual);
|
|
237
|
+
let difference = left.byteLength ^ right.byteLength;
|
|
238
|
+
const length = Math.max(left.byteLength, right.byteLength);
|
|
239
|
+
for (let index = 0; index < length; index += 1) {
|
|
240
|
+
difference |= (left[index] ?? 0) ^ (right[index] ?? 0);
|
|
241
|
+
}
|
|
242
|
+
return difference === 0;
|
|
243
|
+
}
|
|
244
|
+
function authorizedCanary(request, env) {
|
|
245
|
+
const expected = env.KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN;
|
|
246
|
+
if (typeof expected !== "string" || expected.length === 0)
|
|
247
|
+
return false;
|
|
248
|
+
const authorization = request.headers.get("Authorization") ?? "";
|
|
249
|
+
return authorization.startsWith("Bearer ") &&
|
|
250
|
+
constantTimeEqual(expected, authorization.slice("Bearer ".length));
|
|
251
|
+
}
|
|
252
|
+
function json(value, status = 200) {
|
|
253
|
+
return new Response(JSON.stringify(value), {
|
|
254
|
+
status,
|
|
255
|
+
headers: {
|
|
256
|
+
"Content-Type": "application/json; charset=utf-8",
|
|
257
|
+
"Cache-Control": "no-store",
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
export async function runAuditRuntimeCanary(request, env) {
|
|
262
|
+
if (!authorizedCanary(request, env)) {
|
|
263
|
+
return json({ error: "AUDIT_CANARY_UNAUTHORIZED" }, 401);
|
|
264
|
+
}
|
|
265
|
+
const runtime = createCloudflareAuditRuntimeFromEnv(env);
|
|
266
|
+
if (runtime === undefined) {
|
|
267
|
+
return json({ error: "AUDIT_NOT_CONFIGURED" }, 503);
|
|
268
|
+
}
|
|
269
|
+
const observedAt = Date.now();
|
|
270
|
+
const eventId = `canary:${crypto.randomUUID()}`;
|
|
271
|
+
const evidence = await canaryEvidence(env, eventId);
|
|
272
|
+
const input = {
|
|
273
|
+
eventId,
|
|
274
|
+
eventType: CANARY_EVENT_TYPE,
|
|
275
|
+
occurredAt: observedAt,
|
|
276
|
+
action: {
|
|
277
|
+
category: "audit.canary",
|
|
278
|
+
...(evidence === undefined ? {} : { detailRef: evidence.ref }),
|
|
279
|
+
},
|
|
280
|
+
outcome: "succeeded",
|
|
281
|
+
evidence: evidence === undefined ? [] : [evidence.ref],
|
|
282
|
+
details: {
|
|
283
|
+
family: "key",
|
|
284
|
+
phase: "configuration_changed",
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
const first = await runtime.trail.record(input, evidence === undefined ? undefined : { encryptedEvidence: [evidence] });
|
|
288
|
+
const duplicate = await runtime.trail.record(input, evidence === undefined ? undefined : { encryptedEvidence: [evidence] });
|
|
289
|
+
let flush;
|
|
290
|
+
if (runtime.binding.config.delivery === "buffered") {
|
|
291
|
+
flush = await runtime.trail.flush(10);
|
|
292
|
+
}
|
|
293
|
+
const entry = recordedEntry(first) ?? recordedEntry(duplicate) ??
|
|
294
|
+
await runtime.producer.receipt(eventId);
|
|
295
|
+
const sourceState = await runtime.trail.getSourceState();
|
|
296
|
+
let conflictRejected = false;
|
|
297
|
+
try {
|
|
298
|
+
const conflict = await runtime.trail.record({
|
|
299
|
+
...input,
|
|
300
|
+
action: { category: "audit.canary.conflict" },
|
|
301
|
+
});
|
|
302
|
+
conflictRejected = conflict.status === "failed";
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
conflictRejected = true;
|
|
306
|
+
}
|
|
307
|
+
const sourceSequence = entry?.core.event.source.sourceSequence;
|
|
308
|
+
const checks = [
|
|
309
|
+
{ id: "recorder_round_trip", passed: entry?.core.event.eventId === eventId },
|
|
310
|
+
{
|
|
311
|
+
id: "verified_receipt",
|
|
312
|
+
passed: entry !== undefined &&
|
|
313
|
+
entry.recorderReceipt.core.entryDigest === entry.entryDigest,
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
id: "idempotent_retry",
|
|
317
|
+
passed: first.event.source.sourceSequence === duplicate.event.source.sourceSequence,
|
|
318
|
+
},
|
|
319
|
+
{ id: "event_identity_conflict", passed: conflictRejected },
|
|
320
|
+
{
|
|
321
|
+
id: "source_state",
|
|
322
|
+
passed: sourceSequence !== undefined &&
|
|
323
|
+
BigInt(sourceState.highestReceipted) >= BigInt(sourceSequence) &&
|
|
324
|
+
!sourceState.pendingSequences.includes(sourceSequence),
|
|
325
|
+
},
|
|
326
|
+
...(runtime.binding.config.delivery === "buffered"
|
|
327
|
+
? [{ id: "buffered_outbox", passed: flush?.failed === 0 && (flush?.delivered ?? 0) >= 1 }]
|
|
328
|
+
: []),
|
|
329
|
+
...(evidence === undefined
|
|
330
|
+
? []
|
|
331
|
+
: [{
|
|
332
|
+
id: "evidence_write_verified",
|
|
333
|
+
passed: entry?.core.event.evidence.some((ref) => ref.ciphertextDigest === evidence.ref.ciphertextDigest) === true,
|
|
334
|
+
}]),
|
|
335
|
+
];
|
|
336
|
+
const result = {
|
|
337
|
+
passed: checks.every((check) => check.passed),
|
|
338
|
+
observedAt,
|
|
339
|
+
capabilities: publicCapabilities(runtime.capabilities),
|
|
340
|
+
checks,
|
|
341
|
+
...(entry === undefined ? {} : { bundleHash: entry.entryDigest }),
|
|
342
|
+
};
|
|
343
|
+
return json(result, result.passed ? 200 : 503);
|
|
344
|
+
}
|
|
345
|
+
export async function handleAuditRuntimeControlRequest(request, env) {
|
|
346
|
+
const url = new URL(request.url);
|
|
347
|
+
if (request.method === "GET" && url.pathname === KYA_OS_AUDIT_DISCOVERY_PATH) {
|
|
348
|
+
return json(resolveAuditRuntimeProbe(env));
|
|
349
|
+
}
|
|
350
|
+
if (request.method === "POST" && url.pathname === KYA_OS_AUDIT_CANARY_PATH) {
|
|
351
|
+
return runAuditRuntimeCanary(request, env);
|
|
352
|
+
}
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
export function recorderConfigurationFromBinding(binding) {
|
|
356
|
+
if (!isRecord(binding.recorderPublicJwk)) {
|
|
357
|
+
throw new Error("Recorder public JWK is malformed");
|
|
358
|
+
}
|
|
359
|
+
return {
|
|
360
|
+
signer: binding.recorderSigner,
|
|
361
|
+
publicJwk: binding.recorderPublicJwk,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=deployment-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-binding.js","sourceRoot":"","sources":["../../src/audit/deployment-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { DurableObjectNamespace, DurableObjectState } from "@cloudflare/workers-types";
|
|
2
|
+
import { type AuditCapabilities, type AuditDeliveryMode, type AuditHasher, type AuditOutboxItem, type AuditOutboxProvider, type AuditRecorderClient, type AuditRecorderSubmission, type AuditSourceState, type AuditSourceStateProvider, type AuditTrailConfiguration, type SignedAuditEntryV1 } from "@kya-os/mcp/audit";
|
|
3
|
+
export declare const AUDIT_PRODUCER_BINDING: "AUDIT_PRODUCER";
|
|
4
|
+
export declare const AUDIT_PRODUCER_CLASS_NAME: "AuditProducer";
|
|
5
|
+
export interface AuditProducerServiceBinding {
|
|
6
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
7
|
+
}
|
|
8
|
+
/** Bindings consumed inside the AuditProducer Durable Object. */
|
|
9
|
+
export interface AuditProducerEnv {
|
|
10
|
+
KYA_OS_AUDIT_CONFIG?: string;
|
|
11
|
+
KYA_OS_AUDIT_RECORDER_URL?: string;
|
|
12
|
+
KYA_OS_AUDIT_INGEST_KEY?: string;
|
|
13
|
+
KYA_OS_AUDIT_RECORDER_SERVICE?: AuditProducerServiceBinding;
|
|
14
|
+
KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN?: string;
|
|
15
|
+
KYA_OS_AUDIT_MAX_ATTEMPTS?: string;
|
|
16
|
+
KYA_OS_AUDIT_RETRY_BASE_MS?: string;
|
|
17
|
+
KYA_OS_AUDIT_RETRY_MAX_MS?: string;
|
|
18
|
+
KYA_OS_AUDIT_DELIVERY_BATCH_SIZE?: string;
|
|
19
|
+
KYA_OS_AUDIT_DEAD_LETTER_RETENTION_MS?: string;
|
|
20
|
+
KYA_OS_AUDIT_RECEIPT_RETENTION_MS?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface CloudflareAuditProducerEnv {
|
|
23
|
+
AUDIT_PRODUCER?: DurableObjectNamespace;
|
|
24
|
+
KYA_OS_AUDIT_PRODUCER_INTERNAL_TOKEN?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface AuditProducerRetryPolicy {
|
|
27
|
+
maxAttempts: number;
|
|
28
|
+
baseDelayMs: number;
|
|
29
|
+
maxDelayMs: number;
|
|
30
|
+
batchSize: number;
|
|
31
|
+
deadLetterRetentionMs: number;
|
|
32
|
+
receiptRetentionMs: number;
|
|
33
|
+
}
|
|
34
|
+
export interface AuditProducerDeadLetter {
|
|
35
|
+
eventId: string;
|
|
36
|
+
sourceId: string;
|
|
37
|
+
sourceSequence?: string;
|
|
38
|
+
attempts: number;
|
|
39
|
+
enqueuedAt: number;
|
|
40
|
+
deadLetteredAt: number;
|
|
41
|
+
lastError: string;
|
|
42
|
+
}
|
|
43
|
+
interface StoredOutboxItem extends AuditOutboxItem {
|
|
44
|
+
availableAt: number;
|
|
45
|
+
}
|
|
46
|
+
interface AuditDeliveryStore {
|
|
47
|
+
enqueue(item: AuditOutboxItem, now: number): void;
|
|
48
|
+
pending(now: number, limit: number, blockedSources: ReadonlySet<string>): StoredOutboxItem[];
|
|
49
|
+
markDelivered(eventId: string, entry: SignedAuditEntryV1, now: number): void;
|
|
50
|
+
markDeliveredFromReceipt(eventId: string, now: number): boolean;
|
|
51
|
+
markFailed(eventId: string, error: unknown, now: number, policy: AuditProducerRetryPolicy): {
|
|
52
|
+
state: "pending" | "dead";
|
|
53
|
+
attempts: number;
|
|
54
|
+
availableAt?: number;
|
|
55
|
+
};
|
|
56
|
+
nextAlarmAt(now: number, policy: AuditProducerRetryPolicy): number | null;
|
|
57
|
+
prune(now: number, policy: AuditProducerRetryPolicy): void;
|
|
58
|
+
deadLetters(limit: number): AuditProducerDeadLetter[];
|
|
59
|
+
redrive(eventId: string, now: number): boolean;
|
|
60
|
+
receipt(eventId: string): SignedAuditEntryV1 | undefined;
|
|
61
|
+
saveReceipt(eventId: string, entry: SignedAuditEntryV1, now: number): void;
|
|
62
|
+
}
|
|
63
|
+
interface AlarmScheduler {
|
|
64
|
+
setAlarm(scheduledTime: number | Date): Promise<void>;
|
|
65
|
+
deleteAlarm(): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export declare function resolveAuditProducerRetryPolicy(env: AuditProducerEnv): AuditProducerRetryPolicy;
|
|
68
|
+
export declare function auditRetryDelayMs(attempts: number, policy: Pick<AuditProducerRetryPolicy, "baseDelayMs" | "maxDelayMs">): number;
|
|
69
|
+
/** Pure delivery coordinator; persistence and alarms are injected for deterministic tests. */
|
|
70
|
+
export declare class AuditProducerDeliveryEngine {
|
|
71
|
+
private readonly store;
|
|
72
|
+
private readonly recorder;
|
|
73
|
+
private readonly alarms;
|
|
74
|
+
private readonly policy;
|
|
75
|
+
private readonly clock;
|
|
76
|
+
constructor(store: AuditDeliveryStore, recorder: () => AuditRecorderClient, alarms: AlarmScheduler, policy: AuditProducerRetryPolicy, clock?: {
|
|
77
|
+
now(): number;
|
|
78
|
+
});
|
|
79
|
+
enqueue(item: AuditOutboxItem): Promise<void>;
|
|
80
|
+
flush(): Promise<{
|
|
81
|
+
delivered: number;
|
|
82
|
+
failed: number;
|
|
83
|
+
deadLettered: number;
|
|
84
|
+
}>;
|
|
85
|
+
scheduleNext(): Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* SQLite-backed producer boundary. It is deliberately separate from the MCP
|
|
89
|
+
* agent Durable Object, so recorder latency and retry alarms cannot mutate or
|
|
90
|
+
* stall authorization, consent, delegation, or session state.
|
|
91
|
+
*/
|
|
92
|
+
export declare class AuditProducer {
|
|
93
|
+
private readonly state;
|
|
94
|
+
private readonly env;
|
|
95
|
+
private readonly store;
|
|
96
|
+
private readonly policy;
|
|
97
|
+
private readonly delivery;
|
|
98
|
+
private readonly ready;
|
|
99
|
+
private recorderClient?;
|
|
100
|
+
constructor(state: DurableObjectState, env: AuditProducerEnv);
|
|
101
|
+
fetch(request: Request): Promise<Response>;
|
|
102
|
+
alarm(): Promise<void>;
|
|
103
|
+
private recorder;
|
|
104
|
+
}
|
|
105
|
+
export interface CloudflareAuditProducerBindingOptions {
|
|
106
|
+
namespace: DurableObjectNamespace;
|
|
107
|
+
instanceName: string;
|
|
108
|
+
delivery: AuditDeliveryMode;
|
|
109
|
+
internalToken?: string;
|
|
110
|
+
}
|
|
111
|
+
/** Client-side port used by AuditTrailService in the MCP worker. */
|
|
112
|
+
export declare class CloudflareAuditProducerBinding implements AuditRecorderClient, AuditOutboxProvider, AuditSourceStateProvider {
|
|
113
|
+
private readonly options;
|
|
114
|
+
readonly capabilities: {
|
|
115
|
+
readonly durability: "durable";
|
|
116
|
+
readonly fifoPerSource: true;
|
|
117
|
+
readonly atomicClaim: true;
|
|
118
|
+
};
|
|
119
|
+
private readonly stub;
|
|
120
|
+
constructor(options: CloudflareAuditProducerBindingOptions);
|
|
121
|
+
submit(input: AuditRecorderSubmission): Promise<SignedAuditEntryV1>;
|
|
122
|
+
enqueue(item: AuditOutboxItem): Promise<void>;
|
|
123
|
+
pending(limit?: number): AsyncIterable<AuditOutboxItem>;
|
|
124
|
+
markDelivered(eventId: string): Promise<void>;
|
|
125
|
+
markFailed(eventId: string, error: unknown): Promise<void>;
|
|
126
|
+
claimEvent(sourceId: string, eventId: string): Promise<{
|
|
127
|
+
sequence: string;
|
|
128
|
+
previousSourceEventDigest?: `sha256:${string}`;
|
|
129
|
+
}>;
|
|
130
|
+
markEmitted(sourceId: string, eventId: string, sequence: string, eventDigest: `sha256:${string}`): Promise<void>;
|
|
131
|
+
markReceipted(sourceId: string, sequence: string, entryDigest: `sha256:${string}`): Promise<void>;
|
|
132
|
+
getState(sourceId: string): Promise<AuditSourceState>;
|
|
133
|
+
/** Return only a locally verified recorder entry retained by the producer. */
|
|
134
|
+
receipt(eventId: string): Promise<SignedAuditEntryV1 | undefined>;
|
|
135
|
+
private request;
|
|
136
|
+
}
|
|
137
|
+
type CloudflareAuditTrailBase = Pick<AuditTrailConfiguration, "ledgerId" | "expectedLedgerEpochId" | "tenantRef" | "producer" | "sourceId" | "binding" | "privacy" | "eventIdFactory" | "onDeliveryFailure" | "onSourceStateFailure">;
|
|
138
|
+
export interface CreateCloudflareAuditTrailOptions extends CloudflareAuditTrailBase {
|
|
139
|
+
env: CloudflareAuditProducerEnv;
|
|
140
|
+
delivery: AuditDeliveryMode;
|
|
141
|
+
capabilities?: AuditCapabilities;
|
|
142
|
+
instanceName?: string;
|
|
143
|
+
hasher?: AuditHasher;
|
|
144
|
+
clock?: {
|
|
145
|
+
now(): number;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Compose the core audit trail with durable Cloudflare producer mechanics. */
|
|
149
|
+
export declare function createCloudflareAuditTrail(options: CreateCloudflareAuditTrailOptions): import("@kya-os/mcp").AuditTrailService;
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=durable-producer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-producer.d.ts","sourceRoot":"","sources":["../../src/audit/durable-producer.ts"],"names":[],"mappings":"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"}
|