Skip to content

Releases: Skyfay/DBackup

v2.10.1

Choose a tag to compare

@github-actions github-actions released this 18 Jul 16:37

Webhook GET/HEAD Support, SSO Improvements, and Multiple Bug Fixes

✨ Features

  • webhooks: Generic Webhook notification channels now support GET and HEAD HTTP methods, for compatibility with heartbeat/push-monitoring services like Uptime Kuma and Healthchecks.io. Thanks @Shlok-Zanwar (#123)
  • SSO: Added a new Profile > SSO tab where users can view, disconnect, and manually connect their linked identity provider accounts.

🐛 Bug Fixes

  • notifications: Fixed webhook and notification deliveries being logged as "Success" even when the adapter failed to send (e.g. DNS errors, timeouts). Thanks @Shlok-Zanwar (#123)
  • explorer: Fixed Database Explorer UI not updating when navigating with the browser's back/forward buttons. Thanks @Shlok-Zanwar (#126)
  • SSO: Fixed dashboard-created users failing to link to a matching SSO identity on first login, shown as "Unknown Error". (#128)
  • SSO: Deleting an identity provider now also removes every user's linked account for it, instead of leaving a permanently stale "Provider no longer available" connection behind.

🔒 Security

  • dependencies: Updated adm-zip to v0.6.0, fixing a high-severity vulnerability where a crafted ZIP file could trigger a 4GB memory allocation (GHSA-xcpc-8h2w-3j85).
  • vault: The Dropbox, Google Drive, and OneDrive OAuth token validation endpoints now require the credentials:read permission, closing a gap where any authenticated API key could probe the validity of a stored OAuth credential profile.

🎨 Improvements

  • SSO: Deleting an identity provider now warns how many users are connected and lists which of them have no other login method and would be locked out entirely.

🔄 Changed

  • deps: Bumped minor/patch versions across app, website, and docs, including better-auth, @better-auth/sso, @better-auth/passkey, next, react, react-dom, nodemailer, tailwindcss, @tailwindcss/postcss, vitest, @vitest/coverage-v8, vue, dropbox (v10.37.1), mongodb (v7.5.0), mssql (v12.7.0), @aws-sdk/client-s3 and @aws-sdk/lib-storage (v3.1090.0), node-cron (v4.6.0), radix-ui (v1.6.2), react-hook-form (v7.82.0), googleapis (v173.0.0), rate-limiter-flexible (v11.2.0), react-day-picker (v10.0.1), next-mdx-remote (v6.0.0), vitepress-plugin-tabs (v0.9.1), lucide-react (v1.25.0), and 16 @radix-ui/react-* packages.

📝 Documentation

  • api-docs: Synced the standalone API reference deployment with the in-app spec, which was missing the entire Credentials/Vault section, and documented 8 previously-undocumented endpoints (version history, database table browsing, dashboard calendar, storage verification, and cloud storage OAuth authorization).

🧪 Tests

  • SSO: Updated the deleteProvider() unit test to match the transactional delete (provider + linked accounts) introduced alongside the SSO provider deletion warning.

🐳 Docker

  • Image: skyfay/dbackup:v2.10.1
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.10.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 12:44

Firebird Support, New Website, and Multiple Bug Fixes

✨ Features

  • Firebird: Added Firebird (3.x/4.x/5.x) as a supported database source, with direct and SSH connection modes. Marked as Beta in the source type picker.
  • website: Launched a new website at dbackup.app with a blog, roadmap page, and product tour.

🐛 Bug Fixes

  • Redis: Database Explorer now shows a key count per database instead of always blank.
  • rsync: Fixed SSH private-key destinations failing with "Too many authentication failures" when the local SSH agent has other keys loaded.
  • vault: Recovery Kit downloads now include decrypt_backup.js instead of a missing-script warning. Thanks @jpb0418 (#120)

🔧 CI/CD

  • scripts: generate-stress-data.sh now also populates Redis and Firebird test containers.
  • scripts: Added test-vm-up.sh / test-vm-down.sh / seed-ssh-test-config.ts and a test:vm:delete shortcut to test SSH-mode adapters against a real remote host via a Multipass VM.
  • scripts: test-vm-up.sh now starts one container per database family instead of the full test matrix, to reduce VM memory usage.
  • scripts: test-vm-up.sh/seed-ssh-test-config.ts now install MongoDB's client tools and seed MongoDB and Firebird SSH sources, MSSQL is left out for now as the heaviest container.

🐳 Docker

  • Image: skyfay/dbackup:v2.10.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.9.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:12
e3ef0ca

Valkey Support, Storage Alert Fix, and Multiple Improvements

✨ Features

  • Valkey: Added Valkey as a supported database source. Uses the same RDB backup mechanism as Redis with correct version display.

🐛 Bug Fixes

  • storage alerts: Fixed "Missing Backup" alert firing incorrectly when a retention policy keeps the file count stable, making the alert appear even though backups were completing successfully.

🎨 Improvements

  • dashboard: The Storage Usage widget now shows the adapter-specific brand icon for each destination (matching the Destinations page) instead of a generic hard drive icon.
  • adapter form: The add/edit dialog is now scrollable when configuration fields exceed the available screen height, with action buttons always pinned at the bottom.
  • system tasks: Health check log cleanup now runs once a day via the "Clean Old Data" task instead of on every health check run, reducing unnecessary database load.
  • system tasks: Removed a redundant hourly storage snapshot cleanup that duplicated the daily "Clean Old Data" cleanup.
  • database: The internal SQLite database now runs in WAL mode with a busy timeout, so readers no longer block writers and concurrent writes wait briefly instead of failing instantly with "database is locked". Configurable via the new SQLITE_WAL_MODE environment variable (default: true).

📝 Documentation

  • Redis: Updated supported version documentation from 6.x to 2.8+ to reflect actual compatibility.
  • installation: Documented the -wal/-shm companion files created by the internal database's WAL mode.

🐳 Docker

  • Image: skyfay/dbackup:v2.9.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.8.0

Choose a tag to compare

@github-actions github-actions released this 28 Jun 13:09
c847f72

Notification Templates, Per-Job Event Filters, and Multiple Bug Fixes

⚠️ Breaking: The per-job notification configuration has been replaced by Notification Templates, and existing job notification settings are not migrated automatically. After updating, every backup job loses its notification setup and must be reconfigured: create a Notification Template under Templates -> Notification Templates (assign channels and pick the Success/Partial/Failed events per channel), then assign it to each job via the job edit form. You can mark one template as the default so it is pre-selected for new jobs.

✨ Features

  • notifications: Job notification triggers redesigned - select any combination of Success, Partial, and Failed outcomes per job instead of a fixed preset. (#117)
  • notifications: Added Notification Templates - reusable templates with per-channel event filters (Success/Partial/Failed) that can be assigned to multiple backup jobs, replacing the per-job flat channel configuration.

🐛 Bug Fixes

  • users: Fixed "Create Group" and "Create API Key" dialogs where the footer buttons were rendered inside the scroll area instead of being fixed at the bottom, and scrolling was broken. Added missing DialogDescription to resolve the aria-describedby accessibility warnings.
  • jobs: Fixed "API Trigger" dialog where scrolling was broken due to an ineffective grid-rows class on the flex-based DialogContent.
  • dashboard: Fixed Backup Calendar "Last 12 months" view missing today's backups when the server runs in a non-UTC timezone.
  • notifications: Fixed "Skipping notifications" not being logged when the event filter excludes the current backup status (legacy path).
  • jobs: Fixed cloning a job crashing when the source job has no notification templates assigned.
  • notifications: Fixed email preview not showing the logo because the URL pattern used for local replacement did not match the current docs.dbackup.app domain.

🎨 Improvements

  • notifications: New backup jobs now pre-select the default notification template (if one is marked as default), so it no longer has to be added manually each time. The selection can still be removed before saving.
  • history: Notification results (sent/failed per channel) are now shown directly in the execution log dialog, with a clickable pill per channel that opens the full notification preview.
  • history: Uploading step in the execution log viewer now shows orange instead of red for partial backup executions.

🧪 Tests

  • coverage: Raised overall unit test coverage from 84% to 92% (statements) / 94% (lines) by adding 270+ new tests across notification templates, SSH key conversion, restore pipeline, backup dump, dashboard service, storage adapters (SFTP, S3/R2/Hetzner, Google Drive, OneDrive, FTP), SSH client PKCS#8 path, integrity service, encryption service, job service, and runner initialization steps.
  • lint: Fixed 5 ESLint errors - renamed unused variables (wrapError, mockLog, callCount, capturedCallback) to underscore-prefixed equivalents, and removed stale no-throw-literal disable comment (rule was renamed to only-throw-error in newer typescript-eslint).
  • types: Fixed 7 TypeScript errors - replaced incorrect as Parameters<typeof generateKeyPairSync>[1] casts with as any for RSA/EC key generation, added as unknown as string for Ed25519 privateKey cast, and wrapped four Prisma mockImplementation async functions with as any to satisfy Prisma__SystemSettingClient return type.
  • test-infra: Reduced active test containers in docker-compose.test.yml to oldest + newest version per database family (MySQL 5.7+9.1, MariaDB 10+11, PostgreSQL 12+17, MongoDB 4.4+8.0, MSSQL 2019+2022, Redis 6+8). Middle versions are commented out and can be re-enabled on demand.
  • test-infra: Updated tests/integration/test-configs.ts to match - middle versions commented out, multiDbTestConfigs updated to use the newest active containers (MySQL 9, PG 17, MongoDB 8). Azure SQL Edge entry commented out alongside its container.
  • test-infra: Updated scripts/generate-stress-data.sh container references to the remaining active containers (MySQL 9.1, PostgreSQL 17, MongoDB 8.0).
  • test-infra: Updated scripts/setup-mssql-testdb.sh to skip the disabled mssql-edge container.
  • test-infra: scripts/seed-test-sources.ts now cleans up previously seeded but now-disabled adapter configs from the dev DB on the next pnpm test:seed run (MySQL 8.0, PG 13-16, MongoDB 5-7, Redis 7, Azure SQL Edge).

🐳 Docker

  • Image: skyfay/dbackup:v2.8.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.7.2

Choose a tag to compare

@github-actions github-actions released this 22 Jun 18:33
f7414d9

Multiple Bug Fixes, S3 Connection Stability Improvements, and Security Updates

🐛 Bug Fixes

  • dashboard: Fixed React "missing key prop" console warning on the dashboard bottom grid.
  • S3: Fixed intermittent ECONNRESET errors on S3 uploads caused by HTTP connections not being closed after each operation. (#115)

🔒 Security

  • nodemailer: Updated to v9.0.1 to address an arbitrary file read and SSRF vulnerability via the raw message option (GHSA-p6gq-j5cr-w38f).
  • vite: Updated to v7.3.5 to address a server.fs.deny bypass on Windows via alternate paths (GHSA-fx2h-pf6j-xcff).
  • deps: Patched 7 transitive dependency vulnerabilities (shell-quote critical, form-data, undici, js-yaml, esbuild, @babel/core, dompurify) via pnpm overrides.

🐳 Docker

  • Image: skyfay/dbackup:v2.7.2
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.7.1

Choose a tag to compare

@github-actions github-actions released this 20 Jun 10:35
2486bcf

Backup Calendar Heatmap, Partial Integrity Status, and Multiple Improvements

✨ Features

  • dashboard: Added a Backup Calendar Heatmap - a 12-month GitHub-style contribution graph showing daily backup outcomes (success, partial, failed, or no backup).
  • integrity: Integrity check executions now finish with a "Partial" status when some files fail verification, instead of "Success", making partial failures visible across the System Tasks list and Jobs Activity chart.
  • integrity: System notifications are now sent when an integrity check (scheduled or manual) finds one or more checksum mismatches. (#94)

🐛 Bug Fixes

  • storage: Periodic health checks no longer write test files to storage destinations, preventing file accumulation on storage with governance or object-lock retention policies. (#113)
  • audit: Fixed Audit Log table resetting to page 1 after every page navigation.
  • audit: Reduced Audit Log load time by skipping filter-stats queries on page changes and parallelizing the underlying DB queries.

🎨 Improvements

  • jobs: The edit job dialog now scrolls on small screens instead of clipping content below the fold.
  • storage: Manual connection test files are now isolated to a .dbackup/test/ subfolder with the adapter name and timestamp in the filename, and are excluded from the Storage Explorer and backup count statistics. (#113)
  • dashboard: Latest Jobs widget now fills the same height as the right column and shows as many entries as fit. Added an "Integrity Check" filter option covering both IntegrityCheck and Verification types.
  • dashboard: Jobs Activity chart and Job Status donut now include "Partial" executions with an orange indicator.

📝 Documentation

  • wiki: Overhauled the developer guide - corrected 50+ inaccuracies across all pages and added three new pages covering the Integrity Check system, Storage Alert system, and Credential Profiles.
  • wiki: Audited and updated the user guide - corrected factual errors (PostgreSQL dump format, permissions reference, Redis credential requirement), added 8 missing system notification events, documented the pgCompression job option and Database Explorer feature, and filled minor config table gaps across Telegram, MongoDB, and job settings.

🐳 Docker

  • Image: skyfay/dbackup:v2.7.1
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 13:02
d655deb

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.

🐳 Docker

  • Image: skyfay/dbackup:v2.7.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 10:24
df1a63e

Security Update, Vault Credential Profiles, OAuth Improvements, and Multiple Bug Fixes

🔒 Security Update: This release fixes a security vulnerability in DBackup's own code (GHSA-cj5h-46h6-72wc). Update as soon as possible.

⚠️ Breaking: OAuth storage destinations (Dropbox, Google Drive, OneDrive) and token-based notification channels (Discord, Slack, Teams, Generic Webhook, Twilio) no longer store secrets inline - they require a Vault credential profile to function. After updating, create a matching OAUTH, WEBHOOK, or TOKEN profile in the Security Vault and assign it to each affected adapter via the edit form. Adapters without an assigned profile will fail connection tests and backup/notification jobs until migrated.

✨ Features

  • credentials: Credential profiles now support WEBHOOK (Discord, Slack, Teams, Generic Webhook), OAUTH (Dropbox, Google Drive, OneDrive), and TOKEN (Twilio) types, allowing notification and storage secrets to be stored in the vault and resolved server-side.
  • OAuth: OAuth authorization flows (Dropbox, Google Drive, OneDrive) now require an assigned credential profile. Tokens are stored in the vault and the credential picker refreshes automatically after authorization.
  • OAuth: Authorization dialogs now open in a popup window instead of redirecting the current page.

🔒 Security

  • SMB: Passwords are now redacted from error messages and logs when SMB connections fail.
  • adapters: All adapter endpoints (list, create, update, clone) now return a safe DTO that strips all sensitive fields and replaces them with a secretStatus map - decrypted secrets are no longer serialized to API responses. Thanks @YHalo-wyh (GHSA-cj5h-46h6-72wc)
  • adapters: Notification webhook URLs and tokens (webhookUrl, botToken, authToken, authHeader, appToken, accessToken) and SSH keys (sshPassword, sshPrivateKey, sshPassphrase) added to SENSITIVE_KEYS and redacted in all DTO and strip operations. Thanks @YHalo-wyh (GHSA-cj5h-46h6-72wc)
  • OAuth: Refresh tokens for Dropbox, Google Drive, and OneDrive are now stored exclusively in credential profiles instead of adapter configs.
  • adapters: Adapter update (PUT) now preserves existing secrets via mergeSecrets - re-saving an adapter form without changing secret fields no longer overwrites stored credentials with empty values.

🎨 Improvements

  • adapters: Secret fields in the adapter form show a "saved - leave blank to keep" placeholder when a value is already stored.
  • credentials: Credential profile dialog extended to support creating WEBHOOK and OAUTH profile types.
  • encryption: The key resolution dialog now automatically switches to the raw key tab when no vault profiles are available.

🧪 Tests

  • adapters: Added audit tests verifying no sensitive fields are returned by any adapter API endpoint.
  • adapters: Added DTO unit tests verifying that notification secrets (Telegram botToken, Discord webhookUrl) are redacted and secretStatus flags are set correctly.
  • crypto: Added unit tests for stripSecrets, mergeSecrets, and getSecretStatus.

🐳 Docker

  • Image: skyfay/dbackup:v2.6.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.5.1

Choose a tag to compare

@github-actions github-actions released this 02 Jun 20:13
56a19a5

Security Update, Smart Recovery Improvements, and Multiple Bug Fixes

🔒 Security Update: This release fixes a security vulnerability in DBackup's own code (GHSA-h929-x237-c5h2). Update as soon as possible.

✨ Features

  • encryption: Added a "Key Required" fallback dialog for decrypted downloads and offline config restore. When Smart Recovery cannot find a matching key, users can manually select a vault profile or paste a raw hex key to complete the operation.

🐛 Bug Fixes

  • ftp: Fixed GFS retention on FTP servers without MLSD support by falling back to dates extracted from backup filenames when server-provided modification times are unavailable.
  • encryption: Smart Recovery (try-all-keys) is now applied during offline config backup restore and decrypted file downloads from the Storage Explorer - both previously failed with "Encryption Profile not found" when the profile ID changed after a key reimport. (#108)
  • encryption: Smart Recovery key-match heuristic now correctly identifies SQLite (.db) and Redis RDB (.rdb) backup files - previously both binary formats were misidentified as "wrong key" because they are not GZIP/PGDMP/TAR/plain-SQL.
  • restore: Fixed "Restore as New Database" mode silently ignoring the typed target name - switching back to "Overwrite Existing" after typing cleared the name without any indication.
  • sqlite: Fixed restore ignoring the target filename set in the database mapping table, causing the backup to overwrite the original file instead of creating a new one.

🔒 Security

  • adapters: Adapter connection-test and access-check routes now fail closed - permission checks deny access by default instead of falling through when the check is inconclusive. Thanks @endscene665 (GHSA-h929-x237-c5h2)

🎨 Improvements

  • retention: GFS retention calculations now use the configured system timezone for day/week/month/year bucketing instead of always using UTC.

🧪 Tests

  • retention: Added comprehensive GFS retention unit tests with realistic multi-month backup sets.

🐳 Docker

  • Image: skyfay/dbackup:v2.5.1
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64

v2.5.0

Choose a tag to compare

@github-actions github-actions released this 31 May 18:08
806c60f

Version History & General Improvements

✨ Features

  • Jobs Table: Added "Last Run" and "Next Run" columns to the Backup Jobs table. "Last Run" shows the start time of the most recent execution. "Next Run" is computed from the job's cron schedule using the system timezone and displayed in the user's configured timezone and date/time format.
  • Clone Modal: Cloning a Job, Source, Destination, or Notification now opens a confirmation dialog where the name for the clone can be customized before it is created. The default name is pre-filled as "Original Name (Copy)".
  • Database Explorer: Added a new "Version History" tab per source showing the current engine version, a step-line timeline chart of detected version changes over time, and a change log table (previous version → new version, edition, detected at). History entries are persisted to a new DbVersionHistory table.
  • System Tasks: The hourly "Update Database Versions" task now records a new DbVersionHistory entry whenever the detected server engine version (or edition for MSSQL) changes since the last check. The first observation per source is stored as a baseline.
  • Notifications: Added a new db_version_changed system notification event that fires when a database server's engine version changes between two consecutive checks. The initial baseline observation does not trigger a notification.

🐛 Bug Fixes

  • mssql: Fixed Database Explorer showing "No tables found" for databases that use non-dbo schemas - tables in all schemas are now returned and displayed with a schema.table prefix for non-dbo objects.
  • mssql: Fixed "Total Size" showing "undefined" in the Database Explorer General tab - BIGINT size values returned as strings by the database driver are now converted to numbers.

🔒 Security

🎨 Improvements

  • storage: SFTP, FTP, SMB, Rsync, and OneDrive adapters now reuse a single connection for the metadata sidecar (.meta.json) and the backup file upload per job. Previously each upload performed a full connect/auth/disconnect cycle, doubling the SSH/FTP handshake and OneDrive OAuth token requests. Introduced an optional openSession() method on the StorageAdapter interface, adapters without it transparently fall back to the previous stateless behavior, so S3, WebDAV, Dropbox, Google Drive, and local filesystem remain unchanged.

🔧 CI/CD

  • deps: Updated next + eslint-config-next 16.2.4 → 16.2.6, react + react-dom 19.2.5 → 19.2.6, mssql 12.5.0 → 12.5.5, nodemailer 8.0.7 → 8.0.10, basic-ftp 6.0.0 → 6.0.1, zod 4.4.1 → 4.4.3, vitest + @vitest/coverage-v8 4.1.5 → 4.1.7, @types/react 19.2.14 → 19.2.15, vue (docs) 3.5.28 → 3.5.35, @aws-sdk/client-s3 + @aws-sdk/lib-storage 3.1039.0 → 3.1057.0, @hookform/resolvers 5.2.2 → 5.4.0, date-fns 4.1.0 → 4.4.0, lucide-react 1.14.0 → 1.17.0, react-hook-form 7.74.0 → 7.77.0, tailwind-merge 3.5.0 → 3.6.0, tailwindcss + @tailwindcss/postcss 4.2.4 → 4.3.0.
  • deps: Added pnpm override kysely0.28.17 to work around a bug in @better-auth/kysely-adapter@1.6.13 that imports the removed DEFAULT_MIGRATION_LOCK_TABLE export from kysely@0.29.x, which Turbopack now catches as a hard build error.

🐳 Docker

  • Image: skyfay/dbackup:v2.5.0
  • Also tagged as: latest, v2
  • CI Image: skyfay/dbackup:ci
  • Platforms: linux/amd64, linux/arm64