Enforcement
The four decisions - Allow, Deny, Hold, Error - and how the backend enforce path resolves every tool call an assistant attempts.
The Four Decisions
Every action the assistant attempts resolves to exactly one of four outcomes:
- Allow: proceed.
- Deny: blocked, not permitted.
- Hold: pause and require a human's approval before proceeding.
- Error: something went wrong; the UI explains what, rather than papering over it.
Where the decision is made
The decision is made at the backend enforce path (POST /iap/sdk/enforce), driven by the workspace's policies. Resolution honours per-tool overrides first, then falls back to the rule's action, and then the policy default.
OPA evaluation is blocking: a failed evaluation denies rather than silently allowing. The Console surfaces the outcome and the triggering rule on the session-detail view; it does not compute the decision itself.