Gå til indhold
Godkendelse

Godkendelse

Vis som Markdown

Hver anmodning, CLI'en sender, bærer en API-nøgle til dit projekt. Gem nøgler én gang med status200 login, én kontekst til hvert miljø, eller giv dem til en kommando i flag eller miljøvariabler, som scripts gør. Denne side viser hver måde, og hvilken en kommando bruger, når der er flere.

Før du begynder

Du skal bruge en API-nøgle til dit projekt. Opret en under Projektindstillinger → Avanceret → API-nøgler med Opret API-nøgle, og giv den den adgang, dine kommandoer har brug for: se Opret en API-nøgle. En nøgle gør, hvad dens tilladelser tillader: en nøgle, der kun må læse poster, kan vise og læse dem, men ikke ændre dem.

På Status200 Cloud virker API-nøgler kun, mens projektet har abonnementet Growth eller højere. Under det svarer hver kommando med API error (402) og en meddelelse, der nævner abonnementet, indtil projektet opgraderes; så virker den samme nøgle igen. Se API-nøgler og SCIM under deres abonnement.

Log ind

status200 login gemmer en API-nøgle og adressen på din Status200 som en kontekst og gør den til den aktuelle kontekst:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argument eller indstillingHvad det er
<api-key>En API-nøgle til dit projekt
<instance-url>Adressen på din Status200: https://status200.ru, eller din egen servers, for eksempel https://status200.example.com
--context-name <name>Navnet, konteksten gemmes under. Standard: default

For eksempel en kontekst ved navn production:

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

Den svarer Logged in successfully. Context "production" is now active. En skråstreg i slutningen af adressen fjernes, og et nyt login under det samme navn erstatter den kontekst.

Bemærk
login gemmer nøglen uden at spørge Status200 om den. Kør en kommando, for eksempel status200 incident count, for at se, at nøglen virker.

Kontekster

En kontekst er et gemt login: et navn, en adresse og en API-nøgle. Gem én til hvert projekt eller miljø, og vælg så én til alle de kommandoer, der følger, eller til en enkelt kommando.

  1. Gem en kontekst til hvert 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

    Hvert login gør sin kontekst til den aktuelle, så nu er staging den aktuelle.

  2. Vis dem

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

    * markerer den aktuelle kontekst. API-nøgler vises aldrig.

  3. Skift til en anden kontekst

    Bash
    status200 context use production

    Den svarer Switched to context "production". og de kommandoer, der følger, bruger den.

  4. Brug en kontekst til én kommando

    Bash
    status200 incident list --context staging

    Den aktuelle kontekst forbliver, som den var.

KommandoHvad den gør
status200 context listViser de gemte kontekster; * markerer den aktuelle. Med -o json hver konteksts name, apiUrl og isCurrent, aldrig dens nøgle
status200 context use <name>Gør en gemt kontekst til den aktuelle
status200 context currentViser den aktuelle konteksts navn, URL og API-nøgle, med nøglen skjult bortset fra de første fire og sidste fire tegn
status200 context delete <name>Sletter en gemt kontekst. Var det den aktuelle, bliver den første tilbageværende kontekst den aktuelle

Hvilke legitimationsoplysninger en kommando bruger

En kommando skal bruge en API-nøgle og en URL. Den tager hver af de to fra det første af disse steder, der har den:

flowchart TB F["1. Flag på kommandoen:<br/>--api-key og --url"] --> E["2. Miljøvariabler:<br/>STATUS200_API_KEY<br/>og STATUS200_URL"] E --> N["3. Konteksten, der<br/>nævnes med --context"] N --> C["4. Den aktuelle kontekst"] C --> X["Ikke fundet nogen steder:<br/>kommandoen stopper"]

Hvor en kommando finder sin API-nøgle og sin URL

Du kan altså blande dem: for eksempel en API-nøgle fra en miljøvariabel med URL'en fra den aktuelle kontekst. Miljøvariabler passer til scripts og CI-job, som ikke har gemte kontekster:

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

Flag går forud for alt andet, for én kommando:

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

En nøgle, der gives som flag, havner i din shell-historik, og andre brugere af maskinen kan se den i proceslisten. Brug i stedet en kontekst eller en miljøvariabel på en delt maskine.

Tjek, hvad CLI'en vil bruge

status200 whoami viser den URL og API-nøgle, den næste kommando vil bruge, og den kontekst, de kommer fra:

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

Kun nøglens første fire og sidste fire tegn vises. Linjen Context vises kun, når URL'en og nøglen er kontekstens egne, ikke værdier, som et flag eller en miljøvariabel har erstattet. whoami læser dine indstillinger uden at kalde Status200: den viser, hvad en kommando vil sende, ikke om Status200 accepterer det. Er intet gemt eller sat, svarer den:

Not authenticated. Run `status200 login` to authenticate.

Konfigurationsfilen

status200 login gemmer kontekster i ~/.oneuptime/config.json i din hjemmemappe (%USERPROFILE%\.oneuptime\config.json på Windows). CLI'en opretter den, så kun din bruger kan læse og skrive den (tilstand 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 indeholder API-nøglerne, som de er: hold den ude af delte mapper, sikkerhedskopier og repositories. Log ud af én kontekst ved at slette den med status200 context delete <name>; log ud af alle ved at slette filen. En nøgle, der kan være lækket, er gyldig, indtil du sletter den i Status200 under Projektindstillinger → Avanceret → API-nøgler.

Outputformater og listestørrelser gemmes ikke her: giv -o og --limit til hver kommando.

Fejlfinding

Meddelelsen "No credentials found"

Authentication error: No credentials found. betyder, at intet flag, ingen miljøvariabel og ingen gemt kontekst gav kommandoen dens API-nøgle og URL. Kør status200 login, eller sæt både STATUS200_API_KEY og STATUS200_URL. Kommandoen afslutter med koden 2.

Meddelelsen "API error (400): Invalid API Key"

Nøglen er ikke en API-nøgle til Status200, er udløbet eller er blevet nulstillet. Kopiér den igen fra dens side under Projektindstillinger → Avanceret → API-nøgler, hvor dens dato også står under Udløber, og log ind igen under det samme kontekstnavn. Kommandoen afslutter med koden 2.

Meddelelsen "API error (402): API keys need the Growth plan"

På Status200 Cloud er projektet under abonnementet Growth, så dets API-nøgler holdt op med at virke. Opgradér projektet, og den samme nøgle virker igen: der er intet at ændre i CLI'en.

Meddelelsen "API error (422): You do not have permissions"

Nøglens tilladelser rækker ikke til det, kommandoen beder om. Giv nøglen en rolle eller en tilladelse på dens side under Projektindstillinger → Avanceret → API-nøgler: meddelelsen nævner de tilladelser, der ville lukke anmodningen igennem.

Meddelelsen "Context "staging" does not exist"

Der er ikke gemt nogen kontekst med det navn. status200 context list viser de navne, der findes.

whoami viser en anden URL eller nøgle end konteksten

En miljøvariabel eller et flag erstatter kontekstens værdi. env | grep ONEUPTIME viser de variabler, der er sat, og unset STATUS200_API_KEY STATUS200_URL fører dig tilbage til dine kontekster.

Anmodningen til adressen mislykkes

Error: Request failed to https://... betyder, at CLI'en ikke kunne nå Status200 på den adresse. Tjek URL'en med status200 whoami: det er den adresse, du åbner Status200 på, med https://, for eksempel https://status200.ru.

Næste skridt