Interface en ligne de commande

L'interface en ligne de commande (CLI) keenauth appelle l'API de gestion depuis un terminal ou un script. Chaque commande encapsule une méthode typée du SDK Go, de sorte que la CLI et l'API se comportent de la même manière. Il n'existe pas encore de paquet d'installation.

Authentification et cible

La CLI lit ses identifiants uniquement depuis l'environnement. La clé d'API n'est jamais acceptée comme option, afin qu'elle n'apparaisse pas dans l'historique de votre shell.

Variable Obligatoire Description
KEENAUTH_API_KEY oui Clé d'API de gestion. Si elle est absente, la commande se termine avec le code 3.
KEENAUTH_BASE_URL oui, sauf si --base-url est fourni URL de base de l'API de gestion de votre environnement.

Au lieu d'une clé d'API, vous pouvez vous connecter avec le compte de votre tableau de bord : keenauth login, puis keenauth env use <environment_id>. La session n'est utilisée que si KEENAUTH_API_KEY n'est pas défini ; l'adresse de l'environnement provient alors du plan de contrôle (voir Se connecter avec keenauth login).

L'option --base-url remplace KEENAUTH_BASE_URL pour une seule commande. La CLI n'affiche jamais la clé d'API ; si une réponse du serveur la reproduit, elle est remplacée par [redacted].

Commandes

Les commandes suivent le modèle keenauth <group> <action> [arguments] [flags]. Exécutez keenauth --help ou keenauth <group> --help pour obtenir la liste complète.

