Governance and approvals
oc8 is built so consequential actions can pause for a human before they execute. This page explains how autonomy, thresholds, and audit fit together.
Layers of control
Capa guardrail presets (defaults per tool category)
↓
Department frame (tool policies for the team)
↓
Agent settings (narrowing, autonomy level)
↓
Policy engine (authorizes every tool call at runtime)
↓
Approval inbox / messenger (human decision when required)
Every external tool call goes through the MCP gateway. The agent never calls Odoo, email, or Slack directly.
In the UI, the inbox is My work — there is no separate Approvals menu.
Autonomy levels
Agents have a configured autonomy boundary — how far they may proceed without asking. Exact labels depend on your UI version; conceptually:
| Level | Behaviour |
|---|---|
| Supervised | Most writes and sends require approval |
| Balanced | Low-risk reads auto; writes/sends over threshold ask |
| Autonomous | Only always-ask rules and high thresholds block |
Start supervised for new agents and integrations; loosen after you trust behaviour in audit.
Value thresholds
Tool calls can carry a monetary value (from capa-supplied semantics). If the value exceeds the agent's or department's threshold, the run waits for approval.
Examples: invoice amount, order total, refund size. Reads typically have zero value and pass unless on an always-ask list.
Always-ask rules
Some actions always require approval regardless of value — e.g. delete record, send external email, change permissions. Capas ship guardrail presets with sensible defaults; you can tighten further per department or agent.
Roles and permissions
Users authenticate via the setup wizard and local accounts (or dev-login on localhost during evaluation). Roles (e.g. org admin, operator) control who can:
- Install and enable capas
- Approve high-risk actions
- View audit and secrets configuration
- Manage departments and agents
Configure roles in Access & roles and assign people under Users.
Approval channels
Default: My work in the app (also header badge).
Optional capas deliver approvals to Telegram or WhatsApp so on-call staff can approve without logging into the UI. The same approval record is used; only the notification channel differs.
Audit trail
Every governed action creates an audit event: who (agent / user), what tool, arguments summary, approval id if any, timestamp. For deployments that enable it, events may be HMAC-chained for tamper evidence.
Export audit data from Audit in Settings, or include Postgres backups for full tenant records — see Backup and restore.
Budgets
Model usage can be capped per tenant, department, or agent. When budget is exceeded, new runs may be blocked or require admin override — configure in settings according to your deployment.
Security reminders
- Secrets live in an encrypted store; agents and the Copilot do not read raw credentials.
- Capas are executable code — install only from sources you trust.
- Dev-login must never be exposed on a public host; set
OC8_ENV=prodand configure real login before sharing a network URL — see DEPLOY.