The override request
All pending overrides are resolved viaPOST /override. The approved field determines whether the override is approved or rejected.
Required fields:
| Field | Type | Description |
|---|---|---|
executionId | string | Matches the executionId from the original execute request |
approved | boolean | true = approve, false = reject |
approvedBy | string | Identifier of the reviewer — recorded in the override audit record |
approverRole | string | Role of the reviewer — recorded in the override audit record |
reason | string | Human-readable reason — part of the signed override record |
Approval
Rejection
resolution_status: "rejected".
curl — approval
curl — rejection
What the server does on approval
- Loads the pending override record from
audit_overrides— returns 404 if not found - Checks that
resolution_status === "pending"— returns 409 if already resolved - Calls
approveOverride()to create a signed override authorization record - Calls
resolveOverrideFromContext()to re-evaluate the authority verification outcome under override authority - Transitions replay state in Redis to
OVERRIDDEN - Updates
audit_overridestoresolution_status: "approved" - Returns
{ status: "approved", overrideId, resolution }
What the server does on rejection
- Loads the pending override record — returns 404 if not found
- Checks that
resolution_status === "pending"— returns 409 if already resolved - Updates
audit_overridestoresolution_status: "rejected"(no execution occurs) - Returns
{ status: "rejected", executionId }
The overrideId
When an override is approved, the server returns an overrideId — a cryptographic identifier for the override authorization record. This ID is stored in audit_overrides.
The overrideId is the SHA-256 of the canonical override payload (including executionId, approved_by, approver_role, reason, and a timestamp). It is reproducible and unique.
Auditing who approved what
Override records includeapprovedBy and approverRole. Your system should:
- Authenticate reviewers before allowing them to call
POST /override - Pass the authenticated user’s ID as
approvedBy - Store the override record ID (
overrideId) in your business system alongside the claim/transaction
Troubleshooting
404 “Pending override not found” — Verify:- The original execution returned
execution_state: "pending_override" audit_dbistruein/health— without Postgres, overrides cannot be stored- The
executionIdmatches exactly (no prefix differences)