Aller au contenu

Sauvegardes ​

État, plan, exécutions, points, vérification et rétention de l’agent de sauvegarde intégré.

Opérations de ce groupe, avec leur règle d’accès, leur règle de nouvelle tentative, leurs paramètres et leurs réponses. Chaque requête porte une clé : Authorization: Bearer <clé> (voir « Authentification »).

Opérations ​

Obtenir l’état de la sauvegarde ​

GET HEAD /api/v1/backup/status

Accès: Autorisation système backup.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Résume le système de sauvegarde : le stockage des sauvegardes (configured, available, octets libres et totaux), l’agent de sauvegarde (online, dernier signal de vie, version), le plan, le dernier point terminé, la prochaine exécution planifiée, la tâche en cours et les warnings, chacun étant un code comme agent_offline ou backup_stale avec la gravité warning ou critical. Le stockage des sauvegardes est signalé indisponible tant que l’agent est hors ligne. La réponse ne contient ni chemins ni secrets.

Réponse 200

ChampTypeObligatoireRègles
vaultobjectoui—
vault.configuredbooleanoui—
vault.idstring (uuid)ouipeut être null
vault.availablebooleanoui—
vault.encryptedbooleanouipeut être null; Le coffre est chiffré ; null si inconnu ou non connecté.
vault.freeBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; peut être null
vault.totalBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; peut être null
agentobjectoui—
agent.onlinebooleanoui—
agent.lastSeenAtstring (date-time)ouipeut être null
agent.versionstringouijusqu’à 64 caractères; peut être null
planobjectoui—
plan.enabledbooleanoui—
plan.hourintegeroui0–23
plan.minuteintegeroui0–59
plan.timezonestringoui1–64 caractères; Fuseau horaire IANA explicite, par exemple Europe/Moscow ; validé par le serveur.
plan.retentionobjectoui—
plan.retention.dailyintegeroui0–366
plan.retention.weeklyintegeroui0–260
plan.retention.monthlyintegeroui0–120
plan.revisionintegeroui0–2147483647
lastCompletedobjectouipeut être null
lastCompleted.idstring (uuid)oui—
lastCompleted.snapshotAtstring (date-time)ouiHeure d’instantané T ; l’âge d’un point se compte à partir de T.
lastCompleted.completedAtstring (date-time)oui—
lastCompleted.blobsintegerouiau moins 0
lastCompleted.contentBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
lastCompleted.newBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; Octets que ce point a ajoutés au stockage des sauvegardes.
lastCompleted.tablesintegerouiau moins 0
lastCompleted.rowsintegerouiau moins 0
lastCompleted.pinnedbooleanoui—
lastCompleted.verifiedAtstring (date-time)ouipeut être null
lastCompleted.verifyDepthstringouiune valeur parmi structural, deep, null; peut être null
lastCompleted.verifyErrorstringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
nextRunAtstring (date-time)ouipeut être null
runningobjectouipeut être null
running.idstring (uuid)oui—
running.kindstringouiune valeur parmi capture, verify, retention
running.statestringouiune valeur parmi queued, running, committing, completed, failed, interrupted
running.phasestringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
running.startedAtstring (date-time)ouiDébut de l’exécution, ou heure de la demande tant qu’elle est en file.
running.finishedAtstring (date-time)ouipeut être null
running.errorCodestringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
running.pointIdstring (uuid)ouipeut être null
running.progressobjectoui—
running.progress.bytesCopiedstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; Octets traités : copiés ou déjà présents dans le stockage des sauvegardes.
running.progress.bytesTotalstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
running.progress.blobsCopiedintegerouiau moins 0
running.progress.blobsTotalintegerouiau moins 0
warningstableau de objectouijusqu’à 10 éléments
warnings[].codestringouiune valeur parmi 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[].severitystringouiune valeur parmi warning, critical

Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemple

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

Obtenir le plan de sauvegarde ​

GET HEAD /api/v1/backup/plan

Accès: Autorisation système backup.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie la planification quotidienne (enabled, hour et minute dans le fuseau IANA timezone) et la politique de rétention (points daily, weekly, monthly à conserver) avec la revision à renvoyer à updateBackupPlan. Tant qu’il n’est pas modifié, le plan est désactivé, avec une planification à 02:00 UTC et 7 points quotidiens, 4 hebdomadaires et 6 mensuels.

Réponse 200

ChampTypeObligatoireRègles
enabledbooleanoui—
hourintegeroui0–23
minuteintegeroui0–59
timezonestringoui1–64 caractères; Fuseau horaire IANA explicite, par exemple Europe/Moscow ; validé par le serveur.
retentionobjectoui—
retention.dailyintegeroui0–366
retention.weeklyintegeroui0–260
retention.monthlyintegeroui0–120
revisionintegeroui0–2147483647

Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemple

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

