Commit Graph
5902 Commits
Author SHA1 Message Date
Kenneth SkovhedeandGitHub 07416dfdad Merge pull request #6416 from duplicati/feature/mac-template-icons
Use macOS template icons
2025-07-11 13:47:13 +02:00
Kenneth Skovhede d135409fa0 Fixed warnings 2025-07-11 11:17:07 +02:00
Kenneth Skovhede 157b410148 Make DBus packages sync 2025-07-11 11:15:49 +02:00
Kenneth SkovhedeandGitHub d2bca649cd Merge pull request #6414 from duplicati/feature/fix-serverutil-probing
Update ServerUtil probing
2025-07-11 11:05:12 +02:00
Kenneth SkovhedeandGitHub cbe44ff64c Merge pull request #6413 from duplicati/feature/better-error-commandline
Avoid stack traces for missing sources
2025-07-10 21:03:47 +02:00
Kenneth Skovhede fc478146f3 Update ServerUtil probing
This PR updates the probing logic to not try the database if a password is supplied on the commandline.

It also fixes a crash that could happen at an unwanted place, if the user does not have write access to the supplied data folder. After this, the application will still crash due to not having  a place to write information, but it does not crash in the preloader logic. This also prevents creating the folder while probing for the database.

This PR also fixes a case where the database could become encrypted, if the ServerUtil was providing an encryption key to an unencrypted database. Before this fix, the database would be encrypted with the key provided to ServerUtil, which would most likely cause the Server/TrayIcon to fail starting and perhaps crash.

This fixes #6377
2025-07-10 21:03:16 +02:00
Kenneth Skovhede 6d63f86610 Avoid stack traces for missing sources 2025-07-10 18:01:44 +02:00
Carl Johnsen 34ec5323d2 Accidentially changed the name of the environment variable for custom SQLite options 2025-07-10 15:22:28 +02:00
Kenneth SkovhedeandGitHub e64d4b48de Merge pull request #6408 from duplicati/feature/report-errors
Throw exception on error
2025-07-08 18:05:19 +02:00
Kenneth Skovhede 6835615b6d Throw exception on error
This PR changs the logic for queued tasks, so they throw if they fail. Without this fix, some tasks may look like the succeeded, when they actually failed.
2025-07-08 17:01:35 +02:00
Kenneth SkovhedeandGitHub 9b3cbbaa63 Merge pull request #6406 from duplicati/feature/faster-status-update
Faster progress update
2025-07-08 17:00:18 +02:00
Kenneth Skovhede 32f0283097 Fix bugreport create
The new SQLite library does not like to do VACUUM within a transaction. This PR updates it to run VACUUM outside the transaction.
2025-07-08 14:37:49 +02:00
Kenneth Skovhede e14c8bb6c7 Faster progress update
The default is to report progress every second.
In some cases the report output is stuck at the "Starting backup..." phase.

This PR adds a new `Starting_Operation` enum to indicate that we do not yet know which operation is starting.

Then an additional trigger is added to flush the progress when the pahse changes. This means that as soon as we know which operation is active, this will be flushed to the UI.
2025-07-08 14:20:06 +02:00
Kenneth SkovhedeandGitHub 988ba7fd91 Merge pull request #6398 from duplicati/feature/improve-oauth-errors
Improve OAuth error handling
2025-07-07 18:10:02 +02:00
Kenneth SkovhedeandGitHub eb2bb571cf Merge pull request #6402 from carljohnsen/performance/list-root
Performance/List roots takes long time
2025-07-07 18:09:22 +02:00
Carl Johnsen 0a04d3e77e Moved filtering of common roots from the SQL query to C# 2025-07-07 17:09:29 +02:00
Kenneth Skovhede cb89572ef8 Setting DBNull.Value for null values 2025-07-07 17:04:07 +02:00
Kenneth Skovhede ae861b83ba Updated texts for index file replace option 2025-07-07 16:23:08 +02:00
Kenneth Skovhede 4fe678b5e1 Improve OAuth error handling
This PR updates OAuth handling to not retry if the request has been cancelled, as no further attempts will work, but the wait delay would still be applied.

Now the cancellation triggers immediately, even if we are in the wait stage.

If the server returns an error message, that message is now propagated to the client so the user can see what the problem might be.
2025-07-07 15:40:32 +02:00
Kenneth SkovhedeandGitHub dbba9268b2 Merge pull request #6395 from duplicati/feature/fix-gdrive-folder
Fixed creating folder with Google Drive
2025-07-07 12:31:26 +02:00
Kenneth SkovhedeandGitHub 015a00c77d Merge pull request #6394 from duplicati/feature/missed-backup-schedule-order
Run backups in order after startup
2025-07-07 12:30:45 +02:00
Kenneth Skovhede fa19725a9a Fixed creating folder with Google Drive
This fixes #6389
2025-07-07 11:46:20 +02:00
Kenneth Skovhede af20de27e1 Run backups in order after startup
This changes the order that backups are queue to better match their intended execution order.

If the machine is off for a day, the next time Duplicati starts, it will find all backups that were supposed to have run and queues these.

Before, the order of backups being queued would depend on the database order, essentially creation order.

This PR changes the logic to keep track of when they were supposed to run (first triggered time if multiple slots were skipped), and then adds the backups into the queue, so the job that was supposed to run first, will now be queued first.

This fixes #1476
2025-07-07 11:27:13 +02:00
Kenneth Skovhede cfb1fec331 Fixed compile issue 2025-07-04 16:29:30 +02:00
Kenneth Skovhede b955822773 Better capture of rethrown exception 2025-07-04 16:14:04 +02:00
Kenneth Skovhede 6502017c57 Merge remote-tracking branch 'origin/master' into feature/vanara-vss-backup 2025-07-03 17:09:30 +02:00
Kenneth SkovhedeandGitHub 5ff613b5da Merge pull request #6360 from carljohnsen/performance/mssqlite-async
Performance/Asynchronous database backend
2025-07-03 11:07:26 +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 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 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 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 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
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
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 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
Carl Johnsen bb87e94ffa Post merge master fixes 2025-06-24 14:38:58 +02:00
Carl Johnsen e55c36081f Merge branch 'master' into performance/mssqlite-async 2025-06-24 14:24:09 +02:00
Carl Johnsen f9111a9dde Made RestoreHandler call the DisposeAsync instead of Dispose on the LocalRestoreDatabase 2025-06-24 12:05:15 +02:00
Carl Johnsen 8c9f129b8a Removed unused parameter 2025-06-24 12:04:49 +02:00
Carl Johnsen 79b63ee4b2 Fixed race condition on creating and disposing SqliteCommands from multiple threads sharing the same SqliteConnection 2025-06-24 12:04:31 +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 Skovhede b7a0053e5b Rewrote function to return minimal unique prefixes instead 2025-06-23 17:40:28 +02:00
Carl Johnsen f0b56c058f Removed duplicate project references in the SQLiteHelper project 2025-06-23 13:29:02 +02:00
Carl Johnsen e71adc8ad9 Added specific package versions to the Storj backend, as the default would pull in old sqlite packages that could conflict with the newer sqlite packages pulled in by Microsoft.Data.Sqlite 2025-06-23 13:28:37 +02:00
Carl Johnsen a3d2ffbcd0 Removed whitespace 2025-06-23 10:27:35 +02:00
Carl Johnsen 6ee76a29d3 Made the callback on a put command to the backend be a function returning an awaitable Task rather than an Action. 2025-06-23 10:27:09 +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