feat: automated daily SQLite database backups with retention

New DatabaseBackupHostedService + SqliteDatabaseBackupRunner:
- daily VACUUM INTO snapshot to <Data:Root>/backups (safe with WAL)
- catch-up backup at startup when none exists from the last 24h
- retention pruning (Backups:RetainCount, default 14)
- warns and stays idle on MySQL/MariaDB where external backups apply

Production previously had no automated database backup on Linux
(the /api/backup endpoint is Windows-DPAPI-only).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
cesnimda
2026-07-02 21:49:58 +02:00
parent e352aaeaac
commit 999d6e05e7
6 changed files with 298 additions and 0 deletions
+1
View File
@@ -48,6 +48,7 @@ tmp/
# Runtime data that must never be committed (DataProtection keys, exports, CV artifacts)
keys/
backups/
JobTrackerApi/exports/
JobTrackerApi/CvArtifacts/
JobTrackerApi/CvExports/