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:
status200 login <api-key> <instance-url> [--context-name <name>]| Argument oder Option | Was 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:
status200 login <api-key> https://status200.ru --context-name productionSie 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.
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.
Einen Kontext für jede Umgebung speichern
status200 login <production-api-key> https://status200.ru --context-name production status200 login <staging-api-key> https://status200.example.com --context-name stagingJede Anmeldung macht ihren Kontext zum aktuellen, also ist jetzt
stagingaktuell.Die Kontexte auflisten
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.Zu einem anderen Kontext wechseln
status200 context use productionSie antwortet
Switched to context "production".und die folgenden Befehle verwenden ihn.Einen Kontext für einen einzelnen Befehl verwenden
status200 incident list --context stagingDer aktuelle Kontext bleibt, wie er war.
| Befehl | Was er tut |
|---|---|
status200 context list | Listet 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 current | Zeigt 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:
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
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 listFlags gehen allem anderen vor, für einen einzelnen Befehl:
status200 --api-key <api-key> --url https://status200.ru incident listEin 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:
status200 whoamiURL: https://status200.ru
API Key: 4f1c****0a13
Context: productionVom 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):
{
"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.