Aller au contenu principal

Référence de l'API d'administration

API des utilisateurs​

Disponible quand S3_USERS_FILE et S3_ADMIN_API_KEY sont tous deux définis. Chaque requête porte Authorization: Bearer <S3_ADMIN_API_KEY>.

MéthodeCheminCorpsSuccès
GET/_loch/usersaucun200 {"users":[…]}
GET/_loch/users/{user_id}aucun200 objet utilisateur
PUT/_loch/users/{user_id}{"display_name","access_key_id","secret_access_key"}201 créé, 200 remplacé. Corps vide
DELETE/_loch/users/{user_id}aucun204

Objet utilisateur :

{"user_id": "backup", "display_name": "Backup job", "access_key_id": "<access key>", "is_root": false}

Exemple :

curl -X PUT -H "Authorization: Bearer $LOCH_ADMIN_KEY" -H "Content-Type: application/json" \
-d '{"display_name":"Backup job","access_key_id":"<access key>","secret_access_key":"<secret key>"}' \
http://localhost:8080/_loch/users/backup
RègleValeur
user_id1 à 128 caractères : lettres, chiffres, -, _
access_key_idUnique parmi les utilisateurs
secret_access_keyEn écriture seule : jamais renvoyée
is_rootNon modifiable par l'API. root ne peut être ni modifié ni supprimé
Taille du corps64 Kio

Les changements sont enregistrés aussitôt dans le fichier des utilisateurs (écriture dans un fichier temporaire, puis renommage) et s'appliquent sans redémarrage.

Erreurs​

Les erreurs utilisent le format XML de S3 (<Error><Code>…</Code>…</Error>).

StatutCodeQuand
400InvalidArgumentuser_id ou JSON invalide, clé d'accès en double, utilisateur inconnu, modification de root
403AccessDeniedClé absente ou fausse, S3_ADMIN_API_KEY non défini, ou aucune authentification configurée
405MethodNotAllowedMode utilisateur unique (S3_ACCESS_KEY_ID)

Endpoints de service​

MéthodeCheminAuthentificationRéponse
GET, HEAD/_loch/healthaucune200 {"status":"ok"} ; avec un quota, "quota":"ok" ou "exceeded" est ajouté. 503 {"status":"error"} si le répertoire de données est inaccessible. Non journalisé
GET/_loch/usageSigV4, root uniquement (ouvert sans authentification)200 {"used_bytes":N,"reserved_bytes":N,"limit_bytes":N} ; limit_bytes vaut null sans quota