Current

Agent actions and approvals

How consequential agent actions run through approval modes, and how you review and decide them

Overview

An agent connected through the Doxa MCP server can run consequential actions, such as publishing a branch or adding a custom domain. Every action goes through one approval gateway. Each approval policy gives every call one mode:

  • allow: the action runs without waiting.

  • require_approval: the action creates an approval request and waits for a person to decide it in the dashboard.

  • deny: the action is blocked and does not run.

Approval modes protect your project from changes an agent makes on its own. You decide which actions run freely, which need your review, and which are never allowed.

Gated actions

The table lists each action kind, its default mode, the modes you can choose, and where you review a request.

KindDefault modeAllowed modesWhere you review it
docs.publishrequire_approvalall threePublish menu
docs.restorerequire_approvalall threeApproval page
domain.addrequire_approvalall threeApproval page
domain.removerequire_approvalall threeApproval page
project.createallowall threeApproval page
project.deleterequire_approvalrequire_approval, denyApproval page
generation.startrequire_approvalall threeApproval page

project.delete never offers allow. An agent can never delete a project without a person deciding first, unless you set it to deny.

Configure approval modes

You set approval modes on two dashboard pages.

SettingWhereWho can change it
Project approvalsProject settings, Agent approvals (/dashboard/projects/$projectId/settings/approvals)Owners and admins. Other members see the page read only.
Account defaultsAccount settings, Agent approvals (/dashboard/settings)You, for your own defaults, including project.create

The project page also sets the default of the erase checkbox in the approve panel, which is on by default. When checked, the publish approval erases the branch after it publishes. The same page sets whether a second person must decide a request. See Teams, roles and invites.

How changes apply

  • A change applies to new requests only. A pending request keeps the mode it was created with.

  • Changing an action to allow does not approve pending requests. A person still decides them.

  • Changing an action to block (deny) cancels pending requests that now resolve to deny. Each cancelled request shows the reason "Blocked by a project setting." or "Blocked by a user setting."

  • A user-level block cancels that user's pending requests in every project where no project setting decides first.

  • Each change to a value is recorded in the agent activity log with the old and new value.

Note:

A project setting takes precedence over your account default for the same action. If an agent's action is unexpectedly blocked or allowed, check the project's Agent approvals page before you check your account settings.

Review approval requests

When an action needs approval, the agent's request appears in the project's Requests page. You can filter requests by status and by agent name.

  1. Open the project in the dashboard and go to the Requests page.

  2. Select a request to see what the agent wants to do and why it needs your decision.

  3. Open the approval page (/approve/<id>) to approve or deny the request. For a publish, the approve panel shows the erase option described above.

A pending request stays pending until someone decides it, or until the agent cancels it with the cancel_approval_request tool. See Approval requests for the MCP tools that read and cancel requests.

Next steps