Saltar al contenido

Copias de seguridad ​

Estado, plan, ejecuciones, puntos, verificación y retención del agente de copias de seguridad integrado.

Operaciones de este grupo con su regla de acceso, su regla de reintento, sus parámetros y sus respuestas. Cada solicitud lleva una clave: Authorization: Bearer <clave> (consulte «Autenticación»).

Operaciones ​

Obtener el estado de las copias de seguridad ​

GET HEAD /api/v1/backup/status

Acceso: Permiso del sistema backup.read · Reintento: Se puede repetir (lectura)

Resume el sistema de copias de seguridad: el almacén de copias (configured, available, bytes libres y totales), el agente de copias de seguridad (online, último latido, versión), el plan, el punto completado más reciente, la próxima ejecución programada, el trabajo en curso y warnings, cada uno un código como agent_offline o backup_stale con gravedad warning o critical. El almacén se informa como no disponible mientras el agente no está en línea. No contiene rutas ni secretos.

Respuesta 200

CampoTipoObligatorioReglas
vaultobjectsí—
vault.configuredbooleansí—
vault.idstring (uuid)sípuede ser null
vault.availablebooleansí—
vault.encryptedbooleansípuede ser null; El almacén está cifrado; null si se desconoce o no está conectado.
vault.freeBytesstringsíun número entero en dígitos decimales, enviado como cadena; puede ser null
vault.totalBytesstringsíun número entero en dígitos decimales, enviado como cadena; puede ser null
agentobjectsí—
agent.onlinebooleansí—
agent.lastSeenAtstring (date-time)sípuede ser null
agent.versionstringsíhasta 64 caracteres; puede ser null
planobjectsí—
plan.enabledbooleansí—
plan.hourintegersí0–23
plan.minuteintegersí0–59
plan.timezonestringsí1–64 caracteres; Zona horaria IANA explícita, p. ej. Europe/Moscow; la valida el servidor.
plan.retentionobjectsí—
plan.retention.dailyintegersí0–366
plan.retention.weeklyintegersí0–260
plan.retention.monthlyintegersí0–120
plan.revisionintegersí0–2147483647
lastCompletedobjectsípuede ser null
lastCompleted.idstring (uuid)sí—
lastCompleted.snapshotAtstring (date-time)síHora T de la instantánea; la antigüedad de un punto se cuenta desde T.
lastCompleted.completedAtstring (date-time)sí—
lastCompleted.blobsintegersícomo mínimo 0
lastCompleted.contentBytesstringsíun número entero en dígitos decimales, enviado como cadena
lastCompleted.newBytesstringsíun número entero en dígitos decimales, enviado como cadena; Bytes que este punto añadió al almacén.
lastCompleted.tablesintegersícomo mínimo 0
lastCompleted.rowsintegersícomo mínimo 0
lastCompleted.pinnedbooleansí—
lastCompleted.verifiedAtstring (date-time)sípuede ser null
lastCompleted.verifyDepthstringsíuno de structural, deep, null; puede ser null
lastCompleted.verifyErrorstringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
nextRunAtstring (date-time)sípuede ser null
runningobjectsípuede ser null
running.idstring (uuid)sí—
running.kindstringsíuno de capture, verify, retention
running.statestringsíuno de queued, running, committing, completed, failed, interrupted
running.phasestringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
running.startedAtstring (date-time)síInicio de la ejecución, o la hora de la solicitud mientras está en cola.
running.finishedAtstring (date-time)sípuede ser null
running.errorCodestringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
running.pointIdstring (uuid)sípuede ser null
running.progressobjectsí—
running.progress.bytesCopiedstringsíun número entero en dígitos decimales, enviado como cadena; Bytes procesados: copiados o ya presentes en el almacén.
running.progress.bytesTotalstringsíun número entero en dígitos decimales, enviado como cadena
running.progress.blobsCopiedintegersícomo mínimo 0
running.progress.blobsTotalintegersícomo mínimo 0
warningsarray de objectsíhasta 10 elementos
warnings[].codestringsíuno de 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[].severitystringsíuno de warning, critical

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

Ejemplo

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

Obtener el plan de copias de seguridad ​

GET HEAD /api/v1/backup/plan

Acceso: Permiso del sistema backup.read · Reintento: Se puede repetir (lectura)

Devuelve la programación diaria (enabled, hour y minute en la zona horaria timezone de IANA) y la política de retención (puntos daily, weekly, monthly que conservar) con la revision que se debe enviar de vuelta a updateBackupPlan. Hasta que se cambie, el plan está desactivado, con una programación a las 02:00 UTC y 7 puntos diarios, 4 semanales y 6 mensuales.

Respuesta 200

CampoTipoObligatorioReglas
enabledbooleansí—
hourintegersí0–23
minuteintegersí0–59
timezonestringsí1–64 caracteres; Zona horaria IANA explícita, p. ej. Europe/Moscow; la valida el servidor.
retentionobjectsí—
retention.dailyintegersí0–366
retention.weeklyintegersí0–260
retention.monthlyintegersí0–120
revisionintegersí0–2147483647

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

Ejemplo

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

