Zum Inhalt springen
Authentifizierung

Authentifizierung

Jede Anfrage, die die CLI sendet, trägt einen API-Schlüssel Ihres Projekts. Speichern Sie Schlüssel einmal mit status200 login, einen Kontext für jede Umgebung, oder geben Sie sie einem Befehl in Flags oder Umgebungsvariablen mit, wie es Skripte tun. Diese Seite zeigt jeden Weg und welchen ein Befehl nimmt, wenn es mehrere gibt.

Bevor Sie beginnen

Sie brauchen einen API-Schlüssel Ihres Projekts. Legen Sie einen unter Projekteinstellungen → Erweitert → API-Schlüssel mit API-Schlüssel erstellen an und geben Sie ihm den Zugriff, den Ihre Befehle brauchen: siehe Einen API-Schlüssel anlegen. Ein Schlüssel tut, was seine Berechtigungen erlauben: Ein Schlüssel, der Datensätze nur lesen darf, kann sie auflisten und lesen, aber nicht ändern.

In Status200 Cloud funktionieren API-Schlüssel nur, solange das Projekt im Tarif Growth oder höher ist. Darunter antwortet jeder Befehl mit API error (402) und einer Meldung, die den Tarif nennt, bis das Projekt hochgestuft wird; dann funktioniert derselbe Schlüssel wieder. Siehe API-Schlüssel und SCIM unterhalb ihres Tarifs.

Anmelden

status200 login speichert einen API-Schlüssel und die Adresse Ihrer Status200-Instanz als Kontext und macht ihn zum aktuellen Kontext:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argument oder OptionWas es ist
<api-key>Ein API-Schlüssel Ihres Projekts
<instance-url>Die Adresse Ihrer Status200-Instanz: https://status200.ru oder die Ihres eigenen Servers, etwa https://status200.example.com
--context-name <name>Der Name, unter dem der Kontext gespeichert wird. Standard: default

Zum Beispiel ein Kontext namens production:

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

Sie antwortet Logged in successfully. Context "production" is now active. Ein Schrägstrich am Ende der Adresse wird entfernt, und eine erneute Anmeldung unter demselben Namen ersetzt diesen Kontext.

Hinweis
login speichert den Schlüssel, ohne Status200 danach zu fragen. Führen Sie einen Befehl aus, etwa status200 incident count, um zu sehen, dass der Schlüssel funktioniert.

Kontexte

Ein Kontext ist eine gespeicherte Anmeldung: ein Name, eine Adresse und ein API-Schlüssel. Speichern Sie einen für jedes Projekt oder jede Umgebung und wählen Sie dann einen für alle folgenden Befehle oder für einen einzelnen Befehl.

  1. Einen Kontext für jede Umgebung speichern

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

    Jede Anmeldung macht ihren Kontext zum aktuellen, also ist jetzt staging aktuell.

  2. Die Kontexte auflisten

    Bash
    status200 context list
    ┌───┬────────────┬───────────────────────────────┐
    │   │ Name       │ URL                           │
    ├───┼────────────┼───────────────────────────────┤
    │   │ production │ https://status200.ru          │
    ├───┼────────────┼───────────────────────────────┤
    │ * │ staging    │ https://status200.example.com │
    └───┴────────────┴───────────────────────────────┘

    Das * markiert den aktuellen Kontext. API-Schlüssel werden nie aufgelistet.

  3. Zu einem anderen Kontext wechseln

    Bash
    status200 context use production

    Sie antwortet Switched to context "production". und die folgenden Befehle verwenden ihn.

  4. Einen Kontext für einen einzelnen Befehl verwenden

    Bash
    status200 incident list --context staging

    Der aktuelle Kontext bleibt, wie er war.

BefehlWas er tut
status200 context listListet die gespeicherten Kontexte auf; * markiert den aktuellen. Mit -o json von jedem Kontext name, apiUrl und isCurrent, nie seinen Schlüssel
status200 context use <name>Macht einen gespeicherten Kontext zum aktuellen
status200 context currentZeigt Namen, URL und API-Schlüssel des aktuellen Kontexts, vom Schlüssel alles außer den ersten vier und letzten vier Zeichen verborgen
status200 context delete <name>Löscht einen gespeicherten Kontext. War es der aktuelle, wird der erste verbleibende Kontext zum aktuellen

Welche Anmeldedaten ein Befehl verwendet

Ein Befehl braucht einen API-Schlüssel und eine URL. Beides nimmt er jeweils vom ersten dieser Orte, der einen Wert hat:

flowchart TB F["1. Flags am Befehl:<br/>--api-key und --url"] --> E["2. Umgebungsvariablen:<br/>STATUS200_API_KEY<br/>und STATUS200_URL"] E --> N["3. Der mit --context<br/>genannte Kontext"] N --> C["4. Der aktuelle Kontext"] C --> X["Nirgends gefunden:<br/>der Befehl bricht ab"]

