Skip to main content
POST
Resolve a human-tier review-hold (allow/deny/escalate)

Authorizations

Authorization
string
header
required

Supabase JWT token in Authorization: Bearer header

Path Parameters

review_id
string
required

Body

application/json
decision
enum<string>
required

allow/deny finalize (single-control) or count toward dual-control concurrence; escalate is non-terminal.

Available options:
allow,
deny,
escalate
reason
string

Optional free-text rationale recorded on the approvals ledger.

Response

The resolution outcome. Terminal on a finalized allow/deny (with the allow-token + decrypted content on allow); otherwise pending (escalated, or awaiting a second dual-control approver).

review_id
string
required
status
enum<string>
required
Available options:
allowed,
denied,
pending
allow_token
string

Single-use, content_hash-bound, short-TTL token honored by the gateway on re-submit. Present only on a finalized allow.

content
string

The decrypted original held content. Present only on a finalized allow.

awaiting
enum<string>

Present when dual-control is required and this is the first concurring resolver.

Available options:
second_approver
escalated
boolean

True when the action escalated the hold for higher-tier attention (explicit escalate, or divergent dual-control votes).

reason
string