Aller au contenu

Comptes de service et clés ​

Comptes de service pour la CI et l’automatisation, leurs clés, politiques, délégations et audit.

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 comptes de service ​

GET HEAD /api/v1/service-accounts

Accès: Autorisation d’administration des services service-account.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les comptes de service que l’appelant peut voir, triés par ID, 50 par page, chacun avec nom, indicateur d’activation, revision, bindings de politique et date de création ; poursuivez avec after défini sur next. La clé d’amorçage les voit tous, un délégué seulement les cibles pour lesquelles sa délégation inclut service-account.read ; sinon la liste est vide plutôt que refusée.

Paramètres

NomEmplacementTypeObligatoireRègles
afterrequêtestring (uuid)non—

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 50 éléments
items[].idstring (uuid)oui—
items[].namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
items[].enabledbooleanoui—
items[].revisionintegeroui1–2147483647
items[].bindingstableau de objectouijusqu’à 64 éléments
items[].bindings[].resourceobjectoui—
items[].bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
items[].createdAtstring (date-time)oui—
nextstring (uuid)ouipeut être null

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

Exemple

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

Créer un compte de service ​

POST /api/v1/service-accounts

Accès: Clé d’amorçage (clé de récupération de l’installation) · Nouvelle tentative: Ne pas répéter automatiquement

Crée une identité machine pour le CI ou une application avec name (3–64 lettres, chiffres ou _.-) et les bindings de sa politique : pour chaque dépôt, les actions exactes que ses clés peuvent utiliser (comme upload.create ou content.read). Répond 201 avec le compte ; émettez ensuite une clé avec issueServiceKey. Un nom déjà pris donne 409 already_exists.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Réponse 201

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleanoui—
revisionintegeroui1–2147483647
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/service-accounts" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Obtenir un compte de service ​

GET HEAD /api/v1/service-accounts/{id}

Accès: Autorisation d’administration des services service-account.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie le nom du compte, son indicateur d’activation, sa revision, les liaisons de sa politique et sa date de création. Pour un délégué, un compte qui ne lui est pas attribué répond 404, et une action manquante sur un compte attribué 403.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleanoui—
revisionintegeroui1–2147483647
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—

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

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Activer ou désactiver un compte de service ​

PATCH /api/v1/service-accounts/{id}

Accès: Autorisation d’administration des services service-account.manage · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)

Définit enabled ; expectedRevision doit être la révision actuelle, sinon 409 revision_mismatch. Seul cet indicateur change ici (le nom ne peut pas changer). Désactiver bloque toutes les clés du compte dès la prochaine requête ; activer rétablit les clés qui ne sont ni expirées ni révoquées. Un délégué ne peut le faire que si toute la politique actuelle reste dans son plafond.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
expectedRevisionintegeroui1–2147483646
enabledbooleanoui—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleanoui—
revisionintegeroui1–2147483647
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—

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

Exemple

bash
curl -X PATCH "$ARKVORY_URL/api/v1/service-accounts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1,"enabled":false}'

Obtenir la politique d’un compte de service ​

GET HEAD /api/v1/service-accounts/{id}/policy

Accès: Autorisation d’administration des services policy.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie le compte avec les bindings et la revision de sa politique, comme getServiceAccount, pour un appelant qui détient policy.read. Les autorisations effectives d’une clé sont l’intersection de cette politique et des liaisons propres à la clé, par dépôt et par action.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleanoui—
revisionintegeroui1–2147483647
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—

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

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Remplacer la politique d’un compte de service ​

PUT /api/v1/service-accounts/{id}/policy

Accès: Autorisation d’administration des services policy.manage · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)

