Commit Graph
11734 Commits
Author SHA1 Message Date
Kenneth Skovhede 0894747746 Bump ngclient to .130 2025-05-28 23:00:33 +02:00
Kenneth SkovhedeandGitHub cc6e57fd61 Merge pull request #6303 from duplicati/feature/remove-http-options
Removed HttpOptions
2025-05-28 22:50:28 +02:00
Kenneth Skovhede 720062b60b Merge remote-tracking branch 'origin/master' into feature/remove-http-options 2025-05-28 21:40:41 +02:00
Kenneth SkovhedeandGitHub 0207ad1516 Merge pull request #6299 from duplicati/feature/correct-transfer-progress-api
Websocket subscriptions
2025-05-28 21:40:21 +02:00
Kenneth Skovhede d13094a82a Added OAuth info to systeminfo 2025-05-28 21:39:54 +02:00
Kenneth Skovhede ff141d9456 Improved stop handling during backend retries 2025-05-28 21:39:31 +02:00
Kenneth SkovhedeandGitHub 06d2b602f7 Merge pull request #6301 from duplicati/feature/repair-broken-index-files
Adding repair for index files
2025-05-28 16:01:18 +02:00
Kenneth Skovhede 868711ec89 Reduced test time
Removed unused file
2025-05-28 15:05:33 +02:00
Kenneth SkovhedeandGitHub fb2ad7c4a2 Merge pull request #6306 from duplicati/feature/notify-on-invalid-backend
Give a custom error message if the backend is not supported.
2025-05-28 14:48:06 +02:00
Kenneth Skovhede f592029c3d Fixed rare deadlock on restore failure 2025-05-28 14:35:00 +02:00
Kenneth Skovhede 02439a1f3a Give a custom error message if the backend is not supported.
This fixes #1920
2025-05-28 12:58:30 +02:00
Kenneth Skovhede fb08a0b174 Fixed an issue with retry downloads causing errors 2025-05-28 12:49:29 +02:00
Kenneth Skovhede 55d821add1 Added support for disabling API extensions from the commandline
Also added extension that signals if websocket is supported.

Also removed the option to disable visual captcha as it is no longer used.
2025-05-28 12:47:42 +02:00
Kenneth SkovhedeandGitHub 6444e9a018 Merge pull request #6302 from duplicati/feature/test-cleanup
Minor test cleanups
2025-05-27 18:53:52 +02:00
Kenneth Skovhede bf29b6e3a3 Minor test cleanups 2025-05-27 17:17:11 +02:00
Kenneth Skovhede 3ebc50a89d Adding repair for index files
Since index files only contains information related to recreating the database, they can be recreated directly from a working database.

This PR adds an automatic repair feature that replaces index files if they are missing content. This will gradually repair remote index files if they are affected by the compact bug that re-wrote index files without the blocklists.

To fully repair, it is possible to run the `Test` command with the option `--full-remote-verification=indexonly` and a large number of samples. Since the new option `--replace-faulty-index-files` is default set to `true` this will repair any defective index files and ignore all others.

This update uncovered that the Test method would previously not verify the presence of blocklists in the index files. This is likely a very old bug, caused by the fact that the original implementation did not place blocklisthashes in the index files. The omission of this check is the reason the extent of the compact issue was not discovered earlier.

With this PR it is now also visible that there is ample room for error in creating the index files during the backup process. This is caused by the parallel processing and carry-over, where the index files are created on-the-go, so they are ready to upload once the blocks are filled.

While this is likely good for performance, it has some drawbacks.
- A failed block upload will cause a rewrite of the index file
- An elaborate callback system is needed to update the index file
- It is possible to race against the database and create extra blocklist hashes, bloating the index files (causes problems on verification)

A subsequent task is to rewrite the logic to not touch the index files outside the backend manager, so the backend manager will just use the database to create the index file. This means the same code will be invoked for both the create, the recreate, and the replacement.

For now, extra content in index files is logged with the verbose log level.

This fixes #6296
2025-05-27 17:15:02 +02:00
Kenneth SkovhedeandGitHub fcbf57638a Merge pull request #6300 from duplicati/feature/remove-old-files
Removed old defunct manual test files
2025-05-27 12:14:16 +02:00
Kenneth Skovhede d62b3e540b Removed old defunct manual test files 2025-05-27 12:13:40 +02:00
Kenneth Skovhede c8b9fb5c73 Websocket subscriptions
This PR adds the ability to subscribe to messages over a websocket.

To prevent polling data, the server can now push messages through the websocket, so the client can instantly update when new data is available.

The change is backwards compatible, still serving the status updates over the socket. If the client is providing the authentication token, it is auto-subscried to the legacy status message.

If the client is using the new authentication message, it needs to subscribe to get the status updates (and any other services it needs).

The event system has been extended to support new, and more accurate, events. This is the first step towards removing the general status update and the long-poll mechanism.

This also re-introduces the blocking marker, so the client can know if the operation is halted due to too many pending transfers.

Some endpoints have been moved to service implementations, to allow serving the exact same data from both endpoints and websocket.

