Commit Graph
11853 Commits
Author SHA1 Message Date
Kenneth Skovhede fe2ecfec4a Added test for BackupRead if supported 2025-07-03 17:04:22 +02:00
Kenneth Skovhede 8ef2e85638 Don't set option if not supported 2025-07-01 17:05:20 +02:00
Kenneth SkovhedeandGitHub 29f5eb79e5 Merge branch 'master' into feature/vanara-vss-backup 2025-07-01 16:35:57 +02:00
Kenneth Skovhede 98deb8c576 Update support for VSS
This updates VSS to default use Vanara in favor of AlphaVSS which is no longer maintained.

The build for Vanara requires targeting `net8.0-windows7.0`, which will cause significant build overhead and complexity for cross platform builds.
To counter this, the setup is to have a single project, `Duplicati.Library.WindowsModules`, that is targeting `net8.0-windows7.0`.
The output from this project is then hoisted into the TrayIcon project for Windows builds so the files are available when debugging on Windows.
A top-level dummy executable project is added to ensure the project always builds.
The built modules are then loaded with reflection when requested.

With the use of Vanara there is now also support for using BackupRead to read files without making a VSS snapshot.
With BackupRead, it is possible to read locked files, but it still requires the SeBackupPrivilege as VSS does as well.

Unfortunately, the `vssapi.dll` file is not shipped for Arm64 on Windows, so even with Vanara this will not work, and only WMIC is supported on Arm64.
A workaround is to run Duplicati with x64 emulation if more advanced VSS features are needed (HyperV and MSSQL support).

This PR also updates options and filters out unsupported options for each operating system, so options that are not supported by the current OS are not reported and will give warnings if they are used, as opposed to just being ignored.

The release builder project has been updated to exclude the unused project, and purge unwanted outputs.
2025-07-01 16:32:19 +02:00
Kenneth SkovhedeandGitHub 57d85fcad5 Merge pull request #6372 from marceloduplicati/feature/pkill-termination-issues
Addresses shutdown and thread safety issues
2025-07-01 15:21:26 +02:00
Kenneth SkovhedeandGitHub ffde75a7ee Merge branch 'master' into feature/pkill-termination-issues 2025-07-01 15:18:58 +02:00
Kenneth SkovhedeandGitHub a386d8c7b8 Merge pull request #6375 from duplicati/feature/configure-refresh-token-lifetime
Configureable refresh token timeout
2025-07-01 15:18:33 +02:00
Kenneth SkovhedeandGitHub 7a498de3e5 Merge pull request #6382 from duplicati/feature/no-snapshots-for-testing
Default to disable snapshots when testing
2025-07-01 15:18:17 +02:00
Kenneth SkovhedeandGitHub 30cb3ae9a3 Merge pull request #6383 from duplicati/feature/drop-sebackupprivilege
Update permission check to drop privilege
2025-07-01 15:18:06 +02:00
Kenneth SkovhedeandGitHub db9c6d98c0 Merge pull request #6384 from duplicati/feature/fix-temp-crash
Fixed crashs in debug mode
2025-07-01 15:17:54 +02:00
marceloduplicatiandGitHub 0ec1b15145 Merge pull request #6385 from marceloduplicati/feature/fix-trayicon-help-arguments
Fixes help argument handling.
2025-07-01 09:45:28 -03:00
Marcelo C. b7dc8e81fe Fixes typo and improves argument handling
Ensures the unmodified command-line arguments are passed to the help detect function.

Related to https://github.com/duplicati/duplicati/pull/5889#issuecomment-3020522797
2025-07-01 09:41:31 -03:00
Kenneth Skovhede 8ed3fa5d15 Removed limitation of token duration 2025-07-01 11:49:59 +02:00
Kenneth Skovhede 9d8f426c99 Fixed crashs in debug mode
This fixes the callstack walker to handle cases where the call frame has no assembly.
The code is only compiled for debug builds.
2025-07-01 11:47:30 +02:00
Kenneth Skovhede 9eb2ceada5 Update permission check to drop privilege
This PR adjusts the check for SeBackupPrivilege and unassigns the privilege after testing if it could be enabled.

