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

  1. A webhook triggers the hook
  2. The execution enters PendingApproval status
  3. The approval appears on the dashboard at /approvals
  4. A user reviews the payload and approves or rejects
  5. If approved, the command executes normally
  6. If rejected or the timeout expires, the execution is cancelled

Approval states

StatusDescription
PendingApprovalWaiting for human review
ApprovedApproved and queued for execution
RejectedManually rejected by a user
ExpiredApproval 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.