Commit Graph
12942 Commits
Author SHA1 Message Date
Kenneth Skovhede b2db71685f Introduced a common module interface to avoid repeated code 2026-01-14 09:52:37 +01:00
Kenneth Skovhede 6ac07531bd Change webmodule to have async return value 2026-01-14 09:49:56 +01:00
Kenneth SkovhedeandGitHub 201b5e1150 Merge pull request #6694 from duplicati/feature/add-authentication-region-support-for-s3
Add support for an authentication region for S3
2026-01-06 11:38:11 +01:00
Kenneth Skovhede 7a979464f1 Merge remote-tracking branch 'origin/HEAD' into feature/add-authentication-region-support-for-s3 2026-01-06 11:37:55 +01:00
Kenneth SkovhedeandGitHub 2b350cd66f Merge pull request #6693 from duplicati/feature/minor-bugfix-update
Minor fixes
2026-01-06 11:03:35 +01:00
Kenneth Skovhede 557fbd12d9 Fixed nullable issues 2026-01-06 10:22:53 +01:00
Kenneth Skovhede 80b60d2303 Fixed build error 2026-01-06 10:21:19 +01:00
Kenneth Skovhede 7ea545d454 Added cloudflare to list of safe domain names 2026-01-06 10:10:48 +01:00
Kenneth Skovhede 0b79785f07 Add support for an authentication region for S3
This adds support for the option `s3-authentication-region` which can be used to control the authentication region, which is required for some Minio setups.

This fixes #6562
2026-01-06 09:54:49 +01:00
Kenneth Skovhede 83779a9486 Minor fixes
- Added Cloudflare to list of known S3 provider domains.
- Removed AWS specific naming on the help texts.
- Fixed an edge case where calculating how many files to test with an empty list would crash
- Fixed a bug with getting a safe display url for very short urls
2026-01-06 09:48:23 +01:00
Kenneth SkovhedeandGitHub f34377fb76 Merge pull request #6686 from duplicati/feature/support-synology-dsm
Added support for Synology DSM
2026-01-05 14:45:23 +01:00
Kenneth SkovhedeandGitHub e37a636819 Merge pull request #6684 from duplicati/feature/support-remote-locking
Add support for remote locks
2026-01-05 14:44:37 +01:00
Kenneth SkovhedeandGitHub ac83beff61 Merge pull request #6687 from duplicati/feature/improve-contract-for-register
Improve API for getting registration status.
2025-12-19 12:58:33 +01:00
Kenneth Skovhede 7f11f9db2e Handle auth messages after being authenticated. 2025-12-19 11:44:19 +01:00
Kenneth Skovhede 204a563335 Updated authentication to cover all files, including static ones.
The static files are not XSRF protected but require a valid token.

Updated to an expiring memory cache instead of concurrent dictionary to avoid memory leaks with really long running sessions.
2025-12-19 11:43:52 +01:00
Kenneth Skovhede 975162989d Bumped ngclient again 2025-12-19 11:29:32 +01:00
Kenneth Skovhede 319586e6cf Bump ngclient 2025-12-19 11:24:54 +01:00
Kenneth Skovhede 03d0bc38bd Fixed high-res package icons 2025-12-18 16:23:46 +01:00
Kenneth Skovhede 940b5f031a Fixed integrated authentication.
API calls are now guarded by DSM auth, including XSRF protection.
2025-12-18 16:23:28 +01:00
Kenneth Skovhede f51f09664e Added support for XSRF token forwarding 2025-12-18 15:44:25 +01:00
Kenneth Skovhede 6dd3f34c3e Bump ngclient 2025-12-18 15:20:45 +01:00
Kenneth Skovhede 6f0b6df2a5 Merge remote-tracking branch 'origin/HEAD' into feature/support-synology-dsm 2025-12-18 11:31:37 +01:00
Kenneth Skovhede 0dbcb456cc Improve API for getting registration status.
This PR adds a new endpoint to explicitly wait for registration instead of reusing the registration endpoint for both starting and continuing registration wait.
2025-12-18 08:11:14 +01:00
Kenneth Skovhede 625c56b5c1 Updated new column to be not null, for consistency with other columns 2025-12-17 23:04:47 +01:00
Kenneth Skovhede 6e6e993765 Fixed issues with database transaction not being comitted.
Renamed the options to be more descriptive.
Rewrote the dependency query to be more readable and also check for metadata dependency.

Fixed an edge case where there were no modified files, and no new backup is created.

Fixed some issues with local/utc datetime compares.

Fixed logic for deleting filesets to only look at the filesets themselves. This makes the version lock follow the dlist file, and can create "dangling" volumes that have no filesets, but these will be picked up by compaction.

Updated tests to work correctly.