This fixes #6317
2025-07-01 11:45:29 +02:00
Kenneth Skovhede ccbf3a1552 Default to disable snapshots when testing 2025-07-01 11:43:38 +02:00
Kenneth Skovhede 395a95b723 Configureable refresh token timeout
This PR adds an option to define the timeout for the refresh token. The token is default set to 30 days.

If the user interacts with Duplicati (i.e., loads the page) the refresh token is regenerated, meaning that the user is not asked to log in again unless the refresh token has expired fully.

With this PR it is possible to configure this duration to be a shorter period, but not longer than the 30 days.
2025-06-29 16:57:47 +02:00
Marcelo C. f7bb2d0e6b Ammending changes 2025-06-27 11:19:24 -03:00
Kenneth SkovhedeandGitHub 044befec8c Merge pull request #6367 from duplicati/feature/cleanup-throttle-options
No exempt throttle backends
2025-06-27 11:13:23 +02:00
Marcelo C. 3863dbe7ce Addresses shutdown and thread safety issues
Improvement on AvaloniaRunner, HttpServerConnection, and HostedInstanceKeeper to prevent race conditions during shutdown.

Adds cancellation tokens and locking mechanisms to ensure that operations are properly stopped and resources are released in a controlled manner.

Also handles a NullReferenceException during Avalonia shutdown, and avoids invoking `InstanceShutdown` or `ConnectionClosed` multiple times.
2025-06-25 15:24:04 -03:00
Kenneth SkovhedeandGitHub d47e224c6a Merge pull request #6370 from duplicati/feature/expand-envs-for-commandline
Expand envvars for UI commandline
2025-06-25 19:54:54 +02:00
Kenneth Skovhede 80c070e514 Expand envvars for UI commandline
This PR adds expansion of the UI "commandline" feature when running a backup, similar to what the regular runner does when running the backup.
2025-06-25 10:06:36 +02:00
Kenneth SkovhedeandGitHub 3e84dc97fa Merge pull request #6369 from duplicati/release/canary-2.1.0.120
Release/canary 2.1.0.120
2025-06-25 06:34:19 +02:00
Kenneth Skovhede 2d45ef44ee Version bump to v2.1.0.120-2.1.0.120_canary_2025-06-24
You can download this build from:

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

Signature file: https://updates.duplicati.com/canary/duplicati-2.1.0.120_canary_2025-06-24.signatures.zip
v2.1.0.120_canary_2025-06-24 v2.1.0.120-2.1.0.120_canary_2025-06-24
2025-06-25 00:39:50 +02:00
Kenneth Skovhede 3719935b1d No exempt throttle backends
This PR removes the default value of `file` as a throttle exempt backend, so all backends are  subject to throttle by default.

This change makes the option easier to work with as the empty string could not be used to undo the default value, and fixing this would make the options be applied inconsistently.

Also fixed two errors in the help text for the option.
2025-06-24 16:13:59 +02:00
Kenneth Skovhede 06feb91f29 Bumped ngclient 2025-06-24 07:49:16 +02:00
Kenneth SkovhedeandGitHub 86acc32c1c Merge pull request #6361 from duplicati/feature/handle-transitive-folders
Transitive virtual folders
2025-06-24 07:41:51 +02:00
Kenneth SkovhedeandGitHub afc3a306af Merge pull request #6362 from duplicati/feature/dont-report-fixed-files
Remove fixed index files from output
2025-06-23 21:39:50 +02:00
Kenneth Skovhede b7a0053e5b Rewrote function to return minimal unique prefixes instead 2025-06-23 17:40:28 +02:00
Kenneth SkovhedeandGitHub 582a8a2e05 Merge pull request #6363 from duplicati/feature/dont-add-extra-dashes
No extra dashes on direct restore
2025-06-23 11:02:25 +02:00
Kenneth Skovhede 95a8297888 More handling of encryption passphrase
This fixes #6318
2025-06-20 17:08:07 +02:00
Kenneth Skovhede 15863bdd10 No extra dashes on direct restore
This fixes #2605
2025-06-20 17:04:12 +02:00
Kenneth Skovhede 6912d89b99 Remove fixed index files from output
This removes index files that were succesfully repaired from the output, so the now-missing files are not reported as failures.

