Approvals & risk

Actions held for human review - because they exceeded a threshold, hit a budget, matched a policy, or looked anomalous.

Held actions land in Approvals (operators & admins). Approving a gateway execution action executes its stored request; denying blocks it. Approvals re-run the full decision pipeline at approval time, so a policy or budget tightened after the action was requested still applies - approval can't authorize against stale rules. Out-of-band approve/deny links (Slack, PagerDuty, or a generic webhook you can fan out to email) are signed and recorded as break-glass.

Handling pending approval in an agent

On HTTP 202 with pending_approval, persist the action ID and the original idempotency key and request in your workflow storage. Pause that operation; unrelated work can continue. Check the existing action with TypeScript getAction(actionId), Python get_action(action_id), or GET /v1/agent/actions/:id. Poll with a bounded interval and backoff, or arrange for your workflow to resume after an approval webhook and fetch the current state. The SDK exposes the lookup; it does not automatically wait, persist your workflow, or restart your agent.

  • Gateway execution: Provenant executes on approval, even if the submitting process has stopped. Retrieve the existing action's completion summary; do not perform the downstream operation again. The full downstream response is not retained on the action. If retrying the original invoke request, reuse its idempotency key and identical payload.
  • Cooperative execution: approval authorizes the action; the agent must resume, obtain the current warrant, execute, and report completion. Warrants expire after 10 minutes; do not execute with an expired warrant.
  • Credential broker: approval authorizes issuance; the agent must retry the credential request with the original idempotency key to obtain the credential. Approval does not itself perform the external operation.

Killing an agent process does not cancel a stored approval. A restarted workflow should recover its saved action ID and inspect the current state before continuing. Pending approvals expire after 24 hours and reserve no budget; approval rechecks current limits before reserving spend. Stop or reconcile the operation when it is denied, expired, or failed. Suspending the agent in Provenant is a separate control from stopping its local process.

Per-agent ownership scopes approvals: operators decide only for the agents they own; admins can break-glass for any.