Backup policy settings
This page lists every backup.* setting a profile
can set, as the settings catalog in Depot 0.4.1 defines it. For how to use
them together, see Configure backups with policy.
- Depot 0.4.1. The list is complete for that release.
- Every backup setting applies to endpoints. It is resolved from the whole client, the site, the device group, and the endpoint, never from a user group or a person, so a backup setting assigned to a person has no effect.
- Every backup setting can be made mandatory.
- Every setting is applied the same way on Windows, Linux, and macOS, except where a row says otherwise.
Merge is how two values combine when two profiles at the same rank set the setting, or when two mandatory values meet. Between different ranks, the higher rank wins. See How profiles merge.
| Merge | Result |
|---|---|
| On wins | On if any value is on. |
| Off wins | Off if any value is off. |
| Smallest above 0 | The smaller number, where 0 loses to any positive value. |
| Largest | The larger number. |
| Combined | Every path from every list. |
| Single value | No combining. Two different values at the same rank are reported as a conflict. |
Settings
Section titled “Settings”| Key | Type | Default | Merge | What it does |
|---|---|---|---|---|
backup.allow_metered | Boolean | false | Off wins | Whether backups may run on a metered connection such as a phone hotspot. A skipped run shows as skipped, not failed. |
backup.allow_on_battery | Boolean | false | Off wins | Whether backups may run while a laptop is on battery. Otherwise the run waits for mains power. |
backup.browser_download_max_bytes | Bytes | 2000000000 (2 GB) | Smallest above 0 | The largest selection a technician may download from a backup as a zip in the browser. Larger restores go to an endpoint. |
backup.delete_floor_days | Integer | 7 | Largest | How many days every backup object is protected from deletion. Outpost refuses to sign a delete for anything younger. |
backup.enabled | Boolean | false | On wins | Whether Outpost Backup protects this endpoint. |
backup.exclude_paths | List | Empty | Combined | Files and folders never to back up, as paths or glob patterns. Temporary files, browser caches, Outlook .ost files, and cloud placeholder files are always excluded. |
backup.image_retention | Object | 4 weekly, 3 monthly | Single value | Which system images to keep. See Retention values. |
backup.image_schedule | String | 0 2 * * 0 | Single value | When the system image runs, as a five-field cron expression in the endpoint’s local time. The default is Sundays at 02:00. |
backup.include_downloads | Boolean | false | On wins | Whether each user’s Downloads folder is backed up with their other standard folders. |
backup.include_paths | List | Empty | Combined | Extra files and folders to back up, as paths or glob patterns, in addition to each user’s standard folders. |
backup.object_lock | Boolean | true | On wins | Whether to apply S3 Object Lock retention to backup objects when the bucket supports it, so even someone holding the bucket’s keys cannot delete them early. |
backup.post_script_id | String | Empty | Single value | The id of a script from the library to run after every backup. See Pre and post scripts. |
backup.pre_patch | Boolean | false | On wins | Whether to take a backup before installing patches. A failed or slow backup is reported but never blocks patching. |
backup.pre_script_id | String | Empty | Single value | The id of a script from the library to run before every backup. See Pre and post scripts. |
backup.primary_interval_minutes | Integer | 240 | Smallest above 0 | How often the primary file backup runs, in minutes. |
backup.primary_retention | Object | 6 most recent, 14 daily, 8 weekly, 12 monthly | Single value | Which primary file snapshots to keep. See Retention values. |
backup.primary_storage_profile_id | String | Empty | Single value | The id of the storage destination for the primary copy. See Destinations. |
backup.secondary_interval_minutes | Integer | 1440 | Smallest above 0 | How often the secondary file backup runs, in minutes. |
backup.secondary_retention | Object | 3 most recent, 7 daily, 4 weekly, 6 monthly | Single value | Which secondary snapshots to keep. See Retention values. |
backup.secondary_storage_profile_id | String | Empty | Single value | The id of the storage destination for an optional secondary copy. Empty means no secondary copy. |
backup.self_service_restore | Boolean | true | Off wins | Whether people can restore their own files from the tray app. They see only their own folders, and restored files never replace existing ones. |
backup.system_image | Boolean | false | On wins | Whether to back up the whole system as well as files: a disk image on Windows, every local filesystem and the disk layout on Linux, and the data volume on macOS (Preview). |
backup.upload_limit_kbps | Integer | 0 | Smallest above 0 | The most bandwidth backup may use to upload, in kilobits per second. 0 means no limit. |
backup.verify_interval_days | Integer | 7 | Smallest above 0 | How often the endpoint verifies a sample of its backups and test-restores a few files to a temporary folder. A failed check raises an alert. 0 turns verification off. |
Notes on individual values
Section titled “Notes on individual values”Retention values
Section titled “Retention values”The three retention settings each take a JSON object with six whole-number keys. The profile editor shows them as six fields:
| Key | Field in the editor | Keeps |
|---|---|---|
latest | Most recent | The newest snapshots, whatever their age |
hourly | Hourly | One snapshot for each of this many hours |
daily | Daily | One snapshot for each of this many days |
weekly | Weekly | One snapshot for each of this many weeks |
monthly | Monthly | One snapshot for each of this many months |
annual | Yearly | One snapshot for each of this many years |
A missing key counts as 0, which keeps none for that period. The profile
editor refuses any other key, such as a misspelling. A value that
cannot be read at all falls back to the default. The defaults are:
{ "backup.primary_retention": {"latest": 6, "hourly": 0, "daily": 14, "weekly": 8, "monthly": 12, "annual": 0}, "backup.secondary_retention": {"latest": 3, "hourly": 0, "daily": 7, "weekly": 4, "monthly": 6, "annual": 0}, "backup.image_retention": {"latest": 0, "hourly": 0, "daily": 0, "weekly": 4, "monthly": 3, "annual": 0}}Destinations
Section titled “Destinations”backup.primary_storage_profile_id and backup.secondary_storage_profile_id
take a storage destination’s id, not its name. When the primary is empty, or
names a destination that has been retired, the primary copy goes to the
client’s default destination, then the MSP’s default, then the Outpost
server’s own disk. Outpost Cloud Storage is the MSP’s default unless you set
another, except on Home Lab. A Windows network share applies to Windows
endpoints only.
Other endpoints skip it and use the next destination.
When a copy’s destination changes, the endpoint starts a separate repository at the other destination. The old one stays readable for restores and is never written again.
Pre and post scripts
Section titled “Pre and post scripts”backup.pre_script_id and backup.post_script_id name a script in the
script library. The script runs with its normal
signature checks. If the pre-backup script fails, the backup run fails. The
post-backup script runs after every run that opened the repository and never
changes the run’s result. If the script cannot be found or does not run on the
endpoint’s operating system, the backup runs without it.
Both scripts follow the endpoint’s script policy, the same rules as a
technician’s run. If script_execution.allowed_script_repository or
script_execution.approval_required refuses either script, the backup run
fails, takes no snapshot, and runs neither script. The run’s error starts with
The pre-backup script was refused, so this backup did not run. (or
post-backup) and then says which rule refused it and which profile or
security framework requires it. For example, client_library_only refuses a
script from the shared library, and approval_required refuses a version that no
second person approved. Fix the script or the setting, and the next run picks
up the change. Verify runs, repository maintenance, and restore browsing do not
run the scripts, so a refusal does not affect them.
Related
Section titled “Related”Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.