Approval Workflows
Require human approval before a hook's command executes. Useful for production deployments and destructive operations.
Configuration
[hooks.approval]
required = true
timeout = "2h"
How it works
- A webhook triggers the hook
- The execution enters
PendingApprovalstatus - The approval appears on the dashboard at
/approvals - A user reviews the payload and approves or rejects
- If approved, the command executes normally
- If rejected or the timeout expires, the execution is cancelled
Approval states
| Status | Description |
|---|---|
PendingApproval | Waiting for human review |
Approved | Approved and queued for execution |
Rejected | Manually rejected by a user |
Expired | Approval timeout reached |
API
# Approve
curl -X POST http://localhost:8080/executions/{id}/approve
# Reject
curl -X POST http://localhost:8080/executions/{id}/reject
Combining with barriers
Approval and concurrency barriers work together. An approved execution still respects mutex/queue constraints.