Commit Graph
13154 Commits
Author SHA1 Message Date
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 a8255fa5ab Merge pull request #6749 from duplicati/feature/bump-ngclient-203
Bumped ngclient to 0.0.205
2026-02-06 15:55:09 +01:00
Kenneth Skovhede be761b3a62 More agressive FS path matching in test 2026-02-06 14:59:36 +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 Skovhede 917f059626 Bumped ngclient to .205 2026-02-06 14:37:11 +01:00
Kenneth Skovhede efac1ed06e Added extra info tro track a rare unittest failure 2026-02-06 14:37:01 +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
Kenneth Skovhede 1abbd3e008 Fixed UI test 2026-02-06 14:15:09 +01:00
Kenneth Skovhede c2fcd5a261 Bump to .204 2026-02-06 14:07:21 +01:00
Kenneth Skovhede 1937e285bc Fixed a renamed button in test 2026-02-06 14:05:45 +01:00
Kenneth Skovhede afeb5ca632 Added support for using a single environment variable for registering both agent and others. 2026-02-06 14:05:19 +01:00
Kenneth Skovhede c606dba53a Fixed issues with testing remote sources when masked 2026-02-06 14:04:51 +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 0f811308be Fixed symlinks tests by allowing restores outside target 2026-02-06 10:24:51 +01:00
Kenneth Skovhede 458fe8013e Don't normalize paths with test lookups 2026-02-05 17:22:01 +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 8ec1493d55 Fixed tests also working on Windows 2026-02-05 15:18:11 +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 601ee64b2c Bumped ngclient to 0.0.203 2026-02-05 10:02:08 +01:00
Kenneth Skovhede 56f74803fc Fixed edge cases for path traversal protection 2026-02-05 09:21:24 +01:00
Kenneth SkovhedeandGitHub e6c0b9b045 Merge pull request #6747 from duplicati/feature/macos-snapshot-support
Implement support for filesystem snapshots on macOS using APFS
2026-02-04 16:45:35 +01:00
Kenneth SkovhedeandGitHub 364f67822f Merge pull request #6738 from duplicati/feature/encrypt-and-mask-remote-sources
Remote source masking and encrypting
2026-02-04 15:38:27 +01:00
Kenneth Skovhede 44bef1e855 Implement support for filesystem snapshots on macOS using APFS (Apple File System). This allows disks-consistent backups and backing up files that are locked by other processes by creating and mounting local snapshots using tmutil.
Key changes:
- Add `MacOSSnapshot` class implementing `SnapshotBase`
- Add helper scripts for creating, finding, and removing APFS snapshots
- Update `SnapshotUtility` to initialize macOS snapshots
- Enable `snapshot-policy` option for macOS in `Options.cs`
- Update build configuration to include APFS scripts
- Update snapshot test utility with macOS support

This fixes #6409
2026-02-04 15:02:31 +01:00
Kenneth SkovhedeandGitHub a6b9002011 Merge branch 'master' into feature/encrypt-and-mask-remote-sources 2026-02-04 14:21:19 +01:00
Kenneth SkovhedeandGitHub dd28ecf8bc Merge pull request #6745 from duplicati/feature/improve-ssl-cert-for-webdav
Improve WebDAV SSL certs
2026-02-03 21:30:48 +01:00
Kenneth Skovhede 0f806c1a3a Improve WebDAV SSL certs
This PR now checks for the SSL certificate and the UI will offer to pin the certificate if this is not a trusted certificate.