Groupe Actions
users list, search, get, create, update, delete, block, unblock, cancel-deletion, authenticators list, authenticators delete, authenticators reset, authenticators reactivate, send-password-reset, send-verification-email, emails send-verification, start-recovery, logs list
applications list, create, get, update, delete, get-api-grant, put-api-grant, delete-api-grant, credentials list, credentials create, credentials delete
apis list, create, get, update, delete
connections list, create, get, update, delete, activate, deactivate
identity-settings get, update
environment-settings get, update
config export (sans -o affiche du YAML), plan -f <file> (affiche un diff lisible dans un terminal), plans get, apply <plan_id> (demande une confirmation ; --secrets-from-env lit les secrets depuis des variables d'environnement, --confirm-deletion <kind>/<key>), promote --from <env> --to <env> (exporte, planifie, affiche le diff et applique après confirmation ; voir Promouvoir la configuration avec keenauth config promote)
api-keys list, get, create, rotate, revoke
logs list, get, tail (suit les nouveaux enregistrements ; --type, --user, --org ; voir Suivre les journaux avec keenauth logs tail)
support-access-grants list, get, create, delete (voir Accorder un accès au support avec keenauth support-access-grants)
directories simulate <directory_id> --scenario <name> (exécute un scénario du simulateur SCIM en développement et en préproduction ; voir Tester le provisionnement SCIM avec keenauth directories simulate)
audit verify (vérifie hors ligne un export d'audit téléchargé ; voir Vérifier les exports d'audit avec keenauth audit verify)
branding get, update, applications get, applications put, organizations get, organizations put, css put, page-template put, publish, rollback, versions list, texts get, texts put, texts delete
signing-keys list, rotate, policy get, policy update
events tail (suit les événements client via l'API d'événements ; voir Suivre les événements avec keenauth events tail), get <event ID> (un seul événement, exactement tel qu'envoyé par le serveur)
mock serve lance un serveur OIDC factice local pour les tests hors ligne ; il ne nécessite aucune clé d'API (voir Serveur factice local)
test login --user <+test address> connecte un utilisateur de test à un environnement development avec le code fixe et affiche les jetons ; il ne nécessite aucune clé d'API (voir Connecter des utilisateurs de test avec keenauth test login)
webhooks listen --forward-to <local URL> transmet les événements d'un environnement development ou staging à votre machine, signés avec un secret temporaire (voir Tester les webhooks en local avec keenauth webhooks listen)
login, logout, whoami, env login (--web, --insecure-storage), logout, whoami, env use <environment_id>, env list : connexion avec votre compte du tableau de bord au lieu d'une clé d'API (voir Se connecter avec keenauth login)

Les commandes de liste acceptent --limit, --after, --before et --order. Lorsque d'autres résultats existent, le curseur suivant est affiché sur stderr sous la forme more results: --after <cursor>.

Format de sortie

--output (-o) sélectionne table, json ou yaml. Sans cette option, la CLI affiche un tableau dans un terminal et du JSON sinon. Le JSON et le YAML contiennent la réponse de l'API sans modification et ne sont jamais traduits, afin que les scripts puissent s'y fier. Les résultats vont sur stdout ; les erreurs, les conseils et la ligne etag vont sur stderr.

Corps de requête

Les commandes qui envoient un corps acceptent une option par champ plat, nommée d'après la clé JSON avec des tirets (phone_number devient --phone-number). Les objets imbriqués sont fournis avec --data :

Les options remplacent les champs du fichier. Un corps est limité à 4 MiB.

keenauth users create --email ada@example.com
keenauth apis create --data @api.json
echo '{"name":"Orders"}' | keenauth apis update api_123 --data - --if-match '"v3"'

Concurrence optimiste : --if-match et l'etag

Les commandes de mise à jour et de suppression des applications, des API et des connexions exigent --if-match ; users update l'accepte. La valeur est le ETag de la version que vous voulez modifier. Le serveur rejette la requête si la ressource a changé entre-temps. identity-settings update l'exige aussi. environment-settings update l'exige aussi. Les écritures de brouillon de personnalisation (branding update, branding applications put, branding organizations put, branding css put, branding page-template put) l'exigent également.

Chaque commande get (users, applications, apis, connections, identity-settings, environment-settings) affiche la réponse ETag sur stderr, afin que stdout reste propre :

$ keenauth apis get api_123
{ ... }
etag: "v3"
$ keenauth apis update api_123 --name Orders --if-match '"v3"'

La ligne etag n'est pas ajoutée à la sortie JSON ou YAML.

Commandes destructives et --yes

Les commandes qui suppriment ou bloquent demandent une confirmation ([y/N]) dans un terminal. Un refus termine la commande avec le code 1 et affiche aborted. Lorsque l'entrée standard n'est pas un terminal, la commande refuse de s'exécuter sauf si vous passez --yes (-y) ; elle se termine avec le code 2 avant d'envoyer la moindre requête.

Codes de sortie

Code Signification
0 Succès.
1 Erreur du serveur ou opérationnelle, confirmation refusée, ou panne réseau.
2 Erreur d'utilisation : commande ou option inconnue, argument manquant, corps invalide, ou --yes absent sur un terminal non interactif.
3 Erreur d'authentification : la clé est absente, ou le serveur a répondu 401 ou 403.
4 Le forfait ne comprend pas la fonctionnalité (403 avec plan_feature_unavailable).

Pour les erreurs du serveur, la CLI affiche error, code, status, detail, request_id et une ligne field par erreur de validation sur stderr. Indiquez le request_id lorsque vous contactez le support.

Langue

Le texte lisible par un humain (aide, invites, erreurs, en-têtes de tableaux) est disponible en turc (tr), anglais (en), français (fr), allemand (de), coréen (ko), japonais (ja), italien (it) et espagnol (es). La langue est prise dans la première de ces variables définie : KEENAUTH_LANG, LC_ALL, LC_MESSAGES, LANG (par exemple tr_TR.UTF-8 sélectionne tr). Une valeur vide ou non prise en charge sélectionne l'anglais, et un message absent dans une langue revient à l'anglais.

La sortie lisible par machine n'est jamais traduite : les noms et valeurs des champs JSON et YAML, le code du problème et les libellés code, status et request_id restent identiques dans toutes les langues. Les messages venant du serveur sont affichés tels que le serveur les a envoyés.

KEENAUTH_LANG=de keenauth users list --help

Identifiants d'application

keenauth applications credentials list|create|delete gère les secrets client et les clés publiques enregistrées d'une application. Ces commandes n'utilisent pas --if-match.

keenauth applications credentials create app_123 --type client-secret --expires-at 2027-01-01T00:00:00Z
keenauth applications credentials create app_123 --type public-key --jwk-file key.pub.jwk
keenauth applications credentials delete app_123 cred_456 --yes

Un secret client est affiché une seule fois, sur stdout, accompagné d'un avertissement unique sur stderr. --jwk-file accepte une seule JWK publique (16 KiB au maximum) ; un fichier contenant des membres privés est refusé avant l'envoi de toute requête.

Clés d'API

keenauth api-keys list|get|create|rotate|revoke gère les clés d'API de gestion de l'environnement. Ces commandes n'utilisent pas --if-match.

keenauth api-keys create --name ci --type restricted --permissions users:read,users:write --expires-at 2027-10-01T00:00:00Z
keenauth api-keys rotate key_123 --overlap-hours 24
keenauth api-keys revoke key_123 --reason leaked --yes

La clé brute de create et rotate est affichée une seule fois, sur stdout, accompagnée d'un avertissement unique sur stderr ; elle ne peut pas être récupérée ensuite. list et get n'affichent que des métadonnées.