Pular para o conteúdo

Backups ​

Status, plano, execuções, pontos, verificação e retenção do agente de backup integrado.

Operações deste grupo com a regra de acesso, a regra de repetição, os parâmetros e as respostas. Toda solicitação leva uma chave: Authorization: Bearer <chave> (consulte “Autenticação”).

Operações ​

Obter o status do backup ​

GET HEAD /api/v1/backup/status

Acesso: Permissão de sistema backup.read · Repetição: Pode ser repetida com segurança (leitura)

Resume o sistema de backup: o armazenamento de backups (vault) (configured, available, bytes livres e totais), o agente de backup (online, último heartbeat, versão), o plano, o ponto concluído mais recente, a próxima execução agendada, o job em execução e warnings, cada um um código como agent_offline ou backup_stale com severidade warning ou critical. O vault é informado como indisponível enquanto o agente está offline. Não contém caminhos nem segredos.

Resposta 200

CampoTipoObrigatórioRegras
vaultobjectsim—
vault.configuredbooleansim—
vault.idstring (uuid)simpode ser null
vault.availablebooleansim—
vault.encryptedbooleansimpode ser null; O cofre está criptografado; null quando desconhecido ou não conectado.
vault.freeBytesstringsimum número inteiro em dígitos decimais, enviado como string; pode ser null
vault.totalBytesstringsimum número inteiro em dígitos decimais, enviado como string; pode ser null
agentobjectsim—
agent.onlinebooleansim—
agent.lastSeenAtstring (date-time)simpode ser null
agent.versionstringsimaté 64 caracteres; pode ser null
planobjectsim—
plan.enabledbooleansim—
plan.hourintegersim0–23
plan.minuteintegersim0–59
plan.timezonestringsim1–64 caracteres; Fuso horário IANA explícito, por exemplo Europe/Moscow; validado pelo servidor.
plan.retentionobjectsim—
plan.retention.dailyintegersim0–366
plan.retention.weeklyintegersim0–260
plan.retention.monthlyintegersim0–120
plan.revisionintegersim0–2147483647
lastCompletedobjectsimpode ser null
lastCompleted.idstring (uuid)sim—
lastCompleted.snapshotAtstring (date-time)simHorário T do snapshot; a idade de um ponto é contada a partir de T.
lastCompleted.completedAtstring (date-time)sim—
lastCompleted.blobsintegersimpelo menos 0
lastCompleted.contentBytesstringsimum número inteiro em dígitos decimais, enviado como string
lastCompleted.newBytesstringsimum número inteiro em dígitos decimais, enviado como string; Bytes que este ponto adicionou ao vault.
lastCompleted.tablesintegersimpelo menos 0
lastCompleted.rowsintegersimpelo menos 0
lastCompleted.pinnedbooleansim—
lastCompleted.verifiedAtstring (date-time)simpode ser null
lastCompleted.verifyDepthstringsimum destes: structural, deep, null; pode ser null
lastCompleted.verifyErrorstringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
nextRunAtstring (date-time)simpode ser null
runningobjectsimpode ser null
running.idstring (uuid)sim—
running.kindstringsimum destes: capture, verify, retention
running.statestringsimum destes: queued, running, committing, completed, failed, interrupted
running.phasestringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
running.startedAtstring (date-time)simInício da execução ou, enquanto na fila, o horário da solicitação.
running.finishedAtstring (date-time)simpode ser null
running.errorCodestringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
running.pointIdstring (uuid)simpode ser null
running.progressobjectsim—
running.progress.bytesCopiedstringsimum número inteiro em dígitos decimais, enviado como string; Bytes processados: copiados ou já presentes no vault.
running.progress.bytesTotalstringsimum número inteiro em dígitos decimais, enviado como string
running.progress.blobsCopiedintegersimpelo menos 0
running.progress.blobsTotalintegersimpelo menos 0
warningsarray de objectsimaté 10 itens
warnings[].codestringsimum destes: vault_not_configured, agent_offline, schedule_disabled, no_backup_yet, backup_stale, last_run_failed, vault_unavailable, vault_low_space, verify_failed, never_deep_verified
warnings[].severitystringsimum destes: warning, critical

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/status" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Obter o plano de backup ​

GET HEAD /api/v1/backup/plan

Acesso: Permissão de sistema backup.read · Repetição: Pode ser repetida com segurança (leitura)

Retorna o agendamento diário (enabled, hour e minute no timezone IANA) e a política de retenção (pontos daily, weekly, monthly a manter) com a revision a ser enviada de volta a updateBackupPlan. Enquanto não for alterado, o plano está desativado, com agendamento às 02:00 UTC e 7 pontos diários, 4 semanais e 6 mensais.

Resposta 200

CampoTipoObrigatórioRegras
enabledbooleansim—
hourintegersim0–23
minuteintegersim0–59
timezonestringsim1–64 caracteres; Fuso horário IANA explícito, por exemplo Europe/Moscow; validado pelo servidor.
retentionobjectsim—
retention.dailyintegersim0–366
retention.weeklyintegersim0–260
retention.monthlyintegersim0–120
revisionintegersim0–2147483647

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/plan" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Substituir o plano de backup ​

