Skip to content
Pre-release. HostCraft is in testing and not yet for sale. These docs describe the current build and may change. Join the waitlist to hear when it launches.

Backup API

Source: daemon/proto/hostcraft/v1/backup.proto

BackupService manages restic repositories, scheduled backup jobs, snapshots and restores. REST: /api/v1/backup.

Method REST route Permission Streaming
ListRepositories GET /api/v1/backup/repositories BackupRepositoryRead unary
CreateRepository POST /api/v1/backup/repositories BackupRepositoryCreate unary
GetRepository GET /api/v1/backup/repositories/{id} BackupRepositoryRead unary
UpdateRepository PATCH /api/v1/backup/repositories/{id} BackupRepositoryUpdate unary
DeleteRepository DELETE /api/v1/backup/repositories/{id} BackupRepositoryDelete unary
GetRepositoryStats GET /api/v1/backup/repositories/{id}/stats BackupRepositoryRead unary
TestRepository POST /api/v1/backup/repositories/{id}/test BackupRepositoryTest unary
PruneRepository POST /api/v1/backup/repositories/{id}/prune BackupRepositoryPrune unary
ListBackupJobs GET /api/v1/backup/jobs BackupJobRead unary
CreateBackupJob POST /api/v1/backup/jobs BackupJobCreate unary
GetBackupJob GET /api/v1/backup/jobs/{id} BackupJobRead unary
UpdateBackupJob PATCH /api/v1/backup/jobs/{id} BackupJobUpdate unary
DeleteBackupJob DELETE /api/v1/backup/jobs/{id} BackupJobDelete unary
ListBackupJobRuns GET /api/v1/backup/jobs/{id}/runs BackupJobRead unary
RunBackupJob POST /api/v1/backup/jobs/{id}/run BackupJobTrigger unary
EnableBackupJob POST /api/v1/backup/jobs/{id}/enable BackupJobEnable unary
DisableBackupJob POST /api/v1/backup/jobs/{id}/disable BackupJobDisable unary
ListSnapshots GET /api/v1/backup/snapshots BackupSnapshotRead unary
GetSnapshot GET /api/v1/backup/snapshots/{id} BackupSnapshotRead unary
ListSnapshotFiles GET /api/v1/backup/snapshots/{id}/files BackupSnapshotRead unary
DeleteSnapshot DELETE /api/v1/backup/snapshots/{id} BackupSnapshotDelete unary
StartRestore POST /api/v1/backup/restore BackupRestoreTrigger unary
GetRestore GET /api/v1/backup/restore/{id} BackupRestoreRead unary

/hostcraft.v1.BackupService/ListRepositories

/hostcraft.v1.BackupService/CreateRepository

/hostcraft.v1.BackupService/GetRepository

/hostcraft.v1.BackupService/UpdateRepository

DeleteRepository needs a freshly re-authenticated session over REST; over gRPC it is available to the local root principal only.

/hostcraft.v1.BackupService/DeleteRepository

/hostcraft.v1.BackupService/GetRepositoryStats

/hostcraft.v1.BackupService/TestRepository

/hostcraft.v1.BackupService/PruneRepository

/hostcraft.v1.BackupService/ListBackupJobs

/hostcraft.v1.BackupService/CreateBackupJob

/hostcraft.v1.BackupService/GetBackupJob

/hostcraft.v1.BackupService/UpdateBackupJob

/hostcraft.v1.BackupService/DeleteBackupJob

/hostcraft.v1.BackupService/ListBackupJobRuns

/hostcraft.v1.BackupService/RunBackupJob

/hostcraft.v1.BackupService/EnableBackupJob

/hostcraft.v1.BackupService/DisableBackupJob

/hostcraft.v1.BackupService/ListSnapshots

/hostcraft.v1.BackupService/GetSnapshot

/hostcraft.v1.BackupService/ListSnapshotFiles

/hostcraft.v1.BackupService/DeleteSnapshot

/hostcraft.v1.BackupService/StartRestore

/hostcraft.v1.BackupService/GetRestore

