Calculate attachment expiry from the case closure instant
Files uploaded long before a case closes are being removed too early because the prototype starts the retention clock at upload.
- Focused work estimate
- 1h + prerequisites
- Priority in the scenario
- Medium
- Engineering practice
- Temporal modeling · Data lifecycle
Estimated field mix
- Privacy engineering70%
- Backend30%
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 support service keeps uploaded diagnostic files indefinitely. The exercise policy expires attachments 30 days after case closure, while a separately authorized investigation hold pauses removal. These are invented product rules, not legal advice or compliance certification.
Setup prerequisites
- Create synthetic cases, attachment metadata and a fake object store with controllable failures.
- Use an injected UTC clock and an authorized operator fixture; no real support uploads are needed.
Preceding work
No earlier ticket is required. Complete the project setup above.
Acceptance criteria
- Use case closure plus 30 elapsed days as the exercise expiry instant.
- Keep open cases ineligible and represent missing closure data explicitly.
- Return the policy version and reason with each eligibility decision.
Implementation constraints
- Use UTC instants and an injected clock; do not substitute local calendar dates.
Verification to include
- Evaluate immediately before and at expiry.
- Evaluate open and missing-closure fixtures without scheduling deletion.
Deliverables
- Retention decision function and boundary fixtures
Rollout and recovery
Run decisions in preview mode before enabling any removal path.
Value of the work
For the engineer: Practice temporal policy, deletion races, exception authority and truthful recovery reporting.
For the team: Develop inspectable retention behavior that a company can review against its own approved data policy.
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.