Commit Graph
6383 Commits
Author SHA1 Message Date
aureliandevel ee3dbcd97a Merge branch 'feature/restore-volume-caching-revision' of https://github.com/aureliandevel/duplicati into feature/restore-volume-caching-revision 2026-04-04 16:43:34 +11:00
aureliandevel d760e1381a Add restore volume cache profiling summaries 2026-04-04 16:10:05 +11:00
aureliandevelandGitHub 9ea67febda Update RestoreVolumeCacheMinFreeLong description
Add default value to RestoreVolumeCacheMinFreeLong description
2026-03-02 00:02:51 +11:00
aureliandevel e7b998f909 Enhance restore volume caching: implement disk pressure eviction logic and add related options 2026-02-28 20:14:22 +11:00
Kenneth SkovhedeandGitHub 8884550af9 Merge branch 'master' into feature/full-disk-backup 2026-02-20 13:09:48 +01:00
Kenneth SkovhedeandGitHub 264f455319 Merge branch 'master' into feature/assign-license-from-console 2026-02-20 13:09:10 +01:00
Kenneth SkovhedeandGitHub 414789f209 Merge branch 'master' into feature/full-disk-backup 2026-02-20 10:46:40 +01:00
Kenneth Skovhede ab82719a6b Improved license key support
Added support for reporting the license key details in SystemInfo.

Added support for loading a key via the console connection, if used.
2026-02-20 10:39:51 +01:00
Kenneth SkovhedeandGitHub e8bc016791 Merge branch 'master' into feature/folder-status-indicator 2026-02-20 10:34:16 +01:00
Kenneth SkovhedeandGitHub 8cf2154037 Merge pull request #6768 from duplicati/feature/add-google-workspace-backup
Add support for Google Workspace backup
2026-02-20 08:56:40 +01:00
Kenneth SkovhedeandGitHub 4db8f01f23 Merge pull request #6737 from duplicati/feature/add-destination-repo
Added a connection string repo
2026-02-20 08:55:46 +01:00
Kenneth SkovhedeandGitHub a2d247adb3 Merge branch 'master' into feature/folder-status-indicator 2026-02-19 19:30:31 +01:00
Carl Johnsen 4d1e388e33 Less intrusive legacy restore changes
Due to the legacy restore flow being volume-centric, restoring has to become two phases: 1 for the priority files, and 2 for the "rest" of the files.
2026-02-19 17:52:53 +01:00
Kenneth Skovhede 01130f4cd5 Implemented option to enable folder-status service (disabled by default). 2026-02-19 17:30:57 +01:00
Kenneth Skovhede efc0b183a8 Implemented mapping of additional destination urls to remote-sync-json-config 2026-02-19 16:36:22 +01:00
Kenneth Skovhede 4bba0d4a41 Updated unmasking to support values from persisted ConnectionStrings 2026-02-19 16:35:49 +01:00
Carl Johnsen 1cadb775b8 Restored BackupHandler to its original 2026-02-19 15:54:09 +01:00
Kenneth Skovhede ab29642e10 fix(backup): wait for index file uploads to complete before starting backup
Add a synchronization point after recreating missing index files to
ensure all uploads are settled and committed to the database before
the backup process continues. This prevents a race condition where
the backup could start while index files are still being uploaded.

In this case, it would be possible for the backup to reference the file that is currently being deleted. This would be very rare in production as the delays have to align and the new data must be changed and processed very quickly to trigger the issue.

In unittests we have observed the issue for a while but only showing up very rarely.
2026-02-19 13:26:04 +01:00
Kenneth Skovhede 94d272e734 Added support for also storing the connectionstringId for additional target urls 2026-02-19 10:41:27 +01:00
Kenneth SkovhedeandGitHub e14ccd5cb7 Update BackupHandler.cs
Minor fixes
2026-02-18 11:54:42 +01:00
Kenneth SkovhedeandGitHub 93c3427293 Merge pull request #6765 from aureliandevel/fix/s3-host-port
fix(s3): preserve port in endpoint and fix path validation
2026-02-18 11:36:10 +01:00
Kenneth Skovhede ea6d94b035 Added support for storing multiple targets in database with backwards compatibility. 2026-02-18 11:06:08 +01:00
Kenneth Skovhede d7f9981f49 Fixed a few nullable warnings 2026-02-17 10:37:08 +01:00
Kenneth Skovhede b8e148d000 Merge remote-tracking branch 'origin/HEAD' into feature/add-destination-repo 2026-02-17 10:29:53 +01:00
Kenneth SkovhedeandGitHub 7dc3250d37 Merge pull request #6760 from duplicati/feature/fix-large-volume-inputs
Fixed large SQLite inputs
2026-02-17 09:44:22 +01:00
Carl Johnsen 798f3a6e9a Updated Vanara packages in the other places that also use them. 2026-02-16 12:43:59 +01:00
Kenneth Skovhede 910c56b3c4 Reworked the use of scopes.
Instead of requesting all scopes up front, each sub-section of the backup/restore will request the permissions that are relevant for the operation.

