Get desktop application:
View/edit binary Protocol Buffers messages
JWT token
Backup schedules a backup operation. It accepts a plan id and returns empty if the task is enqueued.
plan_id - named 'value' for curl script backwards compatibility
optional, simulate backup without creating snapshot
Cancel attempts to cancel a task with the given operation ID. Not guaranteed to succeed.
Clears the history of operations
DoRepoTask schedules a repo task. It accepts a repo id and a task type and returns empty if the task is enqueued.
Forget schedules a forget operation. It accepts a plan id and returns empty if the task is enqueued.
GeneratePairingToken creates a new pairing token on the server that can be shared with clients to simplify peering. The token format is "<keyid>:<secret>#<instanceid>" — an opaque string the client pastes when adding a known host.
human-readable label for the token
time-to-live in seconds (e.g. 3600 for 1 hour)
max number of clients that can pair with this token, 0 for unlimited
permissions to grant to clients that pair with this token
the opaque pairing token string: "<keyid>:<secret>#<instanceid>"
GetDownloadURL returns a signed download URL given an operation ID and file path.
GetLogs returns the keyed large data for the given operation.
limit to the last n operations
GetSummaryDashboard returns data for the dashboard view.
ResticSnapshotList represents a list of restic snapshots.
PathAutocomplete provides path autocompletion options for a given filesystem path.
Restore schedules a restore operation.
RunCommand executes a generic restic command on the repository.
If not provided, we only generate the key and add host to known_hosts
Used in:
disable authentication.
users to allow access to the UI.
BackupProgressEntriy represents a single entry in the backup progress stream.
Used in:
Used in:
See https://restic.readthedocs.io/en/stable/075_scripting.html#error
BackupProgressStatusEntry represents a single status entry in the backup progress stream.
Used in:
See https://restic.readthedocs.io/en/stable/075_scripting.html#id1
0.0 - 1.0
BackupProgressSummary represents a the summary event emitted at the end of a backup stream.
Used in:
See https://restic.readthedocs.io/en/stable/075_scripting.html#summary
Used in:
only check the structure of the repo. No pack data is read.
check a percentage of pack data.
Used in:
ionice level to set.
nice level to set.
Used in:
Used in:
Config is the top level config object for restic UI.
Used as request type in: Backrest.SetConfig
Used as response type in: Backrest.AddRepo, Backrest.GetConfig, Backrest.RemoveRepo, Backrest.SetConfig
modification number, used for read-modify-write consistency in the UI. Incremented on every write.
version of the config file format. Used to determine when to run migrations.
The instance name for the Backrest installation. This identifies backups created by this instance and is displayed in the UI.
Used in:
Used in:
Used in: ,
Used in:
Used in: ,
error running any operation.
backup started.
backup completed (success or fail).
snapshot failed.
snapshot completed with warnings.
snapshot succeeded.
snapshot was skipped e.g. due to no changes.
prune conditions
prune started.
prune failed.
prune succeeded.
check conditions
check started.
check failed.
check succeeded.
forget conditions
forget started.
forget failed.
forget succeeded.
Used in:
template for the webhook payload.
Used in:
template for the webhook payload.
template for the webhook title.
priority level for the notification (1-10)
Used in:
Used in:
cancels the operation and skips subsequent hooks
fails the operation and subsequent hooks.
retry the operation every minute
retry the operation every 10 minutes
retry the operation with exponential backoff up to 1h max.
Used in:
Used in:
template for the webhook payload.
Used in:
template for the message text.
Used in:
Used in:
Used in:
Used in:
active pairing tokens generated by this instance (server-side only)
Used in:
the one-time secret used to validate the pairing request
human-readable label for this token
unix timestamp when the token was created
unix timestamp when the token expires
maximum number of clients that can pair with this token, 0 means unlimited
number of times this token has been used
permissions granted to clients that pair with this token
Used in:
a human readable name for the peer, typically the same as its instance ID.
the key ID of the peer. This must match the sha256 of the public key the client provides in handshake.
permissions granted to this peer.
Known host only fields
instance URL, required for a known host. Otherwise meaningless.
one-time pairing secret sent during first handshake to auto-authorize with the server. Cleared after successful pairing.
Used in: , ,
Scopes are any of '*', 'repo:<repo_id>' or 'plan:<plan_id>','-repo:<repo_id>','-plan:<plan_id>'. '*' means all repos and plans, 'repo:<repo_id>' means the repo with the given ID, 'plan:<plan_id>' means the plan with the given ID. '!repo:<repo_id>' means all repos except the one with the given ID, '!plan:<plan_id>' means all plans except the one with the given ID.
Used in:
Granted on a knownHost (by client → host): the local instance pushes operations for in-scope repos/plans up to that known host, and exposes those resource IDs/GUIDs in the resource list it sends. Granted on an authorizedClient: no effect. The host never pushes operations down to clients.
Granted on an authorizedClient (by host → client): in-scope repos/plans are included in the host's RemoteConfig and resource list sent to the client (read-only view of host config). Granted on a knownHost (by client → host): in-scope repos/plans are included in the client's RemoteConfig and resource list sent to the host (read-only view of client config).
Granted on an authorizedClient (by host → client): same view as READ_CONFIG. There is no client→host SetConfig path, so the "write" half is currently a no-op on the host side. Granted on a knownHost (by client → host): everything READ_CONFIG does, plus the client accepts SetConfig from the host for in-scope IDs (create/update/delete plans, create/update/delete repos).
Both peers must grant this for shared repos to flow: - Granted on an authorizedClient (by host → client): host pushes in-scope repos marked as 'shared' to that client via SetConfig. A scopeless grant acts as a wildcard (push every shared repo); a scoped grant restricts which shared repos are pushed. - Granted on a knownHost (by client → host): client accepts pushed shared repos that are new or already owned by this host. Always evaluated scope-lessly on the client — scopes are ignored here because the client doesn't pre-know the incoming repo IDs. If either side is missing the grant, no shared repos are transferred.
OpSelector is a message that can be used to select operations e.g. by query.
Used in: ,
Operation is the basic unit of record in backrest
Used in:
required, primary ID of the operation. ID is sequential based on creation time of the operation.
modno increments with each change to the operation. This supports easy diffing.
flow id groups operations together, e.g. by an execution of a plan. must be unique within the context of a repo.
repo id is a string identifier for the repo, and repo_guid is the globally unique ID of the repo.
plan id e.g. a scheduled set of operations (or system) that created this operation.
instance ID that the operation is attributed to, not necessarily the same as the instance that created it.
original instance guid is the verifiable instance that created the operation. Only set for remote operations created by sync.
optional snapshot id if associated with a snapshot.
required, unix time in milliseconds of the operation's creation (ID is derived from this)
ptional, unix time in milliseconds of the operation's completion
optional, human readable context message, typically an error message.
logref can point to arbitrary logs associated with the operation.
Used in:
indicates this was a dry run backup (no snapshot created)
OperationCheck tracks a check operation.
Used in:
output of the check operation.
logref of the check output.
OperationEvent is used in the wireformat to stream operation changes to clients
Used as response type in: Backrest.GetOperationEvents
Used as field type in:
OperationEventType indicates whether the operation was created or updated
OperationForget tracks a forget operation.
Used in:
OperationIndexSnapshot tracks that a snapshot was detected by backrest.
Used in:
the snapshot that was indexed.
tracks whether this snapshot is forgotten yet.
Used as response type in: Backrest.GetOperations
Used as field type in:
OperationPrune tracks a prune operation.
Used in:
output of the prune.
logref of the prune output.
OperationRestore tracks a restore operation.
Used in:
path in the snapshot to restore.
location to restore it to.
status of the restore.
OperationRunCommand tracks a long running command. Commands are grouped into a flow ID for each session.
Used in:
not necessarily authoritative, tracked as an optimization to allow clients to avoid fetching very large outputs.
OperationRunHook tracks a hook that was run.
Used in:
ID of the operation that ran the hook.
description of the hook that was run. typically repo/hook_idx or plan/hook_idx.
logref of the hook's output. DEPRECATED.
triggering condition of the hook.
OperationStats tracks a stats operation.
Used in:
Used in: ,
used to indicate that the status is unknown.
used to indicate that the operation is pending.
used to indicate that the operation is in progress.
used to indicate that the operation completed successfully.
used to indicate that the operation completed with warnings.
used to indicate that the operation failed.
indicates operation cancelled by the system.
indicates operation cancelled by the user.
Used in: , , , ,
unique but human readable ID for this plan.
ID of the repo to use.
paths to include in the backup.
glob patterns to exclude.
case insensitive glob patterns to exclude.
schedule for the backup.
retention policy for snapshots.
hooks to run on events for this plan.
extra flags to set when running a backup command.
skip the backup if no changes are detected.
Used in:
a unique identifier generated as the SHA256 of the public key
raw base64-encoded ed25519 private key seed.
raw base64-encoded ed25519 public key.
Used in:
max unused bytes before running prune.
max unused percent before running prune.
Used in: ,
a unique identifier generated as the SHA256 of the public key.
raw base64-encoded ed25519 public key.
Used in: , , , , , ,
unique but human readable ID for this repo.
URI of the repo.
a globally unique ID for this repo. Should be derived as the 'id' field in `restic cat config --json`.
plaintext password
extra environment variables to set for restic.
extra flags set on the restic command.
policy for when to run prune.
policy for when to run check.
hooks to run on events for this repo.
automatically unlock the repo when needed.
whether the repo should be auto-initialized if not found.
modifiers for the restic commands
if true, this repo is pushed to all authorized clients with read-config permission
set when this repo was pushed from a remote instance; marks it as non-editable
optional repo-level forget policy. If set, overrides per-plan retention policies.
Used in:
ResticSnapshot represents a restic snapshot.
Used in: , ,
tree hash
parent snapshot's id
added in 0.17.0 restic outputs the summary in the snapshot
RestoreProgressEvent represents a single entry in the restore progress stream.
Used in:
"summary" or "status"
0.0 - 1.0
Used in: , ,
Used in:
keep the last n hourly snapshots.
keep the last n daily snapshots.
keep the last n weekly snapshots.
keep the last n monthly snapshots.
keep the last n yearly snapshots.
keep the last n snapshots regardless of age.
Used in: , , ,
disable the schedule.
cron expression describing the schedule.
max frequency of runs in days.
max frequency of runs in hours.
clock to use for scheduling.
Used in:
same as CLOCK_LOCAL
Used in: , ,
a unique identifier generated as the SHA256 of the public key used to sign the message.
the payload
the signature of the payload
the timestamp in milliseconds since epoch when the message was signed. Must be within 5 minutes of the current time.
Used in:
Used in:
Used in:
Charts
recent backups
Used in: