Skip to content

Approval Workflows

Approval workflows add governance to sensitive Forge operations. When a mold defines an approval flow, runs pause and wait for designated approvers to approve before execution begins.

  1. A user creates a run from a mold that has an approvalFlow section
  2. The run enters pending_approval status
  3. Approvers listed in the first step are notified
  4. An approver reviews the request and approves or rejects it
  5. If the step requires multiple approvals, additional approvers are notified
  6. Once all steps are approved, the run begins execution
  7. If any step is rejected, the run fails

Add an approvalFlow section to your mold YAML:

approvalFlow:
required: true
auto_approve_after: 86400 # seconds (24 hours) -- optional
steps:
- name: Security Review
description: Security team must approve production provisioning
approvers:
- security-lead@company.com
required_count: 1
- name: Platform Review
description: Platform team must approve resource allocation
approvers:
- platform-lead@company.com
- infra-lead@company.com
required_count: 1
FieldRequiredDescription
requiredYesSet to true to enable approval
auto_approve_afterNoSeconds before auto-approval (omit to require manual approval)
stepsYesOne or more approval steps, executed sequentially
steps[].nameYesDisplay name for the approval step
steps[].descriptionNoExplanation shown to approvers
steps[].approversYesEmail addresses of users who can approve this step
steps[].required_countYesHow many approvals are needed (usually 1)

Steps are evaluated in order. Step 2 does not begin until step 1 is fully approved.

  1. Navigate to Forge > Approvals
  2. Pending requests show the mold name, requester, and which step is waiting
  3. Click a request to see the full details: inputs, mold version, and any previous decisions
  4. Click Approve or Reject
  5. Optionally add a comment explaining your decision
StatusMeaning
pendingWaiting for approver decision
approvedAll steps approved, run will execute
rejectedDenied at any step, run will not execute
cancelledRequester cancelled the request
expiredApproval timeout reached (if auto_approve_after is not set)
  • Keep approval chains short. One or two steps covers most use cases.
  • Set required_count: 1 unless you genuinely need dual approval for compliance.
  • Use auto_approve_after for low-risk operations where you want a review window but don’t want to block indefinitely.
  • List multiple approvers per step so the request doesn’t stall if one person is unavailable.
  • Add a description to each step so approvers understand what they are approving and why.