Entscheidungsmarken
Wenn ein Checkpoint eine Terminalentscheidung erreicht, gibt Maetra eine Entscheidungstoken eine unterzeichnete JWT in decision_token. Es bindet die Entscheidung an den kanonischen Aktionsumschlag, die genauen Richtlinienversionen, den Arbeitsbereich und den beabsichtigten Executor.
Überprüfen Sie es lokal auf schnelle Ablehnung und konsumieren Sie es dann durch POST /v1/executions/authorize unmittelbar vor dem auswärtigen Handeln. Diese autoritative Überprüfung erzwingt Widerruf und One-Use-Semantik.
Öffentliche Schlüssel (JWKS)#
GET /.well-known/jwks.json — keine Authentifizierung erforderlich. Gibt den Schlüsselsatz zurück, der zum Signieren von Entscheidungstoken verwendet wurde. Einmal abrufen und Cache; der Token-Header kid Identifizieren Sie, welcher Schlüssel es signiert hat.
curl "https://api.maetra.io/.well-known/jwks.json" \
-H "Authorization: Bearer $MAETRA_API_KEY"
{ "keys": [ { "kty": "OKP", "crv": "Ed25519", "alg": "EdDSA", "kid": "…", "x": "…" } ] }
Überprüfung eines Tokens#
Entscheidungstoken sind signiert mit EdDSA mit Ed25519. Überprüfen Sie mit einer JWT-Bibliothek, die Ed25519 und die JWKS oben unterstützt.
import { jwtVerify, createRemoteJWKSet } from "jose";
const JWKS = createRemoteJWKSet(new URL("https://api.maetra.io/.well-known/jwks.json"));
export async function verifyDecision(token: string) {
const { payload } = await jwtVerify(token, JWKS, {
algorithms: ["EdDSA"],
issuer: "maetra-govern",
audience: "payments-worker",
});
if (payload.status !== "approved" || payload.maxUses !== 1) {
throw new Error(`Action not approved: ${payload.status}`);
}
return payload; // identifies the checkpoint, action, decision, and expiry
}
Was zu überprüfen ist
- Unterschrift — muss gegen einen Schlüssel in der JWKS validieren.
status- nur dann vorgehen, wenngenehmigt.- Verfallsdatum Reject Expired Tokens (Standard)
exp). - Emittent und Publikum — erfordern
iss=maetra-governUnd Ihr Executor ist genauaudWert. - Bindend Recomputing und Vergleich
actionEnvelopeHash, dann vergleichencheckpointId,workspaceId, undpolicyDigest. - Verwendungsobergrenze — erfordern
maxUses=1und autorisieren Sie durch Maetra, so dass eine Wiederholung oder ein widerrufenes Token bei der Ausführung fehlschlägt.
Anmerkung: Behandeln Sie das Token als kurzlebige One-Use-Fähigkeit.
decision_token_expires_atGrenzen des Tokens; Checkpointexpires_atist das Genehmigungs-Timeout.