Aller au contenu

Comptes et connexion ​

Connexion, sessions, jetons d’accès personnels, utilisateurs, groupes et audit de sécurité.

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 ​

Se connecter ​

POST /api/v1/auth/login

Accès: Tout le monde, sans clé · Nouvelle tentative: Ne pas répéter automatiquement

Échange le name d’un compte et son password contre un token de session bearer valable 12 heures, avec son expiresAt et le compte ; envoyez-le dans Authorization: Bearer. Un nom inconnu, un mot de passe incorrect et un compte désactivé répondent tous de la même façon, 401 invalid_credentials. Les tentatives sont limitées par adresse de client et par compte (429 rate_limited avec Retry-After), et un compte conserve au plus 32 sessions : une nouvelle session met fin à la plus ancienne.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringoui—
passwordstring (password)oui—

Réponse 200

ChampTypeObligatoireRègles
tokenstringoui—
expiresAtstring (date-time)oui—
accountobjectoui—
account.idstring (uuid)oui—
account.namestringoui—
account.administratorbooleanoui—
account.enabledbooleanoui—

Réponses: 200, 400, 401, 403, 405, 413, 415, 429, 503

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","password":"<password>"}'

S’inscrire ​

POST /api/v1/auth/register

Accès: Tout le monde, sans clé · Nouvelle tentative: Ne pas répéter automatiquement

Crée un compte ordinaire (jamais un administrateur) avec name (3–64 lettres, chiffres ou _.-) et password (12–128 caractères) et le connecte, en répondant 201 avec une session de 12 heures comme login. Ne fonctionne que si le serveur autorise l’auto-inscription (voir getAuthOptions), sinon 403 registration_disabled ; un nom déjà pris donne 409 already_exists. Les tentatives sont limitées par adresse de client (429 avec Retry-After), et l’auto-inscription s’arrête à 900 comptes.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringoui—
passwordstring (password)oui—

Réponse 201

ChampTypeObligatoireRègles
tokenstringoui—
expiresAtstring (date-time)oui—
accountobjectoui—
account.idstring (uuid)oui—
account.namestringoui—
account.administratorbooleanoui—
account.enabledbooleanoui—

Réponses: 201, 400, 403, 405, 413, 415, 429, 503

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/register" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","password":"<password>"}'

Obtenir les options de connexion ​

GET HEAD /api/v1/auth/options

Accès: Tout le monde, sans clé · Nouvelle tentative: Peut être répétée sans risque (lecture)

Indique à une console, avant la connexion, quels formulaires afficher : selfRegistration vaut true lorsque registerAccount est ouvert sur ce serveur.

Réponse 200

ChampTypeObligatoireRègles
selfRegistrationbooleanoui—

Réponses: 200, 400, 403, 503

Exemple

bash
curl -X GET "$ARKVORY_URL/api/v1/auth/options"

Lister vos jetons d’accès personnels ​

GET HEAD /api/v1/auth/tokens

Accès: Une session de compte ouverte (pas une clé) · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les jetons d’accès personnels du compte connecté, les actifs d’abord, avec nom, préfixe, portée, création, expiration, dernière utilisation et indication de révocation ; les secrets ne sont plus jamais affichés.

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].idstring (uuid)oui—
items[].namestringoui—
items[].prefixstringoui—
items[].scopestringouiune valeur parmi read, read-write
items[].createdAtstring (date-time)oui—
items[].expiresAtstring (date-time)nonpeut être null
items[].lastUsedAtstring (date-time)nonpeut être null
items[].revokedbooleanoui—

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

Exemple

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

Créer un jeton d’accès personnel ​

POST /api/v1/auth/tokens

Accès: Une session de compte ouverte (pas une clé) · Nouvelle tentative: Ne pas répéter automatiquement

Crée un jeton pour des scripts et des outils, qui agit au nom du compte connecté ; le secret figure uniquement dans cette réponse. name compte 1–64 caractères, expiresAt vaut par défaut 90 jours et doit se situer dans le futur et dans les 365 jours, et scope vaut read-write (par défaut) ou read, qui ne peut jamais rien modifier. Les jetons ne portent jamais de droits d’administrateur, ne peuvent pas créer de jetons, et un compte en a au plus 50 actifs (507 token_limit).

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringoui—
expiresAtstring (date-time)non—
scopestringnonune valeur parmi read, read-write