Also, the sourceproviders and restoredestinationproviders now actually invoke the `Test` method when being tested.
2026-02-03 14:57:11 +01:00
Kenneth SkovhedeandGitHub 1b1719e924 Merge pull request #6718 from duplicati/feature/add-office-365-backup
Add office 365 backup and restore
2026-02-01 13:12:44 +01:00
Kenneth SkovhedeandGitHub b790bc07c3 Merge pull request #6742 from duplicati/feature/fix-cross-os-remote-source
Fixed issues with paths on Windows with remote sources
2026-02-01 13:12:18 +01:00
Kenneth Skovhede 1e7afbd49e Fixed issues with paths on Windows with remote sources 2026-01-31 12:15:55 +01:00
Kenneth Skovhede 8e954092e8 Fixed Windows compatibility and made more resilient against unexpected/missing data 2026-01-31 11:33:10 +01:00
Kenneth SkovhedeandGitHub c9d5030f8c Merge pull request #6723 from duplicati/feature/implement-rename-on-backends
Added support for renaming files on backends that support it.
2026-01-30 19:16:09 +01:00
Kenneth SkovhedeandGitHub 3db18c923c Merge pull request #6739 from duplicati/feature/fix-issue-6425
Fixed purge size calculation.
2026-01-30 19:15:24 +01:00
Kenneth SkovhedeandGitHub 89cdb85a11 Merge pull request #6740 from duplicati/feature/fix-issue-6553
Add guard against invalid entries
2026-01-30 19:04:54 +01:00
Kenneth SkovhedeandGitHub 13056db036 Merge pull request #6741 from duplicati/feature/fix-issue-6529
Added fix for manual changelist
2026-01-30 19:04:30 +01:00
Kenneth Skovhede f5293c7821 Fixed licenses to count each of the root entries, instead of a single shared number 2026-01-30 17:44:18 +01:00
Kenneth Skovhede ebbc564424 Added fix for manual changelist
This PR updates the logic for using `--changed-files` so the combined fileset no longer has additional (left-over) entries.

This fixes #6529
2026-01-30 17:33:32 +01:00
Kenneth Skovhede fa0c9c72a9 Add guard against invalid entries
This PR guards agains inserting entries into the DeletedVolume if they reference non-existing volumes, which can happen in error scenarios.

This fixes #6553
2026-01-30 16:49:03 +01:00
Kenneth SkovhedeandGitHub 4b2402d381 Merge pull request #6733 from duplicati/feature/fix-issue-6539
Fix issue with failed delete
2026-01-30 16:19:59 +01:00
Kenneth Skovhede 4a598019a8 Fixed purge size calculation.
This fixes the size calculation on purge to only include blocks once, and not include blocks that are still referenced elsewhere.
2026-01-30 16:08:39 +01:00
Kenneth Skovhede 1ee46e85a1 Disable renaming for iDrivee2 due to errors after rename 2026-01-30 15:38:46 +01:00
Kenneth Skovhede cee97bb01a Treat inconsistency state the same for both deleted and deleting, so a failed delete does not cause a database inconsistency 2026-01-30 15:09:17 +01:00
Kenneth SkovhedeandGitHub f9df5f4457 Merge branch 'master' into feature/implement-rename-on-backends 2026-01-30 14:40:13 +01:00
Kenneth Skovhede e009a0f3ec Remote source masking and encrypting
This PR adds masking to remote sources so the passwords are not leaked to the browser. The logic works the same as for TargetURL, where the sensitive fields are replaced by a password placeholder before being transmitted via the endpoints.

When data returns, the masking is removed by looking at the original source and the unmasked value is then encrypted before being stored in the database.

Since the sources is an array and not just a single field, the logic here uses the mount point as a "key" for figuring out which new sources map to the original sources. This is robust in the face of re-ordering, deletions and additions.

If there is just a single remote source (assumed most common) this will match even if the prefix does not, making it possible to change the prefix in this case.

For multi-remote sources, it is not possible to change the prefix without also re-typing all masked properties.

If there is a need later, we could extend the matching to look for how many unique protocols are there, and maybe servers as well to try to match better when the prefixes have been renamed.

There is a guard right before saving a source that rejects it if the source contains the placeholder so we ensure that even faulty logic cannot persist an invalid connection string.
2026-01-30 14:36:57 +01:00
Kenneth Skovhede 1094f2f4c6 Added more logging around failing test, and potentially fixed it (only fails in CI) 2026-01-30 08:38:13 +01:00
Kenneth SkovhedeandGitHub e61fadf40f Merge pull request #6732 from duplicati/feature/improve-support-for-remote-source
Extended support for remote sources
2026-01-30 08:27:24 +01:00
Kenneth Skovhede e1f6034d89 Fixed a sporadic issue with tests on Windows 2026-01-30 08:26:34 +01:00
Kenneth Skovhede 5580366a73 Fixed build issue 2026-01-29 22:50:06 +01:00