Back to all articles

Security · Guide

An approval should authorize an exact version of an action

Stop stale approvals from authorizing a changed draft or destination.

An approval is tied to one exact document version, not an edited successor.
Original AI-assisted editorial illustration · AAhouse

The approval gap

Consider an illustrative quotation assistant. A manager approves a draft, the customer address changes, and a queued job later sends the revised document. The visible approval exists, but it no longer describes what happened. Treat approval as a record of an exact action version: destination, material content, attachments, business record version, and relevant limits. A yes in a conversation is too ambiguous for this job.

Bind and recheck

Create a pending action with a stable identifier and content fingerprint. Show a readable summary and material fields to the approver, then persist who approved which version and when. Before executing, recheck permissions, expiry, and the fingerprint. Any material change should invalidate the approval. Avoid using a fingerprint alone as the interface; people need to understand the action they are authorizing.

Workflow at a glance

InputOrganizeReviewAct
Illustrative process map; adapt the steps to your team.

Different actions need different reviewers

A draft label change and an external message deserve different review paths. Define a small action matrix with owner, reviewer, validity period, and escalation route. Prevent the requester from silently assigning themselves a higher approval role. OWASP’s agent and authorization material supplies relevant control principles; this article proposes a versioned-action pattern, not a claim that clicking approval makes an operation safe or compliant.

Exercise the waiting period

Test a changed recipient, a removed manager, a replaced attachment, a duplicate click, and a job that wakes after approval expiry. The expected outcome should be no side effect and a useful explanation, not a cryptic failure. Track approval age and reapproval frequency so controls do not become an invisible backlog. If too many actions expire, improve the workflow design instead of extending every approval indefinitely.

Evidence for a disputed approval

Use a synthetic dispute to recover an exact approved version without opening unrelated data. Connect requester, reviewer, action, and outcome. Preserve rejected and expired states. Any later corrective action needs its own authorization instead of rewriting the old record to make the history look successful.

Sources and further reading

Editorial approach

AI-assisted original writing, checked against linked public sources. Practical recommendations and illustrative scenarios are editorial analysis, not reported client results. Source dates and product details may differ from this collection’s preparation date.

Need help turning an idea into a pilot?

Discuss your workflow