Hoppa till innehåll
Autentisering

Autentisering

Visa som Markdown

Varje begäran som CLI:n skickar bär en API-nyckel till ditt projekt. Spara nycklar en gång med status200 login, en kontext för varje miljö, eller ge dem till ett kommando i flaggor eller miljövariabler, som skript gör. Den här sidan visar varje sätt, och vilket ett kommando använder när det finns flera.

Innan du börjar

Du behöver en API-nyckel till ditt projekt. Skapa en under Projektinställningar → Avancerad → API-nycklar med Skapa API-nyckel, och ge den den åtkomst dina kommandon behöver: se Skapa en API-nyckel. En nyckel gör det dess behörigheter tillåter: en nyckel som bara får läsa poster kan lista och läsa dem, men inte ändra dem.

På Status200 Cloud fungerar API-nycklar bara så länge projektet har planen Growth eller högre. Under den svarar varje kommando med API error (402) och ett meddelande som nämner planen, tills projektet uppgraderas; då fungerar samma nyckel igen. Se API-nycklar och SCIM under sin plan.

Logga in

status200 login sparar en API-nyckel och adressen till ditt Status200 som en kontext, och gör den till den aktuella kontexten:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argument eller alternativVad det är
<api-key>En API-nyckel till ditt projekt
<instance-url>Adressen till ditt Status200: https://status200.ru, eller din egen servers, till exempel https://status200.example.com
--context-name <name>Namnet som kontexten sparas under. Standard: default

Till exempel en kontext med namnet production:

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

Den svarar Logged in successfully. Context "production" is now active. Ett snedstreck i slutet av adressen tas bort, och en ny inloggning under samma namn ersätter den kontexten.

Obs
login sparar nyckeln utan att fråga Status200 om den. Kör ett kommando, till exempel status200 incident count, för att se att nyckeln fungerar.

Kontexter

En kontext är en sparad inloggning: ett namn, en adress och en API-nyckel. Spara en för varje projekt eller miljö, och välj sedan en för alla kommandon som följer, eller för ett enda kommando.

  1. Spara en kontext för varje miljö

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

    Varje inloggning gör sin kontext till den aktuella, så nu är staging den aktuella.

  2. Lista dem

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

    * markerar den aktuella kontexten. API-nycklar listas aldrig.

  3. Byt till en annan kontext

    Bash
    status200 context use production

    Den svarar Switched to context "production". och kommandona som följer använder den.

  4. Använd en kontext för ett kommando

    Bash
    status200 incident list --context staging

    Den aktuella kontexten förblir som den var.

KommandoVad det gör
status200 context listListar de sparade kontexterna; * markerar den aktuella. Med -o json varje kontexts name, apiUrl och isCurrent, aldrig dess nyckel
status200 context use <name>Gör en sparad kontext till den aktuella
status200 context currentVisar den aktuella kontextens namn, URL och API-nyckel, med nyckeln dold utom de fyra första och fyra sista tecknen
status200 context delete <name>Tar bort en sparad kontext. Var det den aktuella, blir den första kvarvarande kontexten aktuell

Vilka inloggningsuppgifter ett kommando använder

Ett kommando behöver en API-nyckel och en URL. Det tar var och en av de två från den första av de här platserna som har den:

flowchart TB F["1. Flaggor på kommandot:<br/>--api-key och --url"] --> E["2. Miljövariabler:<br/>STATUS200_API_KEY<br/>och STATUS200_URL"] E --> N["3. Kontexten som<br/>--context nämner"] N --> C["4. Den aktuella kontexten"] C --> X["Inte hittad någonstans:<br/>kommandot stoppar"]

Var ett kommando hittar sin API-nyckel och sin URL

Du kan alltså blanda dem: till exempel en API-nyckel från en miljövariabel med URL:en från den aktuella kontexten. Miljövariabler passar skript och CI-jobb, som inte har några sparade kontexter:

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

Flaggor går före allt annat, för ett kommando:

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

En nyckel som ges som flagga hamnar i din skalhistorik, och andra användare på maskinen kan se den i processlistan. Använd hellre en kontext eller en miljövariabel på en delad maskin.

Kontrollera vad CLI:n kommer att använda

status200 whoami visar URL:en och API-nyckeln som nästa kommando kommer att använda, och kontexten de kommer från:

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

Bara nyckelns fyra första och fyra sista tecken visas. Raden Context visas bara när URL:en och nyckeln är kontextens egna, inte värden som en flagga eller en miljövariabel har ersatt. whoami läser dina inställningar utan att anropa Status200: den visar vad ett kommando kommer att skicka, inte om Status200 godtar det. Är inget sparat eller satt, svarar den:

Not authenticated. Run `status200 login` to authenticate.

Konfigurationsfilen

status200 login sparar kontexter i ~/.oneuptime/config.json, i din hemmapp (%USERPROFILE%\.oneuptime\config.json på Windows). CLI:n skapar den så att bara din användare kan läsa och skriva den (läge 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>"
    }
  }
}

Filen innehåller API-nycklarna som de är: håll den borta från delade mappar, säkerhetskopior och repositorier. Logga ut från en kontext genom att ta bort den med status200 context delete <name>; logga ut från alla genom att ta bort filen. En nyckel som kan ha läckt är giltig tills du tar bort den i Status200, under Projektinställningar → Avancerad → API-nycklar.

Utdataformat och liststorlekar sparas inte här: ge -o och --limit till varje kommando.

Felsökning

Meddelandet ”No credentials found”

Authentication error: No credentials found. betyder att ingen flagga, miljövariabel eller sparad kontext gav kommandot dess API-nyckel och URL. Kör status200 login, eller sätt både STATUS200_API_KEY och STATUS200_URL. Kommandot avslutas med koden 2.

Meddelandet ”API error (400): Invalid API Key”

Nyckeln är inte en API-nyckel till Status200, har gått ut eller har återställts. Kopiera den igen från dess sida under Projektinställningar → Avancerad → API-nycklar, där även dess datum står under Upphör, och logga in igen under samma kontextnamn. Kommandot avslutas med koden 2.

Meddelandet ”API error (402): API keys need the Growth plan”

På Status200 Cloud ligger projektet under planen Growth, så dess API-nycklar slutade fungera. Uppgradera projektet, så fungerar samma nyckel igen: inget att ändra i CLI:n.

Meddelandet ”API error (422): You do not have permissions”

Nyckelns behörigheter räcker inte till det kommandot ber om. Ge nyckeln en roll eller en behörighet på dess sida under Projektinställningar → Avancerad → API-nycklar: meddelandet nämner de behörigheter som skulle släppa igenom begäran.

Meddelandet ”Context "staging" does not exist”

Ingen kontext med det namnet är sparad. status200 context list visar de namn som finns.

whoami visar en annan URL eller nyckel än kontexten har

En miljövariabel eller en flagga ersätter kontextens värde. env | grep ONEUPTIME visar variablerna som är satta, och unset STATUS200_API_KEY STATUS200_URL tar dig tillbaka till dina kontexter.

Begäran till adressen misslyckas

Error: Request failed to https://... betyder att CLI:n inte kunde nå Status200 på den adressen. Kontrollera URL:en med status200 whoami: det är adressen du öppnar Status200 på, med https://, till exempel https://status200.ru.

Nästa steg