The effect is that it is not required to grant all permissions to get a backup running. If permissions are failing, that part of the backup will generate warnings for items that are excluded.
2026-02-15 22:03:57 +01:00
Carl Johnsen 9c91820832 Mount point should only have the directory seperator appended if it's set 2026-02-15 17:37:46 +01:00
Carl Johnsen 594efeca04 Merge branch 'master' into feature/full-disk-backup 2026-02-15 16:42:08 +01:00
Kenneth Skovhede 3bc449281a Similar naming on modules.
Added sourceprovider/destinationprovider to list of collected password fields
2026-02-15 10:42:19 +01:00
Kenneth Skovhede 1acf24a78f Merge remote-tracking branch 'origin/master' into feature/add-google-workspace-backup 2026-02-15 10:36:13 +01:00
Kenneth Skovhede d7a97915a1 Make service-account-json a password 2026-02-15 10:26:21 +01:00
aureliandevel 30fa7e8958 fix(s3): preserve port in endpoint and fix path validation 2026-02-15 17:22:03 +11:00
Kenneth Skovhede cf02c1addf Fixed large SQLite inputs
When performing queries with large inputs, there is a possibility that we reach the maximum number of possible parameters. If the query exceeds the maximum number of parameters the query fails.

This change uses a temporary table that will be created in the case the inputs exceed the total number available parameters, making sure the calls proceed as before with small inputs, but uses temporary tables on larger inputs.

Some tests were added to ensure the update works as expected, even with large inputs.
2026-02-11 13:34:58 +01:00
Carl Johnsen ced4ed8ea4 Legacy restore now also restores priority files first 2026-02-09 12:41:55 +01:00
Carl Johnsen e9012ada05 Added synchronization of priority files prior to restoring regular files 2026-02-09 12:28:21 +01:00
Carl Johnsen 92ed7e6757 Removed whitespace 2026-02-09 12:27:49 +01:00
Carl Johnsen 3fe57b308d Added functionality for priority files for restore providers 2026-02-09 11:36:15 +01:00
Kenneth Skovhede 7a993421f2 Fixed bug with scheme detection
This PR fixes a reported issue with strings that are less than 3 characters.

This is unlikely, but happens if the code tries to get the scheme of a path, like `/a` or `/`.

The updated logic returns the scheme if one exists, and it is less than 15 characters (to avoid leaking sensitive information).
2026-02-07 16:13:52 +01:00
Kenneth SkovhedeandGitHub 6e675f9aaf Merge pull request #6750 from duplicati/feature/guard-against-duplicati-source-paths
Handle duplicate source paths
2026-02-06 16:35:07 +01:00
Kenneth SkovhedeandGitHub 18c12b66c3 Merge pull request #6753 from duplicati/feature/check-temp-space
Check free temporary space
2026-02-06 15:56:29 +01:00
Kenneth SkovhedeandGitHub fd51ec2927 Merge pull request #6754 from duplicati/feature/add-selectel-s3-hosts
Added Selectel to list of S3 providers
2026-02-06 14:38:20 +01:00
Kenneth SkovhedeandGitHub baca571ef8 Merge pull request #6727 from duplicati/feature/prevent-restore-target-escape
Prevent restore target escape
2026-02-06 14:33:01 +01:00
Kenneth Skovhede 4c9983f677 Added Selectel to list of S3 providers 2026-02-06 14:22:39 +01:00
Carl Johnsen 0bba2fb986 Mountpoint is not supported for disk image backup 2026-02-06 12:16:23 +01:00
Kenneth Skovhede 05ea1dfafe Check free temporary space
This PR adds checks for free temporary space when starting the server and when restoring.

On systems that have limited space in the temp folder a warning will now be shown.

This is intended to capture issues on some Docker systems where /tmp is mounted in memory instead of being disk backed.

It will also detect the issue on other systems that are space constrained.
2026-02-06 10:37:27 +01:00
Kenneth Skovhede a31d6d4655 Fixed checks handling path traversal with mixed directory separator characters 2026-02-05 17:15:06 +01:00
Kenneth Skovhede cf8ef437c9 Fixed an edge case where the code would attempt to create a parent folder outside the restore target prior to applying metadata 2026-02-05 15:17:14 +01:00
Kenneth Skovhede e7aa60fba0 Handle duplicate source paths
This PR adds guards to prevent creating filesets with multiple files that have the same path.

While it should technically be impossible to have multiple entries that have the same path, it could happend either due to glitches or because the source data (manual lists, remote sources, etc) returns duplicates.

This PR adds a simple check for each folder to ensure that on a folder-level, duplicate paths cannot be introduced.

There is also a post-backup check to evict any duplicates, and the recreate process will reject duplicate paths.

Finally, the repair command will remove duplicates if they somehow manage to get into the database anyway.

A database-level prevention is not currently feasible as it needs a cross-table check for uniqueness, which requires more work from the database to check for each added file. Since this is expected to be a very rare event, the added processing was not justified.
2026-02-05 11:06:41 +01:00
Kenneth Skovhede 9dd6dba0c2 Merge remote-tracking branch 'origin/master' into feature/add-destination-repo 2026-02-05 10:26:45 +01:00