Paquets
Paquets UPack : enregistrement, liste, versions et téléchargements par nom, version ou plage de versions.
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
Lister les versions de paquets
GET HEAD /api/v1/repositories/{repository}/packages
Accès: Autorisation sur le dépôt : package.read; clés de fichier : read · Nouvelle tentative: Peut être répétée sans risque (lecture)
Liste les versions UPack enregistrées avec leurs manifestes, filtrées par group et name (valeur exacte, sans tenir compte de la casse ; group= avec une valeur vide sélectionne le groupe racine, l’omettre sélectionne tous les groupes). sort (group, name, version), direction (asc, desc) et groupBy (none, group, package, qui ajoute groups listant les artifactIds de la page) déterminent la forme du résultat. Les pages contiennent limit éléments (1–100, 50 par défaut) ; poursuivez avec after défini sur next et les mêmes filtres. Les pages ne sont pas un instantané : des versions enregistrées entre-temps peuvent être manquées jusqu’au prochain passage.
Paramètres
| Nom | Emplacement | Type | Obligatoire | Règles |
|---|---|---|---|---|
repository | chemin | string | oui | correspond à ^[a-z0-9][a-z0-9_-]{0,63}$ |
group | requête | string | non | — |
name | requête | string | non | — |
sort | requête | string | non | une valeur parmi group, name, version |
direction | requête | string | non | une valeur parmi asc, desc |
groupBy | requête | string | non | une valeur parmi none, group, package |
after | requête | string | non | — |
limit | requête | integer | non | 1–100 |
Réponse 200
| Champ | Type | Obligatoire | Règles |
|---|---|---|---|
items | tableau de object | oui | — |
items[].group | string | non | — |
items[].name | string | non | — |
items[].version | string | non | — |
items[].artifactId | string (uuid) | non | — |
items[].manifest | object | non | — |
next | string | oui | peut être null |
groups | tableau de object | oui | — |
groups[].group | string | oui | — |
groups[].name | string | oui | peut être null |
groups[].artifactIds | tableau de string (uuid) | oui | — |
Réponses: 200, 400, 401, 403, 404, 409, 422, 503, 507
Exemple
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages" \
-H "Authorization: Bearer $ARKVORY_TOKEN"Télécharger un paquet par nom et version
GET HEAD /api/v1/repositories/{repository}/packages/content
Accès: Autorisation sur le dépôt : content.read; clés de fichier : read · Nouvelle tentative: Peut être répétée sans risque (lecture)
Résout name (dans group, le groupe racine par défaut) en une version enregistrée et la diffuse en flux comme downloadArtifact ; X-Arkvory-Artifact-Id et X-Arkvory-Package-Version désignent le choix. Sélectionnez par version exacte ou par plage SemVer range (comme ^1.4 ou >=1.0.0 <2.0.0), éventuellement uniquement parmi les versions ayant stage ; sans l’un ni l’autre, la version stable la plus élevée est retenue, prerelease=true admet les préversions et order=promoted retient la version qui a reçu stage le plus récemment. Le nom est résolu à chaque requête : reprenez donc avec If-Range défini sur l’ETag renvoyé, ou téléchargez par ID d’artefact ; resolvePackage donne le même choix sans les octets.
Paramètres
| Nom | Emplacement | Type | Obligatoire | Règles |
|---|---|---|---|---|
repository | chemin | string | oui | correspond à ^[a-z0-9][a-z0-9_-]{0,63}$ |
Range | en-tête | string | non | Single bytes range; multi-range is unsupported. HEAD ignores Range. |
If-Range | en-tête | string | non | Exact strong ETag; a mismatch causes a full response. |
If-None-Match | en-tête | string | non | Matching ETag returns 304, including HEAD. |
Arkvory-Download-Id | en-tête | string | non | correspond à ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time. |
Arkvory-Queue-Ticket | en-tête | string | non | jusqu’à 80 caractères; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored. |
Arkvory-Download-Class | en-tête | string | non | une valeur parmi interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied. |
group | requête | string | non | jusqu’à 128 caractères |
name | requête | string | oui | 1–128 caractères |
version | requête | string | non | jusqu’à 128 caractères; Exact version; excludes range. |
range | requête | string | non | jusqu’à 256 caractères; SemVer range: 1.2.3, ^1.2, ~1.2.3, 1.x, >=1.0.0 <2.0.0, a || b. |
stage | requête | string | non | correspond à ^[a-z0-9][a-z0-9_.-]{0,31}$; Only versions promoted to this stage. |
prerelease | requête | string | non | une valeur parmi true, false; Include prereleases. |
order | requête | string | non | une valeur parmi version, promoted; promoted picks the most recently staged version and requires stage. |
Réponses: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507
Exemple
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages/content?name=$NAME" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-o file