Add cleanup worker to delete stale checkpoint blobs

What does this MR do and why?

Adds CleanStaleCheckpointBlobsWorker which deletes duo_workflows_checkpoint_blobs rows older than the existing CHECKPOINT_RETENTION_DAYS threshold, in batches of 1000. Runs nightly at 01:00 UTC via the cron schedule.

This matches the retention window already enforced for checkpoints and checkpoint writes.

Stack

This MR is part of a stack — merge in order:

  1. DB layer: !239245 (merged)
  2. API + service: !239247 (merged)
  3. This MR — cleanup worker (targets MR 1, parallel to MR 2)
  4. Workhorse + frontend — capability advertising (targets MR 2)

Branch now contains only the worker commit; the earlier accidental include of MR 2's commit was dropped during the latest rebase.

MR acceptance checklist

  • Tests added
  • Worker registered in all_queues.yml and schedule.yml

References

!238814 (closed)

Edited by Eduardo Bonet

Merge request reports

Loading