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.

On this page