Commit Graph
15 Commits
Author SHA1 Message Date
Kenneth Skovhede ea6d94b035 Added support for storing multiple targets in database with backwards compatibility. 2026-02-18 11:06:08 +01:00
Kenneth SkovhedeandGitHub 562cb1199a Merge branch 'master' into feature/add-destination-repo 2026-02-02 11:00:39 +01:00
Kenneth Skovhede cf17d2617e Added a connection string repo
This adds a connection string repo, where connection strings can be stored.

The general idea is that it is possible to store connection strings, say an S3 connection, and then re-use the connection string for multiple backups, editing as needed.

The implementation supports listing connection strings, creating, updating, and deleting them.

The connection strings are masked so sensitive information is not available in the browser, and the logic patches connection strings internally to ensure markers are replaced with the correct values.

The connection string itself is stored in full, such that a Duplicati version roll-back will not make the connectionstring become invalid.

There is also an endpoint that allows updating existing backups using the connection string, so it is easy to rotate keys. The logic for this feature is that it retains: scheme, port, host, path, and any extra settings on the target url.
It does not remove settings from the target, but will overwrite or add settings from the connectionstring.
2026-01-30 13:59:47 +01:00
Kenneth Skovhede 1523f730e3 Added support for storing metadata in the database 2026-01-14 10:01:20 +01:00
Kenneth Skovhede 0f81b42146 Add support for remote locks
This PR adds support for locking files if the backend supports it.

To activate locking, set the option `--file-lock-duration=30D` and the backup will lock the files.

If the database is rebuilt with the intention of continuing the backups, use the option `--repair-refresh-lock-info` which will update lock information in the database after recreating the database.

The locking works by asking the backend to lock files after a backup has completed.

The implementation keeps track of which files are currently assigned a lock and prevents attempting to delete the files that are currently locked.

Note that the bucket should not have a default lock policy as Duplicati needs to finish the backup before the locking is applied.

In this initial version, Azure Blob Storage, B2, S3 and iDrive are supported with locking.

The CLI is updated to allow setting locks on a specific version. The backend tool is updated to allow setting locks on specific files.
2025-12-14 17:17:48 +01:00
Kenneth Skovhede 1d772127df Fixed wrong downgrade script 2025-09-22 14:29:52 +02:00
Kenneth Skovhede 34b6f9ea55 Implemented remotely managed backup configurations
This PR adds the ability to manage backup configurations outside of the the client.

The implementation ensures that locally created configurations cannot be affected by the remotely managed backups.

If the instance is not connected to a remote console, this has no effect.

This PR updates the local database to add the column `ExternalID` that tracks backups that are managed remotely.
2025-09-17 15:07:09 +02:00
Kenneth SkovhedeandGitHub 8a2f028f7a Merge branch 'master' into feature/add-blocksetentry-index 2025-05-16 19:02:26 +02:00
Kenneth Skovhede b3f43830cf Fixed query for Windows/Linux 2025-05-16 15:51:30 +02:00
Kenneth Skovhede 531664cb23 Added missing index for blocksetentry 2025-05-16 15:36:24 +02:00
Kenneth Skovhede 424ef6c5bf Rolled in index from #4706
This closes #4706
2025-05-10 22:30:05 +02:00
Kenneth Skovhede c3b082e9f5 Fixed rollback script 2025-05-10 22:13:41 +02:00
Kenneth Skovhede 2f12473398 Added missing index on remotevolume name 2025-05-10 10:02:08 +02:00
Kenneth Skovhede c8f8fb1a37 Less cryptic script comment 2025-04-24 16:42:57 +02:00
Kenneth Skovhede a0ecc5e05d Added a database downgrade tool 2025-04-24 16:36:14 +02:00