Réponse 201

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringoui—
prefixstringoui—
scopestringouiune valeur parmi read, read-write
createdAtstring (date-time)oui—
expiresAtstring (date-time)nonpeut être null
lastUsedAtstring (date-time)nonpeut être null
revokedbooleanoui—
tokenstringoui—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/tokens" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>"}'

Révoquer votre jeton d’accès personnel ​

DELETE /api/v1/auth/tokens/{id}

Accès: Une session de compte ouverte (pas une clé) · Nouvelle tentative: Peut être répétée sans risque : la même requête a le même effet

Révoque un jeton d’accès personnel du compte connecté ; les requêtes qui l’utilisent échouent dès maintenant. Révoquer un jeton déjà révoqué réussit aussi.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

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

Exemple

bash
curl -X DELETE "$ARKVORY_URL/api/v1/auth/tokens/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Se déconnecter ​

POST /api/v1/auth/logout

Accès: Toute clé ou session valide · Nouvelle tentative: Peut être répétée sans risque : la même requête a le même effet

Met fin à la session de compte envoyée dans Authorization ; son jeton cesse de fonctionner aussitôt. Avec tout autre justificatif d’identité (un jeton personnel ou une clé de service), elle répond 204 et ne révoque rien.

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

Exemple

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

Changer votre mot de passe ​

POST /api/v1/auth/password

Accès: Une session de compte ouverte (pas une clé) · Nouvelle tentative: Ne pas répéter automatiquement

Définit newPassword (12–128 caractères) après avoir vérifié currentPassword ; un mot de passe actuel incorrect donne 401 current_password_invalid et compte dans le ralentissement progressif des tentatives de connexion. En cas de succès, toutes les sessions et tous les jetons d’accès personnels du compte sont révoqués, y compris la session actuelle : reconnectez-vous.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
currentPasswordstring (password)oui—
newPasswordstring (password)oui—

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/password" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"currentPassword":"<currentPassword>","newPassword":"<newPassword>"}'

Obtenir l’identité actuelle ​

GET HEAD /api/v1/auth/me

Accès: Toute clé ou session valide · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie à qui appartient le justificatif : son id, s’il s’agit d’un administrateur, le type de justificatif (session, personal-token, service-key ou file-key), la portée d’un jeton personnel et les dépôts auxquels il a un accès read ou write. Utilisez-le pour afficher l’utilisateur connecté et choisir un dépôt ; pour les autorisations exactes d’une clé de service gérée, utilisez getOwnPermissions.

Réponse 200

ChampTypeObligatoireRègles
idstringoui—
administratorbooleanoui—
credentialstringnonune valeur parmi session, personal-token, service-key, file-key
tokenScopestringnonune valeur parmi read, read-write
grantstableau de objectoui—
grants[].repositorystringoui—
grants[].permissionstableau de stringouichaque élément : une valeur parmi read, write

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

Exemple

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

Lister les comptes ​

GET HEAD /api/v1/users

Accès: Administrateur · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste tous les comptes utilisateurs triés par nom, avec ID, nom, indicateur d’administrateur et état activé ou non. Le serveur contient au plus 1000 comptes.

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectnon—
items[].idstring (uuid)oui—
items[].namestringoui—
items[].administratorbooleanoui—
items[].enabledbooleanoui—

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

Exemple

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

Créer un compte ​

POST /api/v1/users

Accès: Administrateur · Nouvelle tentative: Ne pas répéter automatiquement

Crée un compte avec name (3–64 lettres, chiffres ou _.-), password (12–128 caractères) et administrator (false par défaut), et répond 201 avec ce compte. Un nom déjà pris donne 409 already_exists ; le serveur contient au plus 1000 comptes (507 account_limit).

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringoui—
passwordstring (password)oui—
administratorbooleannon—

Réponse 201

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringoui—
administratorbooleanoui—
enabledbooleanoui—

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

Exemple

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