Remplacer le plan de sauvegarde ​

PUT /api/v1/backup/plan

Accès: Autorisation système backup.manage · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)

Remplace tout le plan : enabled, hour (0–23), minute (0–59), timezone et retention (366 quotidiens, 260 hebdomadaires et 120 mensuels au plus) doivent tous être présents. expectedRevision doit être la révision actuelle, sinon 409 revision_mismatch ; un champ invalide donne 400 avec un JSON Pointer dans details. L’agent suit la nouvelle planification dès sa prochaine vérification.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
expectedRevisionintegeroui0–2147483647
enabledbooleanoui—
hourintegeroui0–23
minuteintegeroui0–59
timezonestringoui1–64 caractères; Fuseau horaire IANA explicite, par exemple Europe/Moscow ; validé par le serveur.
retentionobjectoui—
retention.dailyintegeroui0–366
retention.weeklyintegeroui0–260
retention.monthlyintegeroui0–120

Réponse 200

ChampTypeObligatoireRègles
enabledbooleanoui—
hourintegeroui0–23
minuteintegeroui0–59
timezonestringoui1–64 caractères; Fuseau horaire IANA explicite, par exemple Europe/Moscow ; validé par le serveur.
retentionobjectoui—
retention.dailyintegeroui0–366
retention.weeklyintegeroui0–260
retention.monthlyintegeroui0–120
revisionintegeroui0–2147483647

Réponses: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemple

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

Demander une sauvegarde maintenant ​

POST /api/v1/backup/runs

Accès: Autorisation système backup.manage · Nouvelle tentative: Peut être répétée sans risque avec la même Idempotency-Key

Met en file une capture pour l’agent de sauvegarde en dehors de la planification et renvoie 202 avec la tâche (kind capture) ; l’agent l’exécute, puis effectue la vérification et la rétention. Idempotency-Key est obligatoire : la répéter, depuis le même appelant, renvoie la même tâche. Suivez la tâche dans listBackupJobs. Au plus 100 demandes de sauvegarde peuvent être ouvertes à la fois (507 queue_full) ; tant qu’aucun agent n’est en ligne, la tâche attend.

Paramètres

NomEmplacementTypeObligatoireRègles
Idempotency-Keyen-têtestringouicorrespond à ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Réponse 202

ChampTypeObligatoireRègles
idstring (uuid)oui—
kindstringouiune valeur parmi capture, verify, retention
statestringouiune valeur parmi queued, running, committing, completed, failed, interrupted

Réponses: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemple

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

Lister les tâches de sauvegarde ​

GET HEAD /api/v1/backup/jobs

Accès: Autorisation système backup.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les tâches de capture, de vérification et de rétention, de la plus récente à la plus ancienne, chacune avec son state (queued, running, committing, completed, failed, interrupted), sa phase, ses heures, son errorCode, le point obtenu et progress (octets et objets traités). Les pages contiennent limit tâches (1–100, 50 par défaut) ; poursuivez avec after défini sur next.

Paramètres

NomEmplacementTypeObligatoireRègles
afterrequêtestringnoncorrespond à ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitrequêteintegernon1–100; par défaut 50

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].idstring (uuid)oui—
items[].kindstringouiune valeur parmi capture, verify, retention
items[].statestringouiune valeur parmi queued, running, committing, completed, failed, interrupted
items[].phasestringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
items[].startedAtstring (date-time)ouiDébut de l’exécution, ou heure de la demande tant qu’elle est en file.
items[].finishedAtstring (date-time)ouipeut être null
items[].errorCodestringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
items[].pointIdstring (uuid)ouipeut être null
items[].progressobjectoui—
items[].progress.bytesCopiedstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; Octets traités : copiés ou déjà présents dans le stockage des sauvegardes.
items[].progress.bytesTotalstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
items[].progress.blobsCopiedintegerouiau moins 0
items[].progress.blobsTotalintegerouiau moins 0
nextstringouicorrespond à ^[0-9]{1,17}_[0-9a-f-]{36}$; peut être null

Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemple

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

Lister les points de sauvegarde ​

GET HEAD /api/v1/backup/points

Accès: Autorisation système backup.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les points de restauration terminés du stockage des sauvegardes actuel, l’instantané le plus récent en premier, chacun avec l’heure d’instantané T, la taille, les octets ajoutés au stockage, son état épinglé (pinned) et sa dernière vérification (verifiedAt, verifyDepth structural ou deep, verifyError). Les pages contiennent limit points (1–100, 50 par défaut) ; poursuivez avec after défini sur next. Un stockage des sauvegardes remplacé n’affiche que ses propres points.

Paramètres

