Authentification
Chaque requête envoyée par la CLI porte une clé API de votre projet. Enregistrez les clés une fois avec status200 login, un contexte par environnement, ou donnez-les à une commande dans des options ou des variables d'environnement, comme le font les scripts. Cette page montre chaque façon de faire, et celle qu'une commande utilise quand il y en a plusieurs.
Avant de commencer
Il vous faut une clé API de votre projet. Créez-en une dans Paramètres du projet → Avancé → Clés API avec Créer : Clé API, et donnez-lui l'accès dont vos commandes ont besoin : voir Créer une clé API. Une clé fait ce que ses autorisations permettent : une clé qui ne peut que lire des enregistrements peut les lister et les lire, mais pas les modifier.
Sur Status200 Cloud, les clés API ne fonctionnent que tant que le projet a l'offre Growth ou une offre supérieure. En dessous, chaque commande répond API error (402) avec un message qui nomme l'offre, jusqu'à ce que le projet passe à une offre supérieure ; la même clé fonctionne alors de nouveau. Voir Clés API et SCIM sous leur offre.
Se connecter
status200 login enregistre une clé API et l'adresse de votre Status200 comme contexte, et en fait le contexte actuel :
status200 login <api-key> <instance-url> [--context-name <name>]| Argument ou option | Ce que c'est |
|---|---|
<api-key> | Une clé API de votre projet |
<instance-url> | L'adresse de votre Status200 : https://status200.ru, ou celle de votre propre serveur, comme https://status200.example.com |
--context-name <name> | Le nom sous lequel enregistrer le contexte. Par défaut : default |
Par exemple, un contexte nommé production :
status200 login <api-key> https://status200.ru --context-name productionElle répond Logged in successfully. Context "production" is now active. Une barre oblique à la fin de l'adresse est retirée, et une nouvelle connexion sous le même nom remplace ce contexte.
login enregistre la clé sans interroger Status200 à son sujet. Lancez une commande, comme status200 incident count, pour voir que la clé fonctionne.Contextes
Un contexte est une connexion enregistrée : un nom, une adresse et une clé API. Enregistrez-en un par projet ou par environnement, puis choisissez-en un pour toutes les commandes qui suivent, ou pour une seule commande.
Enregistrer un contexte par environnement
status200 login <production-api-key> https://status200.ru --context-name production status200 login <staging-api-key> https://status200.example.com --context-name stagingChaque connexion fait de son contexte le contexte actuel : c'est donc
stagingqui est actuel maintenant.Les lister
status200 context list┌───┬────────────┬───────────────────────────────┐ │ │ Name │ URL │ ├───┼────────────┼───────────────────────────────┤ │ │ production │ https://status200.ru │ ├───┼────────────┼───────────────────────────────┤ │ * │ staging │ https://status200.example.com │ └───┴────────────┴───────────────────────────────┘Le
*marque le contexte actuel. Les clés API ne sont jamais listées.Passer à un autre contexte
status200 context use productionElle répond
Switched to context "production".et les commandes qui suivent l'utilisent.Utiliser un contexte pour une seule commande
status200 incident list --context stagingLe contexte actuel reste tel qu'il était.
| Commande | Ce qu'elle fait |
|---|---|
status200 context list | Liste les contextes enregistrés ; * marque l'actuel. Avec -o json, le name, l'apiUrl et le isCurrent de chaque contexte, jamais sa clé |
status200 context use <name> | Fait d'un contexte enregistré le contexte actuel |
status200 context current | Affiche le nom, l'URL et la clé API du contexte actuel, la clé masquée sauf ses quatre premiers et quatre derniers caractères |
status200 context delete <name> | Supprime un contexte enregistré. Si c'était le contexte actuel, le premier contexte restant devient l'actuel |
Les identifiants qu'une commande utilise
Une commande a besoin d'une clé API et d'une URL. Elle prend chacune des deux au premier de ces endroits qui en a une :
Où une commande trouve sa clé API et son URL
Vous pouvez donc les combiner : par exemple une clé API tirée d'une variable d'environnement avec l'URL du contexte actuel. Les variables d'environnement conviennent aux scripts et aux tâches de CI, qui n'ont pas de contextes enregistrés :
Linux
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident listmacOS
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident listWindows
$env:STATUS200_API_KEY = "<api-key>"
$env:STATUS200_URL = "https://status200.ru"
status200 incident listLes options passent avant tout le reste, pour une seule commande :
status200 --api-key <api-key> --url https://status200.ru incident listUne clé donnée en option se retrouve dans l'historique de votre shell, et les autres utilisateurs de la machine peuvent la voir dans la liste des processus. Sur une machine partagée, utilisez plutôt un contexte ou une variable d'environnement.
Vérifier ce que la CLI va utiliser
status200 whoami affiche l'URL et la clé API que la prochaine commande utilisera, et le contexte dont elles viennent :
status200 whoamiURL: https://status200.ru
API Key: 4f1c****0a13
Context: productionSeuls les quatre premiers et les quatre derniers caractères de la clé sont affichés. La ligne Context n'apparaît que si l'URL et la clé sont celles du contexte, et non des valeurs remplacées par une option ou une variable d'environnement. whoami lit vos réglages sans appeler Status200 : il montre ce qu'une commande enverra, pas si Status200 l'accepte. Quand rien n'est enregistré ni défini, il répond :
Not authenticated. Run `status200 login` to authenticate.Le fichier de configuration
status200 login enregistre les contextes dans ~/.oneuptime/config.json, dans votre dossier personnel (%USERPROFILE%\.oneuptime\config.json sous Windows). La CLI le crée de sorte que seul votre utilisateur puisse le lire et l'écrire (mode 0600) :
{
"currentContext": "production",
"contexts": {
"production": {
"name": "production",
"apiUrl": "https://status200.ru",
"apiKey": "<api-key>"
},
"staging": {
"name": "staging",
"apiUrl": "https://status200.example.com",
"apiKey": "<api-key>"
}
}
}Le fichier contient les clés API telles quelles : gardez-le hors des dossiers partagés, des sauvegardes et des dépôts. Pour vous déconnecter d'un contexte, supprimez-le avec status200 context delete <name> ; pour vous déconnecter de tous, supprimez le fichier. Une clé qui a pu fuiter reste valide jusqu'à ce que vous la supprimiez dans Status200, dans Paramètres du projet → Avancé → Clés API.
Les formats de sortie et la taille des listes ne sont pas enregistrés ici : passez -o et --limit à chaque commande.
Dépannage
Le message « No credentials found »
Authentication error: No credentials found. signifie qu'aucune option, variable d'environnement ou contexte enregistré n'a donné à la commande sa clé API et son URL. Lancez status200 login, ou définissez à la fois STATUS200_API_KEY et STATUS200_URL. La commande se termine avec le code 2.
Le message « API error (400): Invalid API Key »
La clé n'est pas une clé API de Status200, a expiré ou a été réinitialisée. Copiez-la de nouveau depuis sa page dans Paramètres du projet → Avancé → Clés API, où se trouve aussi sa date sous Expire, et reconnectez-vous sous le même nom de contexte. La commande se termine avec le code 2.
Le message « API error (402): API keys need the Growth plan »
Sur Status200 Cloud, le projet est en dessous de l'offre Growth, ses clés API ont donc cessé de fonctionner. Passez le projet à une offre supérieure, et la même clé fonctionne de nouveau : rien à changer dans la CLI.
Le message « API error (422): You do not have permissions »
Les autorisations de la clé ne couvrent pas ce que la commande demande. Donnez à la clé un rôle ou une autorisation sur sa page dans Paramètres du projet → Avancé → Clés API : le message nomme les autorisations qui laisseraient passer la requête.
Le message « Context "staging" does not exist »
Aucun contexte de ce nom n'est enregistré. status200 context list affiche les noms qui existent.
whoami affiche une autre URL ou une autre clé que le contexte
Une variable d'environnement ou une option remplace la valeur du contexte. env | grep ONEUPTIME affiche les variables définies, et unset STATUS200_API_KEY STATUS200_URL vous ramène à vos contextes.
La requête vers l'adresse échoue
Error: Request failed to https://... signifie que la CLI n'a pas pu joindre Status200 à cette adresse. Vérifiez l'URL avec status200 whoami : c'est l'adresse à laquelle vous ouvrez Status200, avec https://, comme https://status200.ru.