Field Type Number Description
id string 1 -
account_id string 2 -
name string 3 -
repository_id string 4 -
schedule_cron string 5 -
paths repeated string 6 -
exclude_patterns repeated string 7 -
include_databases bool 8 -
enabled bool 9 -
last_run_at google.protobuf.Timestamp 10 -
last_outcome string 11 -
next_run_at google.protobuf.Timestamp 12 -
created_at google.protobuf.Timestamp 13 -
Field Type Number Description
id string 1 -
job_id string 2 -
repository_id string 3 -
snapshot_id string 4 -
started_at google.protobuf.Timestamp 5 -
finished_at google.protobuf.Timestamp 6 -
outcome string 7 -
bytes_processed int64 8 -
files_processed int64 9 -
error string 10 -
Field Type Number Description
id string 1 -
account_id string 2 -
name string 3 -
kind string 4 s3 | b2 | local | sftp
location string 5 -
encryption_password_set bool 6 -
retention_days int64 7 -
retention_keep_last int64 8 -
retention_keep_weekly int64 9 -
retention_keep_monthly int64 10 -
created_at google.protobuf.Timestamp 11 -
Field Type Number Description
id string 1 -
snapshot_id string 2 -
account_id string 3 -
target_path string 4 -
file_filter string 5 -
paths repeated string 6 -
status string 7 pending | running | succeeded | failed
started_at google.protobuf.Timestamp 8 -
finished_at google.protobuf.Timestamp 9 -
bytes_restored int64 10 -
error string 11 -
Field Type Number Description
account_id string 1 -
name string 2 -
repository_id string 3 -
schedule_cron string 4 -
paths repeated string 5 -
exclude_patterns repeated string 6 -
enabled bool 7 -
include_databases bool 8 -
Field Type Number Description
account_id string 1 -
name string 2 -
kind string 3 -
location string 4 -
encryption_password string 5 -
retention_days int64 6 -
retention_keep_last int64 7 -
retention_keep_weekly int64 8 -
retention_keep_monthly int64 9 -
backend_env map<string, string> 10 e.g. AWS_ACCESS_KEY_ID
Field Type Number Description
repository BackupRepository 1 -
workflow_id string 2 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
purge_remote bool 2 -
Field Type Number Description
id string 1 -
forget bool 2 also forget it in the restic repository
Field Type Number Description
id string 1 -

Empty is returned by RPCs whose REST route answers with an empty object or 204 No Content.

No fields.

Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
limit int64 2 -
Field Type Number Description
runs repeated BackupJobRun 1 -
Field Type Number Description
account_id string 1 -
repository_id string 2 -
enabled_only bool 3 -
Field Type Number Description
jobs repeated BackupJob 1 -
Field Type Number Description
account_id string 1 -
kind string 2 -
Field Type Number Description
repositories repeated BackupRepository 1 -
Field Type Number Description
id string 1 -
path string 2 -
Field Type Number Description
files repeated SnapshotFile 1 -
Field Type Number Description
repository_id string 1 -
account_id string 2 -
limit int64 3 -
offset int64 4 -
since string 5 RFC 3339
Field Type Number Description
snapshots repeated Snapshot 1 -
Field Type Number Description
id string 1 -
Field Type Number Description
total_size_bytes int64 1 -
total_file_count int64 2 -
snapshot_count int64 3 -
dedup_ratio double 4 -
Field Type Number Description
id string 1 -
Field Type Number Description
id string 1 -
repository_id string 2 -
account_id string 3 -
snapshot_id string 4 restic snapshot id
parent_id string 5 -
paths repeated string 6 -
size_bytes int64 7 -
file_count int64 8 -
hostname string 9 -
tags repeated string 10 -
created_at google.protobuf.Timestamp 11 -
Field Type Number Description
name string 1 -
path string 2 -
type string 3 -
size int64 4 -
mode uint32 5 -
mtime google.protobuf.Timestamp 6 -
Field Type Number Description
snapshot_id string 1 -
target_path string 2 -
paths repeated string 3 -
file_filter string 4 -
Field Type Number Description
restore BackupRestore 1 -
workflow_id string 2 -
Field Type Number Description
id string 1 -
Field Type Number Description
reachable bool 1 -
initialised bool 2 -
detail string 3 -
Field Type Number Description
id string 1 -
name optional string 2 -
schedule_cron optional string 3 -
paths repeated string 4 replaces when non-empty
exclude_patterns repeated string 5 replaces when non-empty
include_databases optional bool 6 -
Field Type Number Description
id string 1 -
name optional string 2 -
retention_days optional int64 3 -
retention_keep_last optional int64 4 -
retention_keep_weekly optional int64 5 -
retention_keep_monthly optional int64 6 -

WorkflowAccepted is the body of every 202 response that only starts a workflow saga. Follow progress with WorkflowService.StreamWorkflow.

Field Type Number Description
workflow_id string 1 -