Reemplazar el plan de copias de seguridad ​

PUT /api/v1/backup/plan

Acceso: Permiso del sistema backup.manage · Reintento: Repetir solo con la revisión esperada (compare-and-swap)

Reemplaza el plan completo: enabled, hour (0–23), minute (0–59), timezone y retention (como máximo 366 diarios, 260 semanales, 120 mensuales) deben estar presentes. expectedRevision debe ser la revisión actual; de lo contrario, 409 revision_mismatch; un campo no válido produce un 400 con un JSON Pointer en details. El agente sigue la nueva programación desde su siguiente comprobación.

Cuerpo de la solicitud (application/json)

CampoTipoObligatorioReglas
expectedRevisionintegersí0–2147483647
enabledbooleansí—
hourintegersí0–23
minuteintegersí0–59
timezonestringsí1–64 caracteres; Zona horaria IANA explícita, p. ej. Europe/Moscow; la valida el servidor.
retentionobjectsí—
retention.dailyintegersí0–366
retention.weeklyintegersí0–260
retention.monthlyintegersí0–120

Respuesta 200

CampoTipoObligatorioReglas
enabledbooleansí—
hourintegersí0–23
minuteintegersí0–59
timezonestringsí1–64 caracteres; Zona horaria IANA explícita, p. ej. Europe/Moscow; la valida el servidor.
retentionobjectsí—
retention.dailyintegersí0–366
retention.weeklyintegersí0–260
retention.monthlyintegersí0–120
revisionintegersí0–2147483647

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

Ejemplo

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 una copia de seguridad ahora ​

POST /api/v1/backup/runs

Acceso: Permiso del sistema backup.manage · Reintento: Se puede repetir con el mismo Idempotency-Key

Encola una captura para el agente de copias de seguridad fuera de la programación y devuelve 202 con el trabajo (kind capture); el agente la ejecuta y después la verificación y la retención. Idempotency-Key es obligatorio: repetirlo, desde el mismo solicitante, devuelve el mismo trabajo. Siga el trabajo en listBackupJobs. Puede haber como máximo 100 solicitudes de copia abiertas a la vez (507 queue_full); mientras no haya ningún agente en línea, el trabajo espera.

Parámetros

NombreUbicaciónTipoObligatorioReglas
Idempotency-Keyencabezadostringsícoincide con ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Respuesta 202

CampoTipoObligatorioReglas
idstring (uuid)sí—
kindstringsíuno de capture, verify, retention
statestringsíuno de queued, running, committing, completed, failed, interrupted

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

Ejemplo

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

Listar trabajos de copia de seguridad ​

GET HEAD /api/v1/backup/jobs

Acceso: Permiso del sistema backup.read · Reintento: Se puede repetir (lectura)

Enumera los trabajos de captura, verificación y retención, del más reciente al más antiguo, cada uno con su state (queued, running, committing, completed, failed, interrupted), phase, horas, errorCode, el punto resultante y progress (bytes y objetos procesados). Las páginas contienen limit trabajos (1–100, 50 por defecto); continúe pasando next como after.

Parámetros

NombreUbicaciónTipoObligatorioReglas
afterconsultastringnocoincide con ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitconsultaintegerno1–100; predeterminado: 50

Respuesta 200

CampoTipoObligatorioReglas
itemsarray de objectsíhasta 100 elementos
items[].idstring (uuid)sí—
items[].kindstringsíuno de capture, verify, retention
items[].statestringsíuno de queued, running, committing, completed, failed, interrupted
items[].phasestringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
items[].startedAtstring (date-time)síInicio de la ejecución, o la hora de la solicitud mientras está en cola.
items[].finishedAtstring (date-time)sípuede ser null
items[].errorCodestringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
items[].pointIdstring (uuid)sípuede ser null
items[].progressobjectsí—
items[].progress.bytesCopiedstringsíun número entero en dígitos decimales, enviado como cadena; Bytes procesados: copiados o ya presentes en el almacén.
items[].progress.bytesTotalstringsíun número entero en dígitos decimales, enviado como cadena
items[].progress.blobsCopiedintegersícomo mínimo 0
items[].progress.blobsTotalintegersícomo mínimo 0
nextstringsícoincide con ^[0-9]{1,17}_[0-9a-f-]{36}$; puede ser null

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

Ejemplo

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

Listar puntos de copia de seguridad ​

GET HEAD /api/v1/backup/points

Acceso: Permiso del sistema backup.read · Reintento: Se puede repetir (lectura)

Enumera los puntos de restauración completados del almacén actual, con la instantánea más reciente primero, cada uno con la hora T de la instantánea, el tamaño, los bytes añadidos al almacén, si está fijado (pinned) y su última verificación (verifiedAt, verifyDepth structural o deep, verifyError). Las páginas contienen limit puntos (1–100, 50 por defecto); continúe pasando next como after. Un almacén que se sustituyó muestra solo sus propios puntos.

Parámetros

NombreUbicaciónTipoObligatorioReglas
afterconsultastringnocoincide con ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitconsultaintegerno1–100; predeterminado: 50

Respuesta 200

