Naar inhoud springen
Authenticatie

Authenticatie

Bekijken als Markdown

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:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argument of optieWat 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:

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

Hij 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.

Opmerking
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.

  1. Een context per omgeving opslaan

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

    Elke login maakt zijn context de huidige, dus nu is staging de huidige.

  2. Ze tonen

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

    Het * markeert de huidige context. API-sleutels worden nooit getoond.

  3. Naar een andere context wisselen

    Bash
    status200 context use production

    Hij antwoordt Switched to context "production". en de opdrachten die volgen gebruiken die.

  4. Een context voor één opdracht gebruiken

    Bash
    status200 incident list --context staging

    De huidige context blijft zoals hij was.

OpdrachtWat hij doet
status200 context listToont 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 currentToont 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:

flowchart TB F["1. Vlaggen bij de opdracht:<br/>--api-key en --url"] --> E["2. Omgevingsvariabelen:<br/>STATUS200_API_KEY<br/>en STATUS200_URL"] E --> N["3. De context die<br/>--context noemt"] N --> C["4. De huidige context"] C --> X["Nergens gevonden:<br/>de opdracht stopt"]

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

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

Vlaggen gaan voor al het andere, voor één opdracht:

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

Een 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:

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

Alleen 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):

~/.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>"
    }
  }
}

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.

Volgende stappen