PUT /api/v1/backup/plan

Acesso: Permissão de sistema backup.manage · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Substitui o plano inteiro: enabled, hour (0–23), minute (0–59), timezone e retention (no máximo 366 diários, 260 semanais, 120 mensais) devem estar todos presentes. expectedRevision deve ser a revisão atual; caso contrário, 409 revision_mismatch; um campo inválido gera 400 com um JSON Pointer em details. O agente segue o novo agendamento a partir da sua próxima verificação.

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim0–2147483647
enabledbooleansim—
hourintegersim0–23
minuteintegersim0–59
timezonestringsim1–64 caracteres; Fuso horário IANA explícito, por exemplo Europe/Moscow; validado pelo servidor.
retentionobjectsim—
retention.dailyintegersim0–366
retention.weeklyintegersim0–260
retention.monthlyintegersim0–120

Resposta 200

CampoTipoObrigatórioRegras
enabledbooleansim—
hourintegersim0–23
minuteintegersim0–59
timezonestringsim1–64 caracteres; Fuso horário IANA explícito, por exemplo Europe/Moscow; validado pelo servidor.
retentionobjectsim—
retention.dailyintegersim0–366
retention.weeklyintegersim0–260
retention.monthlyintegersim0–120
revisionintegersim0–2147483647

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PUT "$ARKVORY_URL/api/v1/backup/plan" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"enabled":false,"hour":0,"minute":0,"timezone":"<timezone>","retention":{"daily":0,"weekly":0,"monthly":0}}'

Solicitar um backup agora ​

POST /api/v1/backup/runs

Acesso: Permissão de sistema backup.manage · Repetição: Pode ser repetida com segurança com a mesma Idempotency-Key

Enfileira uma captura para o agente de backup fora do agendamento e retorna 202 com o job (kind capture); o agente a executa e, em seguida, a verificação e a retenção. Idempotency-Key é obrigatória: repeti-la, pelo mesmo chamador, retorna o mesmo job. Acompanhe o job em listBackupJobs. No máximo 100 solicitações de backup podem estar abertas ao mesmo tempo (507 queue_full); enquanto nenhum agente está online, o job espera.

Parâmetros

NomeLocalTipoObrigatórioRegras
Idempotency-Keycabeçalhostringsimcorresponde a ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Resposta 202

CampoTipoObrigatórioRegras
idstring (uuid)sim—
kindstringsimum destes: capture, verify, retention
statestringsimum destes: queued, running, committing, completed, failed, interrupted

Respostas: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/runs" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Listar os jobs de backup ​

GET HEAD /api/v1/backup/jobs

Acesso: Permissão de sistema backup.read · Repetição: Pode ser repetida com segurança (leitura)

Lista os jobs de captura, verificação e retenção, do mais recente para o mais antigo, cada um com seu state (queued, running, committing, completed, failed, interrupted), phase, horários, errorCode, o ponto resultante e o progress (bytes e objetos processados). As páginas contêm limit jobs (1–100, padrão 50); continue com after definido como next.

Parâmetros

NomeLocalTipoObrigatórioRegras
afterconsultastringnãocorresponde a ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitconsultaintegernão1–100; padrão 50

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 100 itens
items[].idstring (uuid)sim—
items[].kindstringsimum destes: capture, verify, retention
items[].statestringsimum destes: queued, running, committing, completed, failed, interrupted
items[].phasestringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
items[].startedAtstring (date-time)simInício da execução ou, enquanto na fila, o horário da solicitação.
items[].finishedAtstring (date-time)simpode ser null
items[].errorCodestringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
items[].pointIdstring (uuid)simpode ser null
items[].progressobjectsim—
items[].progress.bytesCopiedstringsimum número inteiro em dígitos decimais, enviado como string; Bytes processados: copiados ou já presentes no vault.
items[].progress.bytesTotalstringsimum número inteiro em dígitos decimais, enviado como string
items[].progress.blobsCopiedintegersimpelo menos 0
items[].progress.blobsTotalintegersimpelo menos 0
nextstringsimcorresponde a ^[0-9]{1,17}_[0-9a-f-]{36}$; pode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/jobs" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Listar os pontos de backup ​

GET HEAD /api/v1/backup/points

Acesso: Permissão de sistema backup.read · Repetição: Pode ser repetida com segurança (leitura)

Lista os pontos de restauração concluídos do vault atual, com o snapshot mais recente primeiro, cada um com o horário T do snapshot, tamanho, bytes adicionados ao vault, se está pinned e sua verificação mais recente (verifiedAt, verifyDepth structural ou deep, verifyError). As páginas contêm limit pontos (1–100, padrão 50); continue com after definido como next. Um vault que foi substituído mostra apenas os seus próprios pontos.

Parâmetros

