Add capability to prevent deletion of objects
We should have the capability to prevent deletion of objects. With this set for an object, normal delete commands would be rejected.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Daniel Ford
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Future-deletes would probably still work with such an object. The use case is that an object will be created and cannot be deleted until the X-Delete-At time is reached.
This could be done with a flag called something like "X-Preserve" or "X-Prevent-Delete" which is checked when processing a delete request.
Suggest this feature be called Retention. The absence of this metadata value means object can be deleted, therefore, this feature is backwards compatible with existing data.
Suggest an additional feature; Event-Based Retention (EBR.) This is a minimum retention time, a maximum retention time and an EBR trigger. If EBR is not triggered, the object falls under maximum time. If EBR is triggered, the object falls under minimum time. This is used for when retention requirements may changed based on some event and law requires data retention based on that event. E.g. An employee leaves a company, or a patient is deceased.