This hand-picks the changes from #5049 by @gpatel-fr.
The change is to use a left-join to include all broken files, even if there are no entries in the Blockset table.
The update is only visual but makes the results consistent with the actual operation performed by purge-broken-files.
This close#5049
This moves the throttle support to the StreamUtil throttled stream, which allows multiple streams to share a throttle value, such that the throttle setting is applied to the entire communication from Duplicati, and not for each connection.
This also cleans up a bit in the progress reporting, where the backend manager now keeps track of the "active" transfer and only emits progress on that. Once it finishes, a new transfer is promoted a "active".
The delete call would select the same fileset multiple times if multiple retention options were present.
This fixes the selection to a distinct set.
This fixes#6127
This addresses [Issue](https://github.com/duplicati/duplicati/issues/6114).
Whenever in non-write context, the permissions of the folder are not set.
Changing pattern from static constructor execution.
This comes from suggestion on issue https://github.com/duplicati/duplicati/issues/6056
The chosen argument was --json which produces a json that wraps the result with extended properties such as in example:
``
{
"Timestamp": "2025-03-28T15:47:01.3368160-03:00",
"UnixTimestamp": 1743187621,
"Command": "import",
"Success": true,
"ExitCode": 0,
"Messages": [
"Importing backup configuration from ../2-firstbacku.json",
"Connecting to http://127.0.0.1:8200/...",
"No database found in../data/",
"Imported \"firstbackup (5)\" with ID 8"
],
"Exceptions": [],
"Imported": {
"Id": "8",
"Name": "firstbackup (5)"
}
}
``
The documentation will reflect all commands and schemas as this makes its way into Canary
It should be noted that I was unable to completely remove IPv4 on Windows 11 to a state where it would not provide the 127.0.0.1 loopback, even when disabling Ipv4 in various ways, including with registry flags.
On ubuntu/linux, after completely disabling ipv4 the ipv6 loopback was returned.