Remplace les bindings du compte (64 au plus, chacune étant un dépôt avec ses actions exactes) ; expectedRevision doit être la révision actuelle, sinon 409 revision_mismatch. Chaque clé suit la modification dès sa prochaine requête : un rétrécissement prend effet aussitôt, un élargissement ne dépasse jamais les liaisons propres à la clé. Un délégué doit rester dans son plafond, tant avec la politique actuelle qu’avec la nouvelle.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
expectedRevisionintegeroui1–2147483646
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleanoui—
revisionintegeroui1–2147483647
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—

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

Exemple

bash
curl -X PUT "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1,"bindings":[]}'

Lister les clés d’un compte de service ​

GET HEAD /api/v1/service-accounts/{id}/keys

Accès: Autorisation d’administration des services credential.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les métadonnées des clés du compte triées par ID, 50 par page : nom, state (pending, active, revoked), liaisons, création, expiration, échéance d’activation et clé dont elle est issue par renouvellement ; jamais les secrets ni les empreintes. Poursuivez avec after défini sur next. L’expiration ne modifie pas state : comparez donc expiresAt à l’heure actuelle.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
afterrequêtestring (uuid)non—

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 50 éléments
items[].idstring (uuid)oui—
items[].accountIdstring (uuid)oui—
items[].namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
items[].statestringouiune valeur parmi pending, active, revoked
items[].bindingstableau de objectouijusqu’à 64 éléments
items[].bindings[].resourceobjectoui—
items[].bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
items[].createdAtstring (date-time)oui—
items[].expiresAtstring (date-time)oui—
items[].activationExpiresAtstring (date-time)oui—
items[].rotatedFromstring (uuid)ouipeut être null
nextstring (uuid)ouipeut être null

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

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Émettre une clé pour un compte de service ​

POST /api/v1/service-accounts/{id}/keys

Accès: Autorisation d’administration des services credential.manage · Nouvelle tentative: Peut être répétée sans risque avec la même Idempotency-Key

Émet une clé en attente avec name, bindings (effectives seulement là où la politique du compte les autorise aussi) et expiresAt facultatif (UTC ; 90 jours par défaut, 365 au plus et, pour un délégué, jamais au-delà de sa propre clé). La première réponse est 201 avec key et le secret, montré une seule fois ; une répétition avec la même Idempotency-Key et le même corps donne 200 avec les métadonnées seules, un corps différent 409. Le détenteur doit appeler activateServiceKey avec le secret dans les 15 minutes ; si le secret est perdu, révoquez la clé et émettez-en une nouvelle sous une nouvelle Idempotency-Key.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
Idempotency-Keyen-têtestringouijusqu’à 128 caractères

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
expiresAtstring (date-time)non—

Réponse 200

ChampTypeObligatoireRègles
keyobjectoui—
key.idstring (uuid)oui—
key.accountIdstring (uuid)oui—
key.namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
key.statestringouiune valeur parmi pending, active, revoked
key.bindingstableau de objectouijusqu’à 64 éléments
key.bindings[].resourceobjectoui—
key.bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
key.createdAtstring (date-time)oui—
key.expiresAtstring (date-time)oui—
key.activationExpiresAtstring (date-time)oui—
key.rotatedFromstring (uuid)ouipeut être null
secretstringnon—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Lire l’audit d’un compte de service ​

GET HEAD /api/v1/service-accounts/{id}/audit

Accès: Autorisation d’administration des services service-audit.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie, du plus ancien au plus récent, jusqu’à 100 événements du compte après la séquence after (0 par défaut) : modifications du compte, de la politique et des clés, comme l’émission, le renouvellement, l’activation et la révocation, chacune avec l’acteur, l’action, la clé et l’heure. Pour lire la suite, passez le dernier sequence comme after ; il n’y a pas de champ next. Seuls les 100 000 événements les plus récents du serveur sont conservés.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
afterrequêtestringnonun nombre entier en chiffres décimaux, transmis sous forme de chaîne

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].sequencestringoui—
items[].actorstringoui—
items[].actionstringoui—
items[].accountIdstring (uuid)oui—
items[].keyIdstring (uuid)ouipeut être null
items[].occurredAtstring (date-time)oui—

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

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/audit" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Obtenir une clé ​

