Add needs_archival exclusion reason to data retention framework

What does this MR do?

Adds a new needs_archival exclusion reason to the data retention policy framework design document.

Why?

The existing indefinite_retention reason covers core entity tables (for example users, namespaces, organizations) whose rows never age out. It does not fit tables whose data has a bounded lifetime in OLTP but cannot be deleted today because it must first be moved to an archival system. Teams currently have no clean way to declare that case.

needs_archival fills that gap and is distinct from indefinite_retention:

  • indefinite_retention — data stays forever; the table needs to be moved to cold storage eventually.
  • needs_archival — data has a bounded OLTP lifetime once an archival pipeline exists; the archival needs are captured in the work_item.

Changes

  • Added needs_archival to the allowed exclude.reason values in the field-spec table.
  • Added a bullet describing needs_archival in the "Allowed reasons" list.
  • Updated the Mermaid decision tree: split "Can the data be deleted?" into "Can the data be deleted without archival?" with a follow-up "Does the data need to be archived before deletion?" that routes to either needs_archival or indefinite_retention.

Companion MR in gitlab-org/gitlab updates the developer docs, framework code (EXCLUDE_REASONS), and specs to match.

Edited by Panos Kanellidis

Merge request reports

Loading
Loading