Aller au contenu
Authentification

Authentification

Voir en Markdown

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 :

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argument ou optionCe 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 :

Bash
status200 login <api-key> https://status200.ru --context-name production

Elle 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.

Remarque
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.

  1. Enregistrer un contexte par environnement

    Bash
    status200 login <production-api-key> https://status200.ru --context-name production
    status200 login <staging-api-key> https://status200.example.com --context-name staging

    Chaque connexion fait de son contexte le contexte actuel : c'est donc staging qui est actuel maintenant.

  2. Les lister

    Bash
    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.

  3. Passer à un autre contexte

    Bash
    status200 context use production

    Elle répond Switched to context "production". et les commandes qui suivent l'utilisent.

  4. Utiliser un contexte pour une seule commande

    Bash
    status200 incident list --context staging

    Le contexte actuel reste tel qu'il était.

CommandeCe qu'elle fait
status200 context listListe 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 currentAffiche 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 :

flowchart TB F["1. Options de la commande :<br/>--api-key et --url"] --> E["2. Variables d'environnement :<br/>STATUS200_API_KEY<br/>et STATUS200_URL"] E --> N["3. Le contexte nommé<br/>avec --context"] N --> C["4. Le contexte actuel"] C --> X["Trouvée nulle part :<br/>la commande s'arrête"]

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

Bash
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident list

macOS

Bash
export STATUS200_API_KEY=<api-key>
export STATUS200_URL=https://status200.ru
status200 incident list

Windows

PowerShell
$env:STATUS200_API_KEY = "<api-key>"
$env:STATUS200_URL = "https://status200.ru"
status200 incident list

Les options passent avant tout le reste, pour une seule commande :

Bash
status200 --api-key <api-key> --url https://status200.ru incident list
Avertissement

Une 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 :

Bash
status200 whoami
URL:     https://status200.ru
API Key: 4f1c****0a13
Context: production

Seuls 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) :

~/.oneuptime/config.jsonJSON
{
  "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.

Étapes suivantes