This PR also updates the way the progress is handled, so that all transfers are returned to the client, and the transfer speeds for each transfer is calculated based on a small sample buffer, so the values are more accurate even if the program is paused during transfers.
2025-05-27 12:13:07 +02:00
marceloduplicatiandGitHub 0d4410d7e9 Merge pull request #6298 from duplicati/ci-status-update
Merging changes to CI status table.
2025-05-26 15:39:29 -03:00
marceloduplicatiandGitHub 61a1b7116d Update README.md
Updating status table of CI
2025-05-26 15:38:21 -03:00
Kenneth Skovhede d00264639f Removed HttpOptions
This fixes #5582
2025-05-26 14:13:16 +02:00
Kenneth SkovhedeandGitHub 6f5505f2a2 Merge pull request #6279 from duplicati/feature/issue2685
Default disable throttle for local destinations
2025-05-26 08:29:29 +02:00
Kenneth SkovhedeandGitHub e99bcd84f3 Merge pull request #6291 from duplicati/feature/remote-oauth-helper
Remove OAuthHelper
2025-05-26 08:28:44 +02:00
Kenneth Skovhede bc48135782 Fixed code to be compatible with System.Text.Json instead of NewtonSoft.Json 2025-05-24 15:50:37 +02:00
Kenneth Skovhede 6a42613f70 Fixed passing the FolderMissingException to the caller for triggering the autocreate 2025-05-24 15:34:38 +02:00
Kenneth Skovhede 0eef7ec49b Final removal of AsyncHttpRequest. 2025-05-24 13:55:19 +02:00
Kenneth Skovhede 9723b78279 Fixed nullability issues 2025-05-24 13:54:59 +02:00
Kenneth SkovhedeandGitHub ba1becd14f Merge pull request #6295 from duplicati/feature/simpler-ssh-key
SSH key supports direct content
2025-05-24 13:46:33 +02:00
Kenneth SkovhedeandGitHub 08f4ef897f Merge pull request #6292 from marceloduplicati/feature/openstack-httpmigration
Refactors OpenStack backend to use HttpClient
2025-05-24 13:46:13 +02:00
Kenneth Skovhede f3d24bafe7 SSH key supports direct content
Added support for providing the SSH key via a non-encoded key parameter, as the connection string is already url encoded.
2025-05-24 11:01:49 +02:00
Kenneth Skovhede c6327c0f1f Fixed copy-paste-issue 2025-05-24 10:56:33 +02:00
Kenneth Skovhede 06c5b14eda Minor cleanup to use the HttpClient API 2025-05-24 10:51:00 +02:00
Kenneth SkovhedeandGitHub ca336ba0fa Merge branch 'master' into feature/remote-oauth-helper 2025-05-24 09:53:22 +02:00
Kenneth SkovhedeandGitHub 93b4637a40 Merge pull request #6294 from marceloduplicati/feature/add-cloudstack-ci
Adds CloudStack backend tests to CI
2025-05-24 09:49:08 +02:00
Marcelo C. b15d643ede Add Cloudstack CI 2025-05-23 15:15:57 -03:00
Marcelo C. 262aca847d Exception Handling migrated from WebException 2025-05-23 12:09:11 -03:00
Marcelo C. 132508545c Openstack HttpClient migration 2025-05-23 10:37:42 -03:00
Kenneth Skovhede 70f092cf49 Reverted some uses of TryAddWithoutValidation 2025-05-23 14:52:07 +02:00
Kenneth SkovhedeGitHubCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
7e4c74691e Potential fix for code scanning alert no. 304: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-05-23 14:48:41 +02:00
Kenneth Skovhede 6e8cb85f46 Fixed bug with API introduced during migration 2025-05-23 14:27:40 +02:00
Kenneth Skovhede 1e8eb0b6f8 Common check for missing folder 2025-05-23 14:27:07 +02:00
Kenneth Skovhede 9ead8e04b6 Fixed GCS and GoogleDrive 2025-05-23 14:12:36 +02:00
Kenneth Skovhede 2d4eccaa33 Removed use of TryAddWithoutValidation as it can hide cases where the headers are not set. 2025-05-23 14:11:47 +02:00
Kenneth Skovhede 14741a3b43 Removed some checks for WebException that is no longer used.
Changed throwing WebException to throwing HttpRequestException
2025-05-23 14:02:03 +02:00
Kenneth Skovhede 6a9ed19e1a Updated Dropbox to use the helper method for translating exceptions 2025-05-23 14:01:03 +02:00
Kenneth Skovhede c44bac7474 Removed checks for status code as that is done in the helper 2025-05-23 14:00:39 +02:00
Kenneth Skovhede 5758cee52f Fixed wrong name on env var 2025-05-23 13:08:46 +02:00
Kenneth Skovhede e6695056c8 Added GCS to CI testing 2025-05-23 13:06:01 +02:00
Kenneth Skovhede 5f50c8e77c Updated JottaCloud to not use OAuthHelper 2025-05-23 12:01:28 +02:00