Approvals¶
When a tool is configured with Critical access control, agents cannot call it without explicit admin approval. RunAgents implements a just-in-time (JIT) approval workflow that pauses the agent's request, creates an approval request, and resumes automatically once approved.
Navigate to Approvals in the sidebar to view and manage pending requests.
How Approvals Work¶
The Approval Flow¶
Agent calls tool Platform intercepts Admin reviews
with Critical access and pauses request on Approvals page
| | |
|-- POST /v1/charges ---->| |
| |-- Create access ------->|
| | request (PENDING) |
| | |
|<-- 403 APPROVAL --------| |
| REQUIRED | |
| | Approve / Reject
| |<------------------------|
| | |
| |-- Grant time-limited -->|
| | access |
| | |
|-- Retry tool call ----->| |
|<-- 200 OK -------------| |
- An agent calls a tool that has Critical access control (or
requireApprovalenabled). - The platform intercepts the request and returns a
403 APPROVAL_REQUIREDresponse to the agent. - An access request is created on the Approvals page with status
Pending. - An admin reviews the request and clicks Approve or Reject.
- If approved: a time-limited access grant is created (default 4 hours). The agent can retry the tool call and it will succeed.
- If rejected: the agent receives a
403 Forbiddenon subsequent attempts. - After the access window expires, the grant is automatically revoked. The next call will require a new approval.
The Approvals Page¶
The Approvals page lists all access requests with their current status. Each request shows:
| Column | Description |
|---|---|
| Requesting agent | The agent that triggered the request |
| Target tool | The tool being accessed |
| User | The end-user identity associated with the request (if identity propagation is configured) |
| Requested operation | The specific capability being accessed (if the tool has declared capabilities) |
| Status | Pending, Provisioned, Rejected, Expired, or Failed |
| Timestamp | When the request was created |
Approving a Request¶
Click on a pending request to review the details, then:
- Click Approve to grant access. The approval creates a time-limited policy binding.
- Optionally adjust the access duration (defaults to the tool's configured
defaultDuration, typically 4 hours). - Add a reason or comment for the audit trail.
Rejecting a Request¶
Click Reject to deny access. Optionally provide a reason. The agent will continue to receive 403 Forbidden responses when calling this tool.
Access Request Lifecycle¶
| Phase | Meaning |
|---|---|
| Pending | Request created; awaiting admin review |
| Provisioned | Approved; time-limited access is active |
| Rejected | Admin denied the request |
| Expired | Access window has elapsed; the grant has been automatically revoked |
| Failed | An error occurred while processing the request |
Automatic cleanup
Expired grants are automatically cleaned up by a background process. You do not need to manually revoke expired access.
Integration with Runs¶
Approvals are tightly integrated with the run lifecycle. When an agent is executing within an active run:
- The agent calls a restricted tool and receives
403 APPROVAL_REQUIRED. - The platform automatically:
- Creates a blocked action linked to the run
- Pauses the run (status changes to
PAUSED_APPROVAL) - Logs an
APPROVAL_REQUIREDevent in the run timeline
- The run appears in the Runs Awaiting Approval section on the Dashboard.
- An admin approves the request on the Approvals page.
- The platform automatically:
- Creates the time-limited access grant
- Resumes the run
- Re-invokes the agent to retry the blocked action
- Logs an
APPROVEDevent in the run timeline
This means the agent does not need to implement any retry logic -- the platform handles the entire pause-approve-resume cycle.
Run Correlation and Audit Trail¶
Each approval request can be linked to a specific run and action for full traceability:
| Field | Description |
|---|---|
| Run ID | The run that triggered the approval request |
| Action ID | The specific blocked action within the run |
| Payload hash | A hash of the request payload, ensuring the approved action matches what was originally requested |
Payload hash verification
When an admin approves a blocked action, the platform verifies that the payload hash matches. This prevents an agent from modifying the request between the time it was blocked and the time it was approved. A hash mismatch results in a 409 Conflict error.
This audit trail answers questions like:
- Which run triggered this approval?
- What exact request was the agent trying to make?
- Who approved it, when, and with what access window?
Configuring Tools for Approval¶
To enable the approval workflow on a tool, set its access control to Critical when registering the tool. You can also configure:
| Setting | Description | Default |
|---|---|---|
| Access mode | Set to Critical to require approval | -- |
| Approval group | The admin group that reviews requests (e.g., sec-ops, platform-admins) | -- |
| Default access window | How long approved access lasts | 4 hours |
| Auto-expire | Automatically revoke access after the window expires | Yes |
Example: Approval Workflow for a Payments API¶
Scenario: You have registered the Stripe API with Critical access control and a 2-hour default access window.
- An agent deployed for a customer support use case needs to issue a refund via Stripe.
- The agent calls
POST /v1/refundson the Stripe tool. - The platform intercepts the call and creates an approval request:
- Agent:
support-agent - Tool:
stripe-api - Operation:
refunds.create(POST /v1/refunds) - User:
alice@company.com
- Agent:
- The approval request appears on the Approvals page and the Dashboard.
- A
sec-opsadmin reviews the request, sees the agent, user, and operation, and clicks Approve with a 2-hour window. - The agent's run resumes, the refund call succeeds, and the run continues.
- After 2 hours, the access grant expires automatically. The next refund attempt will require a new approval.
What's Next¶
| Goal | Where to go |
|---|---|
| Configure a tool with Critical access | Registering Tools |
| Understand identity propagation in approvals | Identity Providers |
| Deploy an agent that uses restricted tools | Deploying Agents |
| Return to the overview | Dashboard |