Make artifact promotion idempotent across lost CI responses
A CI runner loses the promotion response and retries, creating competing rollout records for one digest.
- Focused work estimate
- 5h + prerequisites
- Priority in the scenario
- Medium
- Engineering practice
- Idempotency · Transactions
Estimated field mix
- Platform engineering60%
- Database engineering40%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional reporting API is rebuilt separately for staging and production. Different dependency resolutions and mutable tags make incident rollback unreliable.
Setup prerequisites
- Create a tiny local HTTP service and nonprivileged image build.
- Use synthetic registries or provider fixtures; no production deployment.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- AIMAGE-101 · Exclude local credentials and bulky artifacts from the image context
- AIMAGE-102 · Pin service build inputs to immutable identities
- AIMAGE-103 · Run the service image as an unprivileged user with a read-only root
- AIMAGE-104 · Record image provenance without embedding build credentials
- AIMAGE-105 · Promote the tested digest instead of rebuilding for each environment
- AIMAGE-106 · Stop promotion when required security scan results are missing
Acceptance criteria
- Use a stable promotion key bound to environment and digest.
- Retries resolve one durable promotion record.
- Changed digest under the same key returns conflict.
Implementation constraints
- Persist selection and audit metadata atomically.
Verification to include
- Drop a response after commit and retry the same selection.
- Reuse a promotion key for another digest and retain the original selection.
Deliverables
- Idempotent promotion command
Rollout and recovery
Enable for synthetic environments; pause conflicting promotions and retain their audit records.
Value of the work
For the engineer: Practice artifact identity, least privilege and reproducible delivery.
For the team: Review whether deployed bytes can be traced and rolled back reliably.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.