docs/documentation/platform/secrets-mgmt/concepts/approval-workflows.mdx
Updating secrets in high-stakes environments like production carries real risk:
Approval workflows address these problems by introducing structured review and enforcement into the secret change process — similar to how pull requests gate code changes before they reach the main branch.
An approval workflow consists of two parts: a policy that defines what requires approval, and a change request that captures each proposed modification for review.
A policy targets a specific environment (and optionally a secret path) and assigns one or more approvers. When anyone modifies a secret that matches the policy, Infisical creates a change request instead of applying the update immediately.
Policies support several configuration options:
| Level | Behavior |
|---|---|
| Hard | Every matching change requires full approval before it can be merged. No exceptions. |
| Soft | Designated users can bypass the approval requirement in break-glass situations. All approvers are notified by email when a bypass occurs. |
When bypass is enabled, you can restrict it to specific users or groups. If no restriction is set, anyone can bypass. A bypass can only be performed by the person who created the change request — bypassers cannot bypass requests submitted by others.
When a user modifies a secret in a policy-protected environment, Infisical automatically creates a change request containing the proposed changes. The request follows this lifecycle:
stateDiagram-v2
[*] --> Pending: Secret modified
Pending --> Approved: Required approvals met
Pending --> Rejected: Approver rejects
Approved --> Merged: Changes applied
Pending --> Bypassed: Soft enforcement bypass
Bypassed --> Merged: Changes applied
Approvers are notified through email, Slack, or Microsoft Teams. They can then approve, reject, or (once sufficient approvals are met) merge the request from the Infisical dashboard.
After a change request is merged, the updated secrets are automatically synced to connected applications — for example, through the Infisical Kubernetes Operator — removing the manual propagation step.