Activer, désactiver ou réinitialiser un compte ​

PATCH /api/v1/users/{id}

Accès: Administrateur · Nouvelle tentative: Ne pas répéter automatiquement

Modifie enabled et/ou définit un nouveau password pour un compte ; l’indicateur d’administrateur ne peut pas être modifié ici. Désactiver un compte met fin à toutes ses sessions, et ses jetons personnels cessent de fonctionner tant qu’il reste désactivé ; une réinitialisation du mot de passe met fin à toutes les sessions et révoque tous les jetons personnels.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
enabledbooleannon—
passwordstring (password)non—

Réponse 200

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringoui—
administratorbooleanoui—
enabledbooleanoui—

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

Exemple

bash
curl -X PATCH "$ARKVORY_URL/api/v1/users/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Lister les jetons d’accès personnels d’un compte ​

GET HEAD /api/v1/users/{id}/tokens

Accès: Administrateur · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste les jetons d’accès personnels de n’importe quel compte, les actifs d’abord, avec nom, préfixe, portée, création, expiration, dernière utilisation et révocation ; jamais les secrets. Utilisez cette liste pour examiner l’automatisation avant de désactiver ou de réinitialiser le compte.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].idstring (uuid)oui—
items[].namestringoui—
items[].prefixstringoui—
items[].scopestringouiune valeur parmi read, read-write
items[].createdAtstring (date-time)oui—
items[].expiresAtstring (date-time)nonpeut être null
items[].lastUsedAtstring (date-time)nonpeut être null
items[].revokedbooleanoui—

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

Exemple

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

Révoquer un jeton d’accès personnel d’un compte ​

DELETE /api/v1/users/{id}/tokens/{tokenId}

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

Révoque un jeton d’accès personnel du compte id ; les requêtes qui l’utilisent échouent dès maintenant, et l’événement est consigné dans l’audit de sécurité. Révoquer un jeton déjà révoqué réussit aussi.

Paramètres

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

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

Exemple

bash
curl -X DELETE "$ARKVORY_URL/api/v1/users/$ID/tokens/$TOKENID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Lister les groupes d’accès ​

GET HEAD /api/v1/access-groups

Accès: Administrateur · Nouvelle tentative: Peut être répétée sans risque (lecture)

Liste tous les groupes d’accès avec les ID de leurs comptes membres et leurs autorisations sur les dépôts (read ou write). Le serveur contient au plus 100 groupes, 10 000 appartenances et 10 000 autorisations accordées.

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectnon—
items[].idstring (uuid)oui—
items[].namestringoui—
items[].memberstableau de string (uuid)oui—
items[].grantstableau de objectoui—
items[].grants[].repositorystringoui—
items[].grants[].accessstringouiune valeur parmi read, write

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

Exemple

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

Créer un groupe d’accès ​

POST /api/v1/access-groups

Accès: Administrateur · Nouvelle tentative: Ne pas répéter automatiquement

Crée un groupe vide avec name (2–64 lettres, chiffres ou _.-) et répond 201 avec ce groupe ; un nom déjà pris donne 409 already_exists. Ajoutez des membres avec addGroupMember et des dépôts avec setGroupGrant.

Corps de la requête (application/json)

ChampTypeObligatoireRègles
namestringoui—

Réponse 201

ChampTypeObligatoireRègles
idstring (uuid)oui—
namestringoui—
memberstableau de string (uuid)oui—
grantstableau de objectoui—
grants[].repositorystringoui—
grants[].accessstringouiune valeur parmi read, write

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

Exemple

bash
curl -X POST "$ARKVORY_URL/api/v1/access-groups" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>"}'

Ajouter un compte à un groupe ​

PUT /api/v1/access-groups/{id}/members/{userId}

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

Fait du compte userId un membre du groupe ; il obtient l’accès du groupe aux dépôts dès sa prochaine requête. Ajouter un membre existant ne change rien ; 10 000 appartenances au plus au total (507 membership_limit).

Paramètres

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

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

Exemple

bash
curl -X PUT "$ARKVORY_URL/api/v1/access-groups/$ID/members/$USERID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Retirer un compte d’un groupe ​

