Authenticatie
Elk verzoek dat de CLI verstuurt, draagt een API-sleutel van je project. Sla sleutels één keer op met status200 login, één context per omgeving, of geef ze aan een opdracht mee in vlaggen of omgevingsvariabelen, zoals scripts doen. Deze pagina laat elke manier zien, en welke een opdracht gebruikt als er meerdere zijn.
Voordat je begint
Je hebt een API-sleutel van je project nodig. Maak er een aan in Projectinstellingen → Geavanceerd → API-sleutels met API-sleutel aanmaken, en geef hem de toegang die je opdrachten nodig hebben: zie Een API-sleutel aanmaken. Een sleutel doet wat zijn rechten toestaan: een sleutel die records alleen mag lezen, kan ze tonen en lezen, maar niet wijzigen.
Op Status200 Cloud werken API-sleutels alleen zolang het project het Growth-abonnement of hoger heeft. Daaronder antwoordt elke opdracht met API error (402) en een melding die het abonnement noemt, tot het project wordt geüpgraded; dan werkt dezelfde sleutel weer. Zie API-sleutels en SCIM onder hun abonnement.
Inloggen
status200 login slaat een API-sleutel en het adres van je Status200 op als context, en maakt die de huidige context:
status200 login <api-key> <instance-url> [--context-name <name>]| Argument of optie | Wat het is |
|---|---|
<api-key> | Een API-sleutel van je project |
<instance-url> | Het adres van je Status200: https://status200.ru, of dat van je eigen server, zoals https://status200.example.com |
--context-name <name> | De naam waaronder de context wordt opgeslagen. Standaard: default |
Bijvoorbeeld een context met de naam production:
status200 login <api-key> https://status200.ru --context-name productionHij antwoordt Logged in successfully. Context "production" is now active. Een schuine streep aan het eind van het adres wordt verwijderd, en opnieuw inloggen onder dezelfde naam vervangt die context.
login slaat de sleutel op zonder Status200 ernaar te vragen. Voer een opdracht uit, zoals status200 incident count, om te zien dat de sleutel werkt.Contexten
Een context is een opgeslagen login: een naam, een adres en een API-sleutel. Sla er een op per project of omgeving en kies er dan een voor alle opdrachten die volgen, of voor één opdracht.
Een context per omgeving opslaan
status200 login <production-api-key> https://status200.ru --context-name production status200 login <staging-api-key> https://status200.example.com --context-name stagingElke login maakt zijn context de huidige, dus nu is
stagingde huidige.Ze tonen
status200 context list┌───┬────────────┬───────────────────────────────┐ │ │ Name │ URL │ ├───┼────────────┼───────────────────────────────┤ │ │ production │ https://status200.ru │ ├───┼────────────┼───────────────────────────────┤ │ * │ staging │ https://status200.example.com │ └───┴────────────┴───────────────────────────────┘Het
*markeert de huidige context. API-sleutels worden nooit getoond.Naar een andere context wisselen
status200 context use productionHij antwoordt
Switched to context "production".en de opdrachten die volgen gebruiken die.Een context voor één opdracht gebruiken
status200 incident list --context stagingDe huidige context blijft zoals hij was.
| Opdracht | Wat hij doet |
|---|---|
status200 context list | Toont de opgeslagen contexten; * markeert de huidige. Met -o json van elke context de name, apiUrl en isCurrent, nooit de sleutel |
status200 context use <name> | Maakt een opgeslagen context de huidige |
status200 context current | Toont de naam, de URL en de API-sleutel van de huidige context, de sleutel verborgen op de eerste vier en laatste vier tekens na |
status200 context delete <name> | Verwijdert een opgeslagen context. Was het de huidige, dan wordt de eerste overgebleven context de huidige |
Welke inloggegevens een opdracht gebruikt
Een opdracht heeft een API-sleutel en een URL nodig. Hij haalt elk van de twee van de eerste van deze plaatsen die er een heeft:
Waar een opdracht zijn API-sleutel en zijn URL vindt
Je kunt ze dus combineren: bijvoorbeeld een API-sleutel uit een omgevingsvariabele met de URL van de huidige context. Omgevingsvariabelen passen bij scripts en CI-jobs, die geen opgeslagen contexten hebben:
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 listVlaggen gaan voor al het andere, voor één opdracht:
status200 --api-key <api-key> --url https://status200.ru incident listEen sleutel die als vlag is meegegeven, komt in je shellgeschiedenis terecht, en andere gebruikers van de machine kunnen hem in de proceslijst zien. Gebruik op een gedeelde machine liever een context of een omgevingsvariabele.
Controleren wat de CLI gaat gebruiken
status200 whoami toont de URL en de API-sleutel die de volgende opdracht gebruikt, en de context waar ze vandaan komen:
status200 whoamiURL: https://status200.ru
API Key: 4f1c****0a13
Context: productionAlleen de eerste vier en de laatste vier tekens van de sleutel worden getoond. De regel Context verschijnt alleen als de URL en de sleutel die van de context zelf zijn, en geen waarden die een vlag of een omgevingsvariabele heeft vervangen. whoami leest je instellingen zonder Status200 aan te roepen: hij toont wat een opdracht zal versturen, niet of Status200 het accepteert. Is er niets opgeslagen of ingesteld, dan antwoordt hij:
Not authenticated. Run `status200 login` to authenticate.Het configuratiebestand
status200 login slaat contexten op in ~/.oneuptime/config.json, in je thuismap (%USERPROFILE%\.oneuptime\config.json op Windows). De CLI maakt het zo aan dat alleen jouw gebruiker het kan lezen en schrijven (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>"
}
}
}Het bestand bevat de API-sleutels zoals ze zijn: houd het buiten gedeelde mappen, back-ups en repository's. Om uit één context uit te loggen, verwijder je hem met status200 context delete <name>; om uit alle uit te loggen, verwijder je het bestand. Een sleutel die mogelijk is uitgelekt, blijft geldig tot je hem in Status200 verwijdert, in Projectinstellingen → Geavanceerd → API-sleutels.
Uitvoerformaten en lijstgroottes worden hier niet opgeslagen: geef -o en --limit aan elke opdracht mee.
Problemen oplossen
De melding "No credentials found"
Authentication error: No credentials found. betekent dat geen vlag, omgevingsvariabele of opgeslagen context de opdracht zijn API-sleutel en URL heeft gegeven. Voer status200 login uit, of stel zowel STATUS200_API_KEY als STATUS200_URL in. De opdracht eindigt met code 2.
De melding "API error (400): Invalid API Key"
De sleutel is geen API-sleutel van Status200, is verlopen of is opnieuw ingesteld. Kopieer hem opnieuw van zijn pagina in Projectinstellingen → Geavanceerd → API-sleutels, waar ook zijn datum onder Verloopt staat, en log opnieuw in onder dezelfde contextnaam. De opdracht eindigt met code 2.
De melding "API error (402): API keys need the Growth plan"
Op Status200 Cloud zit het project onder het Growth-abonnement, dus de API-sleutels ervan werken niet meer. Upgrade het project, en dezelfde sleutel werkt weer: in de CLI hoeft niets te veranderen.
De melding "API error (422): You do not have permissions"
De rechten van de sleutel reiken niet tot wat de opdracht vraagt. Geef de sleutel een rol of een recht op zijn pagina in Projectinstellingen → Geavanceerd → API-sleutels: de melding noemt de rechten die het verzoek zouden doorlaten.
De melding "Context "staging" does not exist"
Er is geen context met die naam opgeslagen. status200 context list toont de namen die er zijn.
whoami toont een andere URL of sleutel dan de context heeft
Een omgevingsvariabele of een vlag vervangt de waarde van de context. env | grep ONEUPTIME toont de variabelen die zijn ingesteld, en unset STATUS200_API_KEY STATUS200_URL brengt je terug naar je contexten.
Het verzoek naar het adres mislukt
Error: Request failed to https://... betekent dat de CLI Status200 op dat adres niet kon bereiken. Controleer de URL met status200 whoami: het is het adres waarop je Status200 opent, met https://, zoals https://status200.ru.