feat(server): bind idle credential eligibility to incoming wake proof (#18639)

Reviewed and verified at d1e3afa4af.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip authored and GitHub committed 2026-11-03 14:30:07 -06:00
1 parent 0b87308d5d
commit 5877d751c0
31 files changed
+2071 -53

No files matched your search

+10 -1
View File
@@ -1,3 +1,5 @@
import type { Request } from "express";
import type { VerifiedIdleCapabilities } from "../services/idle-incoming-wake-capability.js";
import type { RequestHandler } from "express";
import { logger } from "./logger.js";
import {
@@ -6,6 +8,12 @@ import {
type CloudControlAction,
} from "../services/cloud-runtime-identity.js";
const idleCapabilities = new WeakMap<Request, VerifiedIdleCapabilities>();
/** Only this middleware's verified assertion can install request capabilities. */
export function verifiedIdleCapabilities(req: Request): VerifiedIdleCapabilities | undefined {
return idleCapabilities.get(req);
}
/** Endpoint → method → the one action a control assertion must name to take it. */
const ACTIONS_BY_ENDPOINT: Record<string, Record<string, CloudControlAction>> = {
"/api/instance/connector-events/wake": { POST: "connector-events:wake" },
@@ -50,7 +58,8 @@ export function cloudControlMiddleware(): RequestHandler {
return;
}
try {
verifyCloudControlAssertion({ compactJws: assertion, expectedAction });
const claims = verifyCloudControlAssertion({ compactJws: assertion, expectedAction });
if (claims.idleCapabilities) idleCapabilities.set(req, claims.idleCapabilities as VerifiedIdleCapabilities);
} catch (error) {
logger.warn({ err: error }, "Rejected Cloud control assertion");
res.status(401).json({ error: "invalid_cloud_control_assertion" });