NomeLocalTipoObrigatórioRegras
afterconsultastringnãocorresponde a ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitconsultaintegernão1–100; padrão 50

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 100 itens
items[].idstring (uuid)sim—
items[].snapshotAtstring (date-time)simHorário T do snapshot; a idade de um ponto é contada a partir de T.
items[].completedAtstring (date-time)sim—
items[].blobsintegersimpelo menos 0
items[].contentBytesstringsimum número inteiro em dígitos decimais, enviado como string
items[].newBytesstringsimum número inteiro em dígitos decimais, enviado como string; Bytes que este ponto adicionou ao vault.
items[].tablesintegersimpelo menos 0
items[].rowsintegersimpelo menos 0
items[].pinnedbooleansim—
items[].verifiedAtstring (date-time)simpode ser null
items[].verifyDepthstringsimum destes: structural, deep, null; pode ser null
items[].verifyErrorstringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null
nextstringsimcorresponde a ^[0-9]{1,17}_[0-9a-f-]{36}$; pode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/points" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Solicitar uma verificação profunda de um ponto de backup ​

POST /api/v1/backup/points/{id}/verify

Acesso: Permissão de sistema backup.manage · Repetição: Pode ser repetida com segurança com a mesma Idempotency-Key

Enfileira uma verificação do ponto id que lê todos os bytes armazenados dele; a resposta é 202 com o job, e o resultado aparece em verifiedAt, verifyDepth e verifyError do ponto. Idempotency-Key é obrigatória, e reutilizá-la para outro ponto gera 409 idempotency_mismatch. Um ponto desconhecido gera 404.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
Idempotency-Keycabeçalhostringsimcorresponde a ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Resposta 202

CampoTipoObrigatórioRegras
idstring (uuid)sim—
kindstringsimum destes: capture, verify, retention
statestringsimum destes: queued, running, committing, completed, failed, interrupted

Respostas: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/points/$ID/verify" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Fixar ou desafixar um ponto de backup ​

PUT /api/v1/backup/points/{id}/pin

Acesso: Permissão de sistema backup.manage · Repetição: Pode ser repetida com segurança: a mesma solicitação tem o mesmo efeito

Define pinned do ponto id; um ponto fixado é mantido pela retenção além da política até ser desafixado. Definir o mesmo valor novamente não altera nada, e a resposta é o ponto atualizado. Um ponto desconhecido ou já descartado gera 404.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
pinnedbooleansim—

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
snapshotAtstring (date-time)simHorário T do snapshot; a idade de um ponto é contada a partir de T.
completedAtstring (date-time)sim—
blobsintegersimpelo menos 0
contentBytesstringsimum número inteiro em dígitos decimais, enviado como string
newBytesstringsimum número inteiro em dígitos decimais, enviado como string; Bytes que este ponto adicionou ao vault.
tablesintegersimpelo menos 0
rowsintegersimpelo menos 0
pinnedbooleansim—
verifiedAtstring (date-time)simpode ser null
verifyDepthstringsimum destes: structural, deep, null; pode ser null
verifyErrorstringsimcorresponde a ^[a-z][a-z0-9_]{0,63}$; pode ser null

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PUT "$ARKVORY_URL/api/v1/backup/points/$ID/pin" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pinned":false}'

Pré-visualizar o que a retenção de backups mantém ​

GET HEAD /api/v1/backup/retention/preview

Acesso: Permissão de sistema backup.read · Repetição: Pode ser repetida com segurança (leitura)

Mostra quais pontos a política de retenção manteria, cada um com os motivos (daily, weekly, monthly, pinned, newest), e quais ela excluiria agora. Pontos que falharam na verificação não são considerados. A pré-visualização é apenas informativa: requestBackupRetention decide novamente a partir do vault quando for executado.

Resposta 200

CampoTipoObrigatórioRegras
keeparray de objectsim—
keep[].idstring (uuid)sim—
keep[].reasonsarray de stringsimcada item: um destes: daily, weekly, monthly, pinned, newest
deletearray de objectsim—
delete[].idstring (uuid)sim—

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/backup/retention/preview" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Solicitar a retenção de backups ​

POST /api/v1/backup/retention/apply

Acesso: Permissão de sistema backup.manage · Repetição: Pode ser repetida com segurança com a mesma Idempotency-Key

Enfileira um job de retenção: o agente descarta os pontos fora da política e depois remove o conteúdo que nenhum ponto restante usa, de modo que o espaço só volta ao vault quando o job é concluído. Retorna 202 com o job; Idempotency-Key é obrigatória e repeti-la retorna o mesmo job. Consulte antes previewBackupRetention.

Parâmetros

NomeLocalTipoObrigatórioRegras
Idempotency-Keycabeçalhostringsimcorresponde a ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Resposta 202

CampoTipoObrigatórioRegras
idstring (uuid)sim—
kindstringsimum destes: capture, verify, retention
statestringsimum destes: queued, running, committing, completed, failed, interrupted

Respostas: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/backup/retention/apply" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Arkvory · ProAnimaStudio