Restore a backup
Replaces the instance's data with a backup from R2, named twice: confirm must equal name (400 otherwise). Queued imports hold a restore off unless cancelQueuedImports cancels them. 404 for an unknown backup; 409 for an incomplete one, or while something else holds it off (another run, a copy left by an earlier restore, a pending erase, purge or import); 503 when R2 is not configured.
Requires a signed-in system administrator (session cookie). API keys and share links: 401; other signed-in users: 403.
session__Secure-pilotfox.session_token<token>The web app's sign-in session, acting with the user's role; named pilotfox.session_token on an instance whose PUBLIC_URL is plain http. Under /api/v1, a POST, PUT, PATCH or DELETE carrying a cookie must come from the instance's own origin (Origin: PUBLIC_URL or a DASHBOARD_ORIGINS entry; else 403), and a body it carries must be JSON or multipart (else 415).
application/json- body
name*stringlength <= 64confirm*stringlength <= 64cancelQueuedImports?booleanAccepted
application/json- response
data*curl -X POST 'https://pilotfox.app/api/v1/admin/backups/restore' \ -H 'Content-Type: application/json' \ -d '{ "name": "string", "confirm": "string"}'{ "data": { "id": "string", "kind": "backup", "trigger": "manual", "status": "queued", "name": "string", "parentRunId": "string", "scheduledFor": "string", "queuedAt": "string", "startedAt": "string", "finishedAt": "string", "postgres": { "key": "string", "bytes": 0 }, "clickhouse": { "prefix": "string", "bytes": 0 }, "error": "string", "details": { "retention": "applied", "drill": { "postgres": [ { "table": "string", "live": 0, "restored": 0 } ], "clickhouse": [ { "table": "string", "before": 0, "restored": 0, "after": 0 } ], "problems": [ "string" ] }, "safetyBackup": "string", "preRestoreDatabase": "string", "pgMigrationsApplied": 0, "chMigrationsApplied": [ "string" ], "pgCommitted": true }, "triggeredBy": { "id": "string", "email": "string" } }}