DELETE /api/v1/access-groups/{id}/members/{userId}

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

Retire le compte userId du groupe ; l’accès qu’il avait par ce groupe prend fin avec sa prochaine requête. Retirer un compte qui n’est pas membre réussit aussi.

Paramètres

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

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

Exemple

bash
curl -X DELETE "$ARKVORY_URL/api/v1/access-groups/$ID/members/$USERID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Accorder à un groupe l’accès à un dépôt ​

PUT /api/v1/access-groups/{id}/grants/{repository}

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

Donne aux membres du groupe l’accès access read ou write à repository, en remplaçant une autorisation antérieure du groupe sur ce dépôt ; elle s’applique dès leur prochaine requête. Un dépôt n’a pas besoin d’être créé séparément : l’autorisation le rend visible pour eux. 10 000 autorisations accordées au plus au total (507 grant_limit).

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
repositorycheminstringoui—

Corps de la requête (application/json)

ChampTypeObligatoireRègles
accessstringouiune valeur parmi read, write

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

Exemple

bash
curl -X PUT "$ARKVORY_URL/api/v1/access-groups/$ID/grants/$REPOSITORY" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"access":"read"}'

Retirer l’accès d’un groupe à un dépôt ​

DELETE /api/v1/access-groups/{id}/grants/{repository}

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

Retire l’autorisation du groupe pour repository ; ses membres ne conservent que l’accès qu’ils ont par d’autres groupes. Retirer une autorisation qui n’existe pas réussit aussi.

Paramètres

NomEmplacementTypeObligatoireRègles
idcheminstring (uuid)oui—
repositorycheminstringoui—

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

Exemple

bash
curl -X DELETE "$ARKVORY_URL/api/v1/access-groups/$ID/grants/$REPOSITORY" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Lire l’audit de sécurité ​

GET HEAD /api/v1/security/audit

Accès: Administrateur · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie le journal en ajout seul des connexions, des inscriptions et des modifications de comptes, de groupes, d’autorisations, de mots de passe et de jetons personnels, du plus récent au plus ancien, chaque entrée avec l’acteur, le type de justificatif, la cible, le résultat et l’adresse du client ; les tentatives limitées ne sont pas journalisées. Les pages contiennent limit entrées (1–100, 50 par défaut) ; poursuivez avec after défini sur next.

Paramètres

NomEmplacementTypeObligatoireRègles
afterrequêtestringnonun nombre entier en chiffres décimaux, transmis sous forme de chaîne
limitrequêteintegernon1–100

Réponse 200

ChampTypeObligatoireRègles
itemstableau de objectouijusqu’à 100 éléments
items[].idstringouiun nombre entier en chiffres décimaux, transmis sous forme de chaîne
items[].occurredAtstring (date-time)oui—
items[].actorstringouipeut être null
items[].credentialstringouiune valeur parmi session, personal-token, service-key, file-key; peut être null
items[].clientIpstringouipeut être null
items[].actionstringoui—
items[].targetstringouipeut être null
items[].outcomestringouiune valeur parmi success, failure, denied
items[].codestringouipeut être null
items[].detailsobjectoui—
nextstringouipeut être null

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

Exemple

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

Obtenir vos autorisations effectives ​

GET HEAD /api/v1/auth/permissions

Accès: Toute clé ou session valide · Nouvelle tentative: Peut être répétée sans risque (lecture)

Renvoie le profile de l’appelant (managed pour une clé de service gérée, legacy sinon), l’ID de sa clé, ses liaisons effectives (chaque dépôt avec les actions exactes qui y sont autorisées) et s’il est l’administrateur de service d’amorçage (bootstrap). Utilisez-le pour adapter un client ; le serveur vérifie quand même chaque requête, de sorte qu’une modification d’autorisations s’applique aussitôt.

Réponse 200

ChampTypeObligatoireRègles
idstringoui—
profilestringouiune valeur parmi legacy, managed
bindingstableau de objectouijusqu’à 10000 é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
serviceAdministrationbooleanoui—
credentialIdstring (uuid)nonpeut être null

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

Exemple

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

Arkvory · ProAnimaStudio