Skip to content

v2.64.0 — Recovery Point Locking

Latest

Choose a tag to compare

@marcpope marcpope released this 15 Jul 21:27

Recovery Point Locking

The headline feature of this release (#314): any recovery point can now be locked so it is never pruned and cannot be deleted — for example to preserve a specific point-in-time backup during litigation, an audit, or an investigation.

  • Each archive row has a Lock / Unlock toggle; locked recovery points show a padlock badge.
  • Protection is enforced inside borg itself, not just in the UI: a locked archive is renamed so the prune filter can never select it, on local and remote SSH repositories alike.
  • While locked, the archive cannot be deleted from BBS — and deleting its repository or client is blocked too, so the hold has no back door.
  • If the repository is busy when you click, the lock/unlock is queued and applies automatically when the running job finishes — no waiting around.
  • Unlocking returns the recovery point to normal retention rules.

Improvements

  • Restore progress (#343) — running restores show a real percentage in the queue and dashboard (expected file count resolved when the restore is queued, with a byte-based fallback) instead of an indefinite "Preparing…" bar.
  • Restore downloads no longer fill the OS disk (#344) — download staging moved to the backup data volume, with an up-front free-space check that refuses oversized downloads cleanly, automatic cleanup when a download is abandoned, and an hourly sweep for stranded staging directories. Previously a large download could fill /tmp and crash every running backup.

Bug Fixes

  • PostgreSQL backups with a dedicated backup user failed on v2.63.0 (#345) — the database enumeration introduced in v2.63.0 connected to a database named after the login user; it now uses the postgres maintenance database, matching pre-2.63 behavior with no new permission requirements.
  • Windows clients failed against Remote SSH storage (#347) — the per-job SSH key was written with Windows line endings, which OpenSSH rejects; keys are now written byte-exact on all platforms. Local repositories were unaffected.

Agent

The agent updates to 2.64.0 (PostgreSQL enumeration fix, Windows SSH key fix). Agents update automatically once the server is on 2.64.0.