Add telemetry diagnostics route

This commit is contained in:
2026-05-09 05:31:04 -04:00
parent 4e85f31dac
commit c86091a81f
8 changed files with 486 additions and 0 deletions
+30
View File
@@ -33,6 +33,10 @@ import {
publicSigningKeysKvKey,
} from "./signing_keys.js";
import { handleSyncRoute } from "./sync_routes.js";
import {
TelemetrySchemaError,
telemetryEventAcceptedDocument,
} from "./telemetry.js";
import { jsonResponse } from "./responses.js";
export default {
@@ -199,6 +203,32 @@ export async function handleRequest(request: Request, env: Env): Promise<Respons
handleReleaseSignature(env, url),
);
}
if (url.pathname === "/api/telemetry/events") {
return withAuthenticatedApiControls(
request,
env,
"telemetry.events",
["POST"],
async (context) => {
try {
return jsonResponse(
await telemetryEventAcceptedDocument(request, env, context),
202,
{ "Cache-Control": "no-store" },
);
} catch (error) {
if (error instanceof TelemetrySchemaError) {
return jsonResponse(
{ error: error.code },
400,
{ "Cache-Control": "no-store" },
);
}
throw error;
}
},
);
}
return jsonResponse({ error: "not_found" }, 404);
}