Wo ein Befehl seinen API-Schlüssel und seine URL findet

Sie können sie also mischen: etwa einen API-Schlüssel aus einer Umgebungsvariable mit der URL des aktuellen Kontexts. Umgebungsvariablen passen zu Skripten und CI-Jobs, die keine gespeicherten Kontexte haben:

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

Flags gehen allem anderen vor, für einen einzelnen Befehl:

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

Ein als Flag übergebener Schlüssel landet in Ihrem Shell-Verlauf, und andere Benutzer des Rechners können ihn in der Prozessliste sehen. Verwenden Sie auf einem gemeinsam genutzten Rechner stattdessen einen Kontext oder eine Umgebungsvariable.

Prüfen, was die CLI verwenden wird

status200 whoami zeigt die URL und den API-Schlüssel, die der nächste Befehl verwendet, und den Kontext, aus dem sie stammen:

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

Vom Schlüssel werden nur die ersten vier und die letzten vier Zeichen gezeigt. Die Zeile Context erscheint nur, wenn URL und Schlüssel die eigenen Werte dieses Kontexts sind, keine, die ein Flag oder eine Umgebungsvariable ersetzt hat. whoami liest Ihre Einstellungen, ohne Status200 aufzurufen: Es zeigt, was ein Befehl senden wird, nicht ob Status200 es annimmt. Ist nichts gespeichert oder gesetzt, antwortet es:

Not authenticated. Run `status200 login` to authenticate.

Die Konfigurationsdatei

status200 login speichert Kontexte in ~/.oneuptime/config.json, in Ihrem Home-Verzeichnis (%USERPROFILE%\.oneuptime\config.json unter Windows). Die CLI legt die Datei so an, dass nur Ihr Benutzer sie lesen und schreiben kann (Modus 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>"
    }
  }
}

Die Datei enthält die API-Schlüssel, wie sie sind: Halten Sie sie aus geteilten Ordnern, Backups und Repositories heraus. Um sich von einem Kontext abzumelden, löschen Sie ihn mit status200 context delete <name>; um sich von allen abzumelden, löschen Sie die Datei. Ein Schlüssel, der durchgesickert sein könnte, bleibt gültig, bis Sie ihn in Status200 löschen, unter Projekteinstellungen → Erweitert → API-Schlüssel.

Ausgabeformate und Listengrößen werden hier nicht gespeichert: Geben Sie -o und --limit jedem Befehl mit.

Fehlerbehebung

Meldung „No credentials found“

Authentication error: No credentials found. bedeutet, dass kein Flag, keine Umgebungsvariable und kein gespeicherter Kontext dem Befehl seinen API-Schlüssel und seine URL gegeben hat. Führen Sie status200 login aus oder setzen Sie sowohl STATUS200_API_KEY als auch STATUS200_URL. Der Befehl endet mit dem Code 2.

Meldung „API error (400): Invalid API Key“

Der Schlüssel ist kein API-Schlüssel von Status200, ist abgelaufen oder wurde zurückgesetzt. Kopieren Sie ihn erneut von seiner Seite unter Projekteinstellungen → Erweitert → API-Schlüssel, wo auch sein Datum unter Läuft ab steht, und melden Sie sich unter demselben Kontextnamen erneut an. Der Befehl endet mit dem Code 2.

Meldung „API error (402): API keys need the Growth plan“

In Status200 Cloud liegt das Projekt unter dem Tarif Growth, daher funktionieren seine API-Schlüssel nicht mehr. Stufen Sie das Projekt hoch, und derselbe Schlüssel funktioniert wieder: An der CLI ist nichts zu ändern.

Meldung „API error (422): You do not have permissions“

Die Berechtigungen des Schlüssels reichen nicht bis zu dem, was der Befehl verlangt. Geben Sie dem Schlüssel auf seiner Seite unter Projekteinstellungen → Erweitert → API-Schlüssel eine Rolle oder eine Berechtigung: Die Meldung nennt die Berechtigungen, die die Anfrage durchlassen würden.

Meldung „Context "staging" does not exist“

Unter diesem Namen ist kein Kontext gespeichert. status200 context list zeigt die vorhandenen Namen.

whoami zeigt eine andere URL oder einen anderen Schlüssel als der Kontext

Eine Umgebungsvariable oder ein Flag ersetzt den Wert des Kontexts. env | grep ONEUPTIME zeigt die gesetzten Variablen, und unset STATUS200_API_KEY STATUS200_URL führt zurück zu Ihren Kontexten.

Die Anfrage an die Adresse schlägt fehl

Error: Request failed to https://... bedeutet, dass die CLI Status200 unter dieser Adresse nicht erreichen konnte. Prüfen Sie die URL mit status200 whoami: Es ist die Adresse, unter der Sie Status200 öffnen, mit https://, etwa https://status200.ru.

Nächste Schritte