Summary: Automatically expire old successful backups according to keep-last-N and/or time-to-live rules, with UI visibility.
Objective / Problem
Operators can delete backups manually and GC unreferenced CAS objects, but there is no declarative retention (keep last N, expire after X days).
Proposed Solution
- Add retention fields (e.g.
keepLast, ttl) on repository or backup policy.
- Controller prunes expired Succeeded backups and runs CAS GC safely (never delete objects still referenced).
- UI: show retention settings and next candidates for expiry.
- Start simple: keep-last-N or TTL; combine later if needed.
Context / Technical Constraints
- Good first issue if scoped to one rule (keep-last-N) + tests; TTL can follow in the same issue or a PR series.
- Must not prune Running/Failed without an explicit policy.
QA
Objective / Problem
Operators can delete backups manually and GC unreferenced CAS objects, but there is no declarative retention (keep last N, expire after X days).
Proposed Solution
keepLast,ttl) on repository or backup policy.Context / Technical Constraints
QA