The SelfOnly mode was removed as was the "removeAdditionalSources" logic. Instead, the new SelfLimited mode always removes sensitive information, such that by default we do not store any sensitive information, not even with encryption enabled.
This is required to avoid accidentially leaking secrets found in remote sources, or the target url, in case the leak happens somewhere else than on the remote destination.
Additionally, this resolves an issue where remote source information could leak via the DisplayNames property.
To reduce logic bugs a separate ResolvedTaskConfigMode extracts the 3 different dimensions of the selection, and a test is added to ensure it behaves as expected.
This PR revives the `store-task-config` option that was never shown in the user interface and extends the feature to allow more flexibility in exporting the configurations.
The `Auto` setting is now on by default. For encrypted backups, this will store the backup configuration of the current backup with the backup for easy restore of a configuration.
For unencrypted backups, nothing will be stored by default.
To manually pick the what backup configurations are stored, the following options are also available:
- None: no configuration is stored
- Self: The configuration of the current backup is stored
- All: The configurations of all backups are stored
If the backup is not encrypted, the data is stored without any secrets (encryption keys, passphrases, passwords, api-keys, etc).
To override this, the following two options are also present:
- SelfWithForcedSecrets
- AllWithForcedSecrets
Using one of these when encryption is enabled has no additional effects, but for unecrypted backups this will include all secrets in the backups in plain-text.
This fixes#6256
This fixes#3073