Added lock-info update option for the backup recreate call, so the UI can also re-create lock information on database rebuilds.
2025-12-17 22:27:38 +01:00
Kenneth Skovhede 0d5769cc62 Shared variable parsing 2025-12-17 13:04:42 +01:00
Kenneth Skovhede c4be4fe10c Fixed Minio locking implementation to not look at the bucket. 2025-12-17 13:04:21 +01:00
Kenneth Skovhede 0193d60ab3 Normalized exception handling in S3AwsClient.
Fixed a bug where a download could fail silently, making it look like the file was downloaded, but was empty or incomplete.
2025-12-17 13:03:54 +01:00
Kenneth Skovhede 6cdaa8d936 Added check to ensure lock is applied 2025-12-16 21:53:16 +01:00
Kenneth SkovhedeandGitHub 5196c45def Merge pull request #6685 from duplicati/feature/improve-proxy-support
Improved support for authenticating behind a proxy
2025-12-16 21:25:16 +01:00
Kenneth Skovhede da32b8cbcb Fixed issue with B2 API calls 2025-12-16 21:23:24 +01:00
Kenneth Skovhede 734c761395 Fixed a warning 2025-12-16 21:22:50 +01:00
Kenneth Skovhede 2496591707 Fixed compile issue after rename 2025-12-16 20:57:09 +01:00
Kenneth Skovhede 07f296622d Added support for Synology DSM
This adds back support for Synology DSM.

The implementation is compatible with DSM 7.2+ and integrates with DSM to forward requests through the DSM server into Duplicati.

The setup features database locks, using a random auth-key so DSM handles authentication.

The database is encrypted with a random key, and all data is stored in the `var` folder.

The uninstall can optionally remove the `var` data.

This is still a work in progress. The authentication integration with DSM does not currently work.
2025-12-16 14:47:37 +01:00
Kenneth Skovhede ba3c5eaa0a Bumped ngclient to be compatible 2025-12-16 14:41:15 +01:00
Kenneth Skovhede e2f37fb86b Improved support for authenticating behind a proxy
This PR adds new support for fine-grained control over the server/ui handling when the X-Forwarded-Prefix header is set.

Additionally, this allows getting a websocket token, so cases where the websocket is not pre-authenticated, but regular requests are authenticated, it works the same.

Added a new endpoint for probing for pre-authenticed conditions without causing a 401 to be logged.
2025-12-16 14:39:58 +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 SkovhedeandGitHub e5b72ef8e5 Merge pull request #6680 from duplicati/feature/add-internxt-s3
Added Internxt S3 hostnames
2025-12-12 16:07:45 +01:00
Kenneth SkovhedeandGitHub 9bd04575a3 Merge pull request #6681 from duplicati/release/canary-2.2.0.102
Version bump to v2.2.0.102-2.2.0.102_canary_2025-12-12
2025-12-12 13:23:02 +01:00
Kenneth Skovhede 507b5eed65 Version bump to v2.2.0.102-2.2.0.102_canary_2025-12-12
You can download this build from:

Binaries: https://updates.duplicati.com/canary/?version=2.2.0.102

Signature file: https://updates.duplicati.com/canary/duplicati-2.2.0.102_canary_2025-12-12.signatures.zip
v2.2.0.102_canary_2025-12-12 v2.2.0.102-2.2.0.102_canary_2025-12-12
2025-12-12 13:03:15 +01:00
Kenneth Skovhede 0e68f53473 Added Internxt S3 hostnames 2025-12-12 12:04:13 +01:00
Kenneth Skovhede c07416d06d Added build dependencies 2025-12-12 11:53:07 +01:00
Kenneth SkovhedeandGitHub 965618ba23 Merge pull request #6678 from duplicati/feature/duplicati-storage-backend
Duplicati storage server backend
2025-12-12 10:36:47 +01:00
Kenneth SkovhedeandGitHub a34b398545 Merge pull request #6679 from duplicati/feature/bump-ngclient-0.0.179
Bumped ngclient to 0.0.179
2025-12-12 10:36:25 +01:00
Kenneth SkovhedeandGitHub 1a90181b54 Merge pull request #6667 from duplicati/feature/vacuum-db-on-pwd-change
Call `VACUUM` on the DB on password change
2025-12-12 09:47:43 +01:00
Kenneth Skovhede 4f4e68cdc4 Updated tests to match new direct restore destination picker 2025-12-12 09:45:52 +01:00
Kenneth Skovhede 618d044c65 Bumped ngclient to 0.0.179 2025-12-12 09:34:09 +01:00
Kenneth Skovhede af680f9a39 Merge remote-tracking branch 'origin/HEAD' into feature/vacuum-db-on-pwd-change 2025-12-12 09:24:16 +01:00
Kenneth Skovhede d7ab1b03ac Merge remote-tracking branch 'origin/HEAD' into feature/duplicati-storage-backend
Streamlined the use of SharedRemoteOperation
2025-12-10 15:33:35 +01:00
Kenneth SkovhedeandGitHub c20ee4103b Merge pull request #6670 from duplicati/feature/support-api-key-with-filen
Add support for Filen.io API key
2025-12-10 15:07:02 +01:00