You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Backup Integrity Verification, Storage Explorer Caching, and Multiple Improvements
✨ Features
integrity: Added backup file integrity verification. The Storage Explorer shows SHA-256/MD5 checksums and last verification result per file, with a Verify Now button that runs as a tracked async execution with live progress and cancel support.
integrity: Native checksum verification for S3/R2/Hetzner (SHA-256 via object metadata), Google Drive (MD5 via API), OneDrive (SHA-256 via Graph API), and local filesystem - no download required. Both checksums are stored in .meta.json at upload time.
integrity: Post-upload verification is now opt-in for all storage destinations via system settings (local filesystem always verifies).
integrity: Scheduled integrity checks support two scan modes - Jobs (default, only verifies files linked to backup jobs) and All Files (full storage scan) - plus configurable filters (skip already-passed, max age, max file size). Jobs and storage destinations can individually opt out via a "Skip Verification" toggle.
storage: Storage Explorer file listings are now cached in SQLite for instant repeat visits. Cache is invalidated on backup create, delete, verify, and lock changes.
history: Execution logs can now be copied to the clipboard or downloaded as a .log file directly from the log dialog. Sensitive data (IPs, credentials, connection strings) is automatically redacted before export.
🐛 Bug Fixes
storage: Google Drive, OneDrive, and Dropbox now live-validate their stored OAuth token when the Connection tab is opened, showing an expiry warning with a Re-authorize button instead of a misleading green "authorized" status.
🎨 Improvements
dev: pnpm dev now automatically applies pending Prisma migrations and regenerates the Prisma client on startup.
storage: Storage Explorer cache uses surgical updates - create, delete, lock, and verify each patch only the affected cache entry instead of invalidating the full cache.
storage: A new "Pre-warm Storage Cache" system task (enabled by default, hourly) reconciles caches against remote storage and pre-populates the cache for adapters not yet visited.
storage: Stale cache entries trigger a background reconciliation via adapter.list() to detect files deleted outside DBackup without re-reading sidecars.
storage: Long backup names in the Storage Explorer are truncated with a tooltip showing the full name on hover.
integrity: Manual system task runs auto-redirect to the live execution history when "Auto-redirect on job start" is enabled.
ui: All data tables (Storage, Jobs, Sources, Destinations, Notifications) now support horizontal scrolling when columns overflow.
explorer: Database version history now detects and visually distinguishes downgrades - the change log shows an orange downward arrow for downgrades vs. green upward arrow for upgrades, and downgrade notifications are sent with a distinct "Downgrade" label and warning color.
explorer: Database Explorer table list now supports searching by name and sorting by Name, Type, Rows, or Size via clickable column headers.
🧪 Tests
tests: Updated unit tests for integrity service, upload step, storage service, and system task service to match the refactored verification interfaces.
tests: Fixed integrity service tests to use destinations scan mode explicitly and added skipVerification field to job service create test.
tests: Added unit tests for VerificationService (all verification code paths), SystemTaskRunner (execution lifecycle), logs/sanitize (credential and IP redaction), and logs/format (log text export). Extended IntegrityService tests to cover the jobs-mode scan path.