GET HEAD /api/v1/api-keys/{id}

Accès: Autorisation d’administration des services credential.read · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie les métadonnées d’une clé gérée : son compte, son nom, son état, ses liaisons, sa création, son expiration, son échéance d’activation et la clé dont elle est issue par renouvellement ; jamais le secret ni son empreinte.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
accountIdstring (uuid)oui—
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
statestringouiune valeur parmi pending, active, revoked
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)oui—
expiresAtstring (date-time)oui—
activationExpiresAtstring (date-time)oui—
rotatedFromstring (uuid)ouipeut être null

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

Exemple

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

Renouveler une clé ​

POST /api/v1/api-keys/{id}/rotate

Accès: Autorisation d’administration des services credential.manage · Nouvelle tentative: Peut être répétée sans risque avec la même Idempotency-Key

Émet un successeur en attente de la clé id pour le même compte, avec des bindings identiques ou plus étroites, en répondant comme issueServiceKey : 201 avec le secret à usage unique, 200 avec les métadonnées seules lors d’une répétition avec la même Idempotency-Key. Une fois le successeur activé, l’ancienne clé reste valable 24 heures au plus ; révoquez-la explicitement lorsque la nouvelle fonctionne, mais seulement après la fin des tâches qu’elle a lancées. Les délégations détenues par une clé d’opérateur ne sont pas copiées vers son successeur.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
Idempotency-Keyen-têtestringouijusqu’à 128 caractères

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
bindingstableau de objectouijusqu’à 64 éléments
bindings[].resourceobjectoui—
bindings[].resource.kindstringouiune valeur parmi repository
bindings[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
expiresAtstring (date-time)non—

Réponse 200

ChampTypeObligatoireRègles
keyobjectoui—
key.idstring (uuid)oui—
key.accountIdstring (uuid)oui—
key.namestringouicorrespond à ^[a-zA-Z0-9_.-]{3,64}$
key.statestringouiune valeur parmi pending, active, revoked
key.bindingstableau de objectouijusqu’à 64 éléments
key.bindings[].resourceobjectoui—
key.bindings[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
key.createdAtstring (date-time)oui—
key.expiresAtstring (date-time)oui—
key.activationExpiresAtstring (date-time)oui—
key.rotatedFromstring (uuid)ouipeut être null
secretstringnon—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/rotate" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Révoquer une clé ​

POST /api/v1/api-keys/{id}/revoke

Accès: Autorisation d’administration des services credential.manage · Nouvelle tentative: Peut être répétée sans risque : la même requête a le même effet

Révoque définitivement la clé : sa prochaine requête échoue, tandis qu’un téléchargement déjà en cours n’est pas interrompu. Répéter l’opération réussit avec 204. Les clés qu’une clé d’opérateur révoquée a émises et qui étaient déjà activées restent valables ; révoquez-les séparément.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/revoke" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Activer une clé ​

POST /api/v1/auth/activate-key

Accès: La clé émise, avant ou après activation · Nouvelle tentative: Peut être répétée sans risque : la même requête a le même effet

Prouve que le détenteur a reçu une clé nouvellement émise : appelez l’opération en présentant cette clé dans Authorization: Bearer dans les 15 minutes suivant l’émission, et la clé devient active (204). La répéter est sans risque et ne prolonge pas l’expiration. Activer une clé renouvelée réduit à 24 heures au plus la durée de vie restante de la clé qu’elle remplace.

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/activate-key" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Lister les délégations d’une clé ​

GET HEAD /api/v1/api-keys/{id}/delegations

Accès: Clé d’amorçage, ou la clé elle-même · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie les délégations détenues par la clé d’opérateur id, jusqu’à 64 y compris les délégations désactivées : pour chaque compte cible, sa revision, si elle est enabled, les actions d’administration (comme credential.manage) et le ceiling des liaisons de dépôts qu’elle peut transmettre. Un délégué lit ici les siennes (l’ID de sa clé est credentialId dans getOwnPermissions) ; la liste d’une autre clé donne 403.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 64 éléments
items[].keyIdstring (uuid)oui—
items[].targetAccountIdstring (uuid)oui—
items[].enabledbooleanoui—
items[].revisionintegeroui1–2147483647
items[].actionstableau de stringouijusqu’à 7 éléments; aucun élément répété; chaque élément : une valeur parmi service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
items[].ceilingtableau de objectouijusqu’à 16 éléments
items[].ceiling[].resourceobjectoui—
items[].ceiling[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

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

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/api-keys/$ID/delegations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Déléguer l’administration d’un compte de service ​

PUT /api/v1/api-keys/{id}/delegations/{accountId}

Accès: Clé d’amorçage (clé de récupération de l’installation) · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)

Permet à la clé id d’administrer le compte de service accountId avec les actions données (service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read) dans les limites de ceiling, 16 liaisons de dépôts au plus qu’elle peut transmettre ; manage n’implique pas read. expectedRevision vaut 0 pour créer et la révision actuelle de l’enregistrement pour le modifier ou le réactiver, sinon 409. La clé doit être active et émise par la clé d’amorçage, et un compte ne peut pas à la fois détenir des délégations et être la cible de l’une d’elles : la délégation n’est donc jamais chaînée.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
accountIdcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
expectedRevisionintegeroui0–2147483646
actionstableau de stringoui1–7 éléments; aucun élément répété; chaque élément : une valeur parmi service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingtableau de objectouijusqu’à 16 éléments
ceiling[].resourceobjectoui—
ceiling[].resource.kindstringouiune valeur parmi repository
ceiling[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Réponse 200

ChampTypeObligatoireRègles
keyIdstring (uuid)oui—
targetAccountIdstring (uuid)oui—
enabledbooleanoui—
revisionintegeroui1–2147483647
actionstableau de stringouijusqu’à 7 éléments; aucun élément répété; chaque élément : une valeur parmi service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingtableau de objectouijusqu’à 16 éléments
ceiling[].resourceobjectoui—
ceiling[].resource.kindstringouiune valeur parmi repository
ceiling[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

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

Exemple

bash
curl -X PUT "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"actions":["service-account.read"],"ceiling":[]}'

Retirer une délégation ​

DELETE /api/v1/api-keys/{id}/delegations/{accountId}

Accès: Clé d’amorçage (clé de récupération de l’installation) · Nouvelle tentative: Répéter uniquement avec la révision attendue (compare-and-swap)

Désactive la délégation de la clé id sur accountId ; le corps JSON porte expectedRevision, la révision actuelle de l’enregistrement. L’enregistrement subsiste comme entrée désactivée, sans actions et avec une révision plus élevée, renvoyée avec 200 ; après une réponse perdue, lisez-le avec listServiceDelegations plutôt que de répéter l’appel, car l’ancienne révision donne 409. Les clés que le délégué a déjà émises et activées continuent de fonctionner : révoquez-les ou désactivez le compte séparément.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
accountIdcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
expectedRevisionintegeroui1–2147483646

Réponse 200

ChampTypeObligatoireRègles
keyIdstring (uuid)oui—
targetAccountIdstring (uuid)oui—
enabledbooleanoui—
revisionintegeroui1–2147483647
actionstableau de stringouijusqu’à 7 éléments; aucun élément répété; chaque élément : une valeur parmi service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingtableau de objectouijusqu’à 16 éléments
ceiling[].resourceobjectoui—
ceiling[].resource.kindstringouiune valeur parmi repository
ceiling[].resource.idstringouicorrespond à ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionstableau de stringoui1–24 éléments; aucun élément répété; chaque élément : une valeur parmi repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

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

Exemple

bash
curl -X DELETE "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1}'

Arkvory · ProAnimaStudio