NomEmplacementTypeObligatoireRègles
afterrequêtestringnoncorrespond à ^[0-9]{1,17}_[0-9a-f-]{36}$; next of the previous page
limitrequêteintegernon1–100; par défaut 50

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].idstring (uuid)oui—
items[].snapshotAtstring (date-time)ouiHeure d’instantané T ; l’âge d’un point se compte à partir de T.
items[].completedAtstring (date-time)oui—
items[].blobsintegerouiau moins 0
items[].contentBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
items[].newBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; Octets que ce point a ajoutés au stockage des sauvegardes.
items[].tablesintegerouiau moins 0
items[].rowsintegerouiau moins 0
items[].pinnedbooleanoui—
items[].verifiedAtstring (date-time)ouipeut être null
items[].verifyDepthstringouiune valeur parmi structural, deep, null; peut être null
items[].verifyErrorstringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null
nextstringouicorrespond à ^[0-9]{1,17}_[0-9a-f-]{36}$; peut être null

Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemple

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

Demander une vérification approfondie d’un point de sauvegarde ​

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

Accès: Autorisation système backup.manage · Nouvelle tentative: Peut être répétée sans risque avec la même Idempotency-Key

Met en file une vérification du point id qui lit chaque octet stocké de ce point ; la réponse est 202 avec la tâche, et le résultat apparaît dans verifiedAt, verifyDepth et verifyError du point. Idempotency-Key est obligatoire, et la réutiliser pour un autre point donne 409 idempotency_mismatch. Un point inconnu donne 404.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
Idempotency-Keyen-têtestringouicorrespond à ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Réponse 202

ChampTypeObligatoireRègles
idstring (uuid)oui—
kindstringouiune valeur parmi capture, verify, retention
statestringouiune valeur parmi queued, running, committing, completed, failed, interrupted

Réponses: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemple

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

Épingler ou désépingler un point de sauvegarde ​

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

Accès: Autorisation système backup.manage · Nouvelle tentative: Peut être répétée sans risque : la même requête a le même effet

Définit pinned du point id ; un point épinglé est conservé par la rétention au-delà de la politique jusqu’à ce qu’il soit désépinglé. Définir de nouveau la même valeur ne change rien, et la réponse est le point mis à jour. Un point inconnu ou déjà oublié donne 404.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
pinnedbooleanoui—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
snapshotAtstring (date-time)ouiHeure d’instantané T ; l’âge d’un point se compte à partir de T.
completedAtstring (date-time)oui—
blobsintegerouiau moins 0
contentBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
newBytesstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne; Octets que ce point a ajoutés au stockage des sauvegardes.
tablesintegerouiau moins 0
rowsintegerouiau moins 0
pinnedbooleanoui—
verifiedAtstring (date-time)ouipeut être null
verifyDepthstringouiune valeur parmi structural, deep, null; peut être null
verifyErrorstringouicorrespond à ^[a-z][a-z0-9_]{0,63}$; peut être null

Réponses: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemple

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évisualiser ce que la rétention des sauvegardes conserve ​

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

Accès: Autorisation système backup.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Montre quels points la politique de rétention conserverait, chacun avec ses raisons (daily, weekly, monthly, pinned, newest), et lesquels elle supprimerait maintenant. Les points dont la vérification a échoué ne sont pas pris en compte. L’aperçu est indicatif : requestBackupRetention décide de nouveau à partir du stockage des sauvegardes lors de son exécution.

Réponse 200

ChampTypeObligatoireRègles
keeptableau de objectoui—
keep[].idstring (uuid)oui—
keep[].reasonstableau de stringouichaque élément : une valeur parmi daily, weekly, monthly, pinned, newest
deletetableau de objectoui—
delete[].idstring (uuid)oui—

Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemple

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

Demander la rétention des sauvegardes ​

POST /api/v1/backup/retention/apply

Accès: Autorisation système backup.manage · Nouvelle tentative: Peut être répétée sans risque avec la même Idempotency-Key

Met en file une tâche de rétention : l’agent oublie les points hors de la politique, puis supprime le contenu qu’aucun point restant n’utilise ; l’espace ne revient donc au stockage des sauvegardes qu’une fois la tâche terminée. Renvoie 202 avec la tâche ; Idempotency-Key est obligatoire et la répéter renvoie la même tâche. Consultez d’abord previewBackupRetention.

Paramètres

NomEmplacementTypeObligatoireRègles
Idempotency-Keyen-têtestringouicorrespond à ^[A-Za-z0-9_.:-]{1,128}$; Repeat returns the same job; per caller and operation kind.

Réponse 202

ChampTypeObligatoireRègles
idstring (uuid)oui—
kindstringouiune valeur parmi capture, verify, retention
statestringouiune valeur parmi queued, running, committing, completed, failed, interrupted

Réponses: 202, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemple

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

Arkvory · ProAnimaStudio