This PR changes the defaults when sources are missing. Previously, a missing source would abort the backup, unless `--allow-missing-source` was set.
With this change, if no options are set, a missing source will only trigger a warning.
If the option `--allow-missing-source` is set, no warning is logged.
To get the previous behavior, a new option `--abort-if-source-missing` is introduced that toggles this.
If no sources are found at all, the backup will abort no matter the flags.
When performing searches on some remote source, like MS365, the actual file paths are not meaningfull to the user. Instead, the UI will display metadata that makes it easier to navigate.
This PR updates the search feature to optionally look in metadata and find matches there as well, making it simpler to work with such data.
This PR fixes a bug that caused backup searching to be case-sensitive.
The PR also exposes the case sensitive-flag in the API endpoint so the UI can toggle case-sensitive searching.
This PR introduces a filter that redacts paths in log messages that are sent outside the current machine. This reduces the possibility that sensitive information is accidentially reported to an external party.
For self-hosted solutions, the option `--allow-paths-in-log-messages=true` will skip the redaction step and report the original path.
On the first connection attempt, the autentication can be a bit slower due to the setup, causing it to time out. This PR adds a specific timeout for authentication so the calls do not time out.
This updates some minor issues that would cause warnings or make things appear to not work, even though they would work fine when actually running a backup.
This changes the way license usage is calculated. Previously the licenses would prohibit enumerating more than what was licensed. This had the benefit that the backup engine was unaware that more items exists.
However, this also prevented filtering items, as the enumeration happens before the filters are applied.
With the new approach, enumeration is applied without imposing limitations, but actually reading the items are limited. This allows filtering unwanted items, and they will not count towards usage.
The downside of this approach is that the backup will contain empty "folders" that could, at a glance, appear to contain everything, but are in fact just empty folders.
To mitigate this, the warning message now explictly mentions that some folders may be empty.
This PR adds a single API endpoint for listing contents of remote source or backend. With this API, we can greatly simplify the FE as it does not need to know about webmodules for each provider, but can just use the single API.
To support this, the fulldisk module was updated slightly to return enumerable meta entries, similar to ms365 and gws providers.
The MSI update to a managed service component meant that the `Duplicati.WindowsService.exe` would only be installed if the "Install as service" option was selected.
This PR fixes it by directly installing `Duplicati.WindowsService.exe` in case the service install is not selected.