Mises à jour
Offres de mise à jour du hub et demande d’installation de l’une d’elles.
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 des mises à jour
GET HEAD /api/v1/system/updates
Accès: Administrateur · Nouvelle tentative: Peut être répétée sans risque (lecture)
Renvoie ce que signale le programme de mise à jour de l’hôte : la version et le schéma installés, la dernière version trouvée (latest), les paramètres de mise à jour automatique (automatic, hourUTC, pin, channel, statistics), la phase (idle, checking, updating, failed), la dernière error, le dernier signal de vie et la revision des paramètres, ainsi que la demande encore en attente dans la boîte de réception du programme de mise à jour (pending). snapshot vaut null lorsqu’aucun programme de mise à jour de l’hôte n’est connecté. Passez revision à requestSystemUpdate.
Réponse 200
| Champ | Type | Obligatoire | Règles |
|---|---|---|---|
snapshot | object | oui | peut être null |
snapshot.revision | integer | oui | 0–2147483646 |
snapshot.currentVersion | string | oui | correspond à ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.currentSchema | integer | oui | 0–2147483647 |
snapshot.automatic | boolean | oui | — |
snapshot.hourUTC | integer | oui | 0–23 |
snapshot.pin | string | oui | correspond à ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$; peut être null |
snapshot.heartbeatAt | string (date-time) | oui | — |
snapshot.checkedAt | string (date-time) | oui | peut être null |
snapshot.latest | object | oui | peut être null |
snapshot.latest.version | string | oui | correspond à ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.latest.schema | integer | oui | 0–2147483647 |
snapshot.latest.sha256 | string | oui | SHA-256 : 64 chiffres hexadécimaux en minuscules |
snapshot.phase | string | oui | une valeur parmi idle, checking, updating, failed |
snapshot.error | string | oui | une valeur parmi check_failed, update_failed, conflict, maintenance_required, recovery_required, null; peut être null |
snapshot.lastAttemptDay | string | oui | peut être null |
snapshot.lastRequestId | string (uuid) | oui | peut être null |
snapshot.statistics | boolean | non | — |
snapshot.channel | string | non | une valeur parmi stable, beta |
pending | object | oui | une valeur parmi null |
pending.id | string (uuid) | oui | — |
pending.expectedRevision | integer | oui | 0–2147483646 |
pending.kind | string | oui | une valeur parmi check |
pending.version | string | oui | correspond à ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
pending.sha256 | string | oui | SHA-256 : 64 chiffres hexadécimaux en minuscules |
pending.automatic | boolean | oui | — |
pending.hourUTC | integer | oui | 0–23 |
pending.statistics | boolean | non | — |
Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507
Exemple
curl -X GET "$ARKVORY_URL/api/v1/system/updates" \
-H "Authorization: Bearer $ARKVORY_TOKEN"Demander une action de mise à jour
POST /api/v1/system/updates/requests
Accès: Administrateur · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)
Confie une commande au programme de mise à jour de l’hôte, qui effectue le travail : kind check cherche une nouvelle version, apply installe la version stable donnée avec son sha256, configure définit automatic, hourUTC et, facultativement, statistics. Envoyez un nouvel UUID comme id et l’expectedRevision obtenu par getSystemUpdates ; 409 revision_mismatch signifie que les paramètres ont changé, 503 busy qu’une demande est en attente ou que le programme de mise à jour travaille, 503 unavailable qu’aucun programme de mise à jour n’est connecté ou que son dernier signal de vie date de plus de cinq minutes. La réponse 202 signifie seulement que la demande a été mise en file : suivez phase, currentVersion et lastRequestId dans getSystemUpdates. Répéter le même id avec le même corps est sans risque.
Corps de la requête (application/json)
| Champ | Type | Obligatoire | Règles |
|---|---|---|---|
id | string (uuid) | oui | — |
expectedRevision | integer | oui | 0–2147483646 |
kind | string | oui | une valeur parmi check |
version | string | oui | correspond à ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
sha256 | string | oui | SHA-256 : 64 chiffres hexadécimaux en minuscules |
automatic | boolean | oui | — |
hourUTC | integer | oui | 0–23 |
statistics | boolean | non | — |
Réponse 202
| Champ | Type | Obligatoire | Règles |
|---|---|---|---|
id | string (uuid) | oui | — |
Réponses: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
Exemple
curl -X POST "$ARKVORY_URL/api/v1/system/updates/requests" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":"00000000-0000-4000-8000-000000000000","expectedRevision":0,"kind":"check"}'