Quick Start
1
Approve — attribution is automatic
The gateway captures the resolving operator on the audit trail. No extra code is needed on the agent side.
2
Bind a request to specific reviewers
Pass
authorized_reviewers so only listed operators can resolve the request.How Resolver Identity Is Captured
ThePOST /approval/resolve endpoint derives a non-secret operator identity from the authenticated request, in this precedence order.
Set
X-Operator-Id from a proxy or SSO layer so operators sharing one gateway token still get distinct audit attribution. Holders of the same token collapse to one token-digest identity by design.
Resolution.resolver and is recorded on the audit trail and the allow-always grant. When no resolver is supplied, attribution falls back to the legacy "gateway" / "gateway:human" constant.
Per-request Reviewer Custody
Bind an approval to specific reviewers so only they can resolve it.The
404 for an unauthorised resolver uses the same status as “not found” so the caller cannot enumerate request IDs.Best Practices
Stamp X-Operator-Id at your proxy or SSO layer
Stamp X-Operator-Id at your proxy or SSO layer
Operators sharing one gateway token collapse to a single token-digest identity. Stamp
X-Operator-Id per user upstream so each decision is attributed to an individual.Use reviewer custody for high-risk requests
Use reviewer custody for high-risk requests
The
APPROVALS scope is coarse — any holder may resolve any request. Bind high-risk requests to named reviewers with authorized_reviewers.Read the approver field in audit reports
Read the approver field in audit reports
For gateway-resolved requests,
approver now carries the real principal, so reports can answer “who approved this exec?”.Related
Gateway Scoped Approvals
Durable, agent-scoped allow-always grants
Gateway Operator Scopes
Coarse authorisation for admin endpoints
Gateway Approval Durability
Pending approvals survive restart
Audit Logging
The approver field on audit entries