CampoTipoObligatorioReglas
itemsarray de objectsíhasta 100 elementos
items[].idstring (uuid)sí—
items[].snapshotAtstring (date-time)síHora T de la instantánea; la antigüedad de un punto se cuenta desde T.
items[].completedAtstring (date-time)sí—
items[].blobsintegersícomo mínimo 0
items[].contentBytesstringsíun número entero en dígitos decimales, enviado como cadena
items[].newBytesstringsíun número entero en dígitos decimales, enviado como cadena; Bytes que este punto añadió al almacén.
items[].tablesintegersícomo mínimo 0
items[].rowsintegersícomo mínimo 0
items[].pinnedbooleansí—
items[].verifiedAtstring (date-time)sípuede ser null
items[].verifyDepthstringsíuno de structural, deep, null; puede ser null
items[].verifyErrorstringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null
nextstringsícoincide con ^[0-9]{1,17}_[0-9a-f-]{36}$; puede ser null

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

Ejemplo

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

Solicitar una comprobación profunda de un punto de copia ​

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

Acceso: Permiso del sistema backup.manage · Reintento: Se puede repetir con el mismo Idempotency-Key

Encola una verificación del punto id que lee cada byte almacenado de él; la respuesta es 202 con el trabajo, y el resultado aparece en verifiedAt, verifyDepth y verifyError del punto. Idempotency-Key es obligatorio, y reutilizarlo para otro punto produce un 409 idempotency_mismatch. Un punto desconocido es un 404.

Parámetros

NombreUbicaciónTipoObligatorioReglas
idrutastring (uuid)sí—
Idempotency-Keyencabezadostringsícoincide con ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Respuesta 202

CampoTipoObligatorioReglas
idstring (uuid)sí—
kindstringsíuno de capture, verify, retention
statestringsíuno de queued, running, committing, completed, failed, interrupted

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

Ejemplo

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

Fijar o desfijar un punto de copia de seguridad ​

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

Acceso: Permiso del sistema backup.manage · Reintento: Se puede repetir: la misma solicitud tiene el mismo efecto

Establece pinned del punto id; la retención conserva un punto fijado más allá de la política hasta que se desfije. Establecer de nuevo el mismo valor no cambia nada, y la respuesta es el punto actualizado. Un punto desconocido o ya descartado es un 404.

Parámetros

NombreUbicaciónTipoObligatorioReglas
idrutastring (uuid)sí—

Cuerpo de la solicitud (application/json)

CampoTipoObligatorioReglas
pinnedbooleansí—

Respuesta 200

CampoTipoObligatorioReglas
idstring (uuid)sí—
snapshotAtstring (date-time)síHora T de la instantánea; la antigüedad de un punto se cuenta desde T.
completedAtstring (date-time)sí—
blobsintegersícomo mínimo 0
contentBytesstringsíun número entero en dígitos decimales, enviado como cadena
newBytesstringsíun número entero en dígitos decimales, enviado como cadena; Bytes que este punto añadió al almacén.
tablesintegersícomo mínimo 0
rowsintegersícomo mínimo 0
pinnedbooleansí—
verifiedAtstring (date-time)sípuede ser null
verifyDepthstringsíuno de structural, deep, null; puede ser null
verifyErrorstringsícoincide con ^[a-z][a-z0-9_]{0,63}$; puede ser null

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

Ejemplo

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}'

Previsualizar lo que conserva la retención de copias ​

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

Acceso: Permiso del sistema backup.read · Reintento: Se puede repetir (lectura)

Muestra qué puntos conservaría la política de retención, cada uno con los motivos (daily, weekly, monthly, pinned, newest), y cuáles eliminaría ahora. Los puntos que no superaron la verificación no se consideran. La vista previa es orientativa: requestBackupRetention vuelve a decidir a partir del almacén cuando se ejecuta.

Respuesta 200

CampoTipoObligatorioReglas
keeparray de objectsí—
keep[].idstring (uuid)sí—
keep[].reasonsarray de stringsícada elemento: uno de daily, weekly, monthly, pinned, newest
deletearray de objectsí—
delete[].idstring (uuid)sí—

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

Ejemplo

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

Solicitar la retención de copias de seguridad ​

POST /api/v1/backup/retention/apply

Acceso: Permiso del sistema backup.manage · Reintento: Se puede repetir con el mismo Idempotency-Key

Encola un trabajo de retención: el agente descarta los puntos que quedan fuera de la política y después elimina el contenido que ningún punto restante usa, por lo que el espacio vuelve al almacén solo cuando el trabajo ha terminado. Devuelve 202 con el trabajo; Idempotency-Key es obligatorio y repetirlo devuelve el mismo trabajo. Consulte antes previewBackupRetention.

Parámetros

NombreUbicaciónTipoObligatorioReglas
Idempotency-Keyencabezadostringsícoincide con ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Respuesta 202

CampoTipoObligatorioReglas
idstring (uuid)sí—
kindstringsíuno de capture, verify, retention
statestringsíuno de queued, running, committing, completed, failed, interrupted

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

Ejemplo

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

Arkvory · ProAnimaStudio