This fixes #6336
2025-06-20 16:40:21 +02:00
Kenneth Skovhede 67e431a715 Implemented new query to get root paths and their transitive virtual folders 2025-06-20 11:13:12 +02:00
Kenneth SkovhedeandGitHub 66b4d34af3 Merge pull request #6358 from duplicati/feature/add-completed-task-event
Add completed-task event to websocket
2025-06-19 14:51:19 +02:00
Kenneth SkovhedeandGitHub d91476918f Merge pull request #6357 from duplicati/feature/signal-update-after-metadata-change
Signal update after metadata change
2025-06-19 14:50:50 +02:00
Kenneth SkovhedeandGitHub fa36b705cb Merge pull request #6356 from duplicati/feature/correct-version-number
Return version numbers, and not ids
2025-06-18 21:16:46 +02:00
Kenneth Skovhede dc19695ddb Add completed-task event to websocket
This adds support for subscribing to a "completed task" event, that is triggered when a task completes.

Using this subscription removes the need to poll for task state.
2025-06-18 21:15:56 +02:00
Kenneth SkovhedeandGitHub dbc0e06367 Merge pull request #6353 from duplicati/feature/handle-empty-metadata
Added a check and repair for empty metadata
2025-06-18 09:57:23 +02:00
Kenneth Skovhede ad52ee9c43 Added flag to indicate if the backup has a local database attached 2025-06-17 16:51:44 +02:00
Kenneth Skovhede 5a075d3ced Changed logic for listing filesets in v2 API.
Now the file listing is always fetched from remote for temporary databases, to avoid cases where the local database exists.

This can happen if you refresh the page while on the restore selection page.
2025-06-17 16:37:18 +02:00
Kenneth Skovhede b72ad5fe75 Signal update after metadata change
This adds a notification message that is sent after a task has completed and the metadata is updated. This makes the websocket get a fresh list of backups, sorted as prefered.
2025-06-17 14:46:41 +02:00
Kenneth Skovhede 460f60f61c Return version numbers, and not ids
This fixes #6355
2025-06-17 11:56:12 +02:00
Kenneth SkovhedeandGitHub dba98e9bc4 Merge pull request #6354 from duplicati/feature/add-mega-s4
Added Mega S4 endpoints to list of destinations
2025-06-17 11:40:12 +02:00
Kenneth Skovhede bf9c0e1a95 Added Mega S4 endpoints to list of destinations 2025-06-17 09:14:06 +02:00
Kenneth SkovhedeandGitHub a2a4ad72c4 Merge pull request #6352 from duplicati/support/forwarded-prefix
Add support for `X-Forwarded-Prefix`
2025-06-17 08:20:24 +02:00
Kenneth SkovhedeandGitHub 9d287829c7 Merge pull request #6351 from duplicati/codex/create-unit-test-for-database-consistency
Add test for empty metadata recovery
2025-06-17 08:18:37 +02:00
Kenneth Skovhede 2c5c01160c Added a check and repair for empty metadata
This PR adds a check for empty metadatasets (length = 0) and replaces such sets with a default metadataset.

This fixes #6350
2025-06-16 16:35:07 +02:00
Kenneth Skovhede 8bb9ad4389 Add support for X-Forwarded-Prefix
This adds support for the `X-Forwaded-Prefix` that rewires the paths using a custom base, with a default of `/ngclient`.

This allows using ngclient behind a proxy.

This fixes #6278
2025-06-16 16:15:35 +02:00
Kenneth Skovhede 3eb8bb3cdc Add test for replacing missing metadata 2025-06-16 15:38:56 +02:00