Add local backup retention: keep-local toggle, download, delete-local
CI / Frontend build (push) Successful in 12s
CI / Script syntax (push) Successful in 3s
CI / Backend tests (push) Successful in 17s

Lets operators opt into keeping the local archive after upload (global
keep_local_backups setting), pull a remote archive back down into the
Proxmox dump directory for manual restore, and drop a locally-retained
copy without touching the remote object. Consolidates deletion so
retention, job-cascade delete, manual delete, and crash-recovery resume
all clean up local copies alongside remote ones.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Codex
2026-07-15 12:58:52 +02:00
parent 1288ba731d
commit 508decffe3
9 changed files with 404 additions and 35 deletions
+15
View File
@@ -46,6 +46,7 @@ DEFAULT_SETTINGS = {
"default_retention_value": "30",
"max_concurrent_backups": "1",
"timezone": _system_timezone(),
"keep_local_backups": "false",
}
@@ -186,3 +187,17 @@ def run_migrations() -> None:
"INSERT INTO schema_migrations(version, applied_at) VALUES (?, ?)",
(5, now),
)
if 6 not in applied:
now = utc_now()
conn.execute(
"""
INSERT INTO settings(key, value, updated_at)
VALUES ('keep_local_backups', 'false', ?)
ON CONFLICT(key) DO NOTHING
""",
(now,),
)
conn.execute(
"INSERT INTO schema_migrations(version, applied_at) VALUES (?, ?)",
(6, now),
)