Ir para o conteúdo
Autenticação

Autenticação

Ver como Markdown

Cada requisição que a CLI envia leva uma chave de API do seu projeto. Salve as chaves uma vez com status200 login, um contexto para cada ambiente, ou passe-as a um comando em flags ou variáveis de ambiente, como fazem os scripts. Esta página mostra cada forma, e qual delas um comando usa quando há várias.

Antes de começar

Você precisa de uma chave de API do seu projeto. Crie uma em Configurações do projeto → Avançado → Chaves de API com Criar: Chave de API, e dê a ela o acesso de que seus comandos precisam: veja Criar uma chave de API. Uma chave faz o que suas permissões permitem: uma chave que só pode ler registros pode listá-los e lê-los, mas não alterá-los.

No Status200 Cloud, as chaves de API só funcionam enquanto o projeto está no plano Growth ou superior. Abaixo dele, todo comando responde API error (402) com uma mensagem que nomeia o plano, até que o projeto seja atualizado; então a mesma chave volta a funcionar. Veja Chaves de API e SCIM abaixo do plano.

Fazer login

status200 login salva uma chave de API e o endereço do seu Status200 como um contexto, e o torna o contexto atual:

Bash
status200 login <api-key> <instance-url> [--context-name <name>]
Argumento ou opçãoO que é
<api-key>Uma chave de API do seu projeto
<instance-url>O endereço do seu Status200: https://status200.ru, ou o do seu próprio servidor, como https://status200.example.com
--context-name <name>O nome com que o contexto é salvo. Padrão: default

Por exemplo, um contexto chamado production:

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

Ela responde Logged in successfully. Context "production" is now active. Uma barra no fim do endereço é removida, e fazer login de novo com o mesmo nome substitui esse contexto.

Nota

O login salva a chave sem consultá-la no Status200. Execute um comando, como status200 incident count, para ver que a chave funciona.

Contextos

Um contexto é um login salvo: um nome, um endereço e uma chave de API. Salve um para cada projeto ou ambiente e depois escolha um para todos os comandos seguintes, ou para um único comando.

  1. Salvar um contexto para cada ambiente

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

    Cada login torna o seu contexto o atual, então agora o atual é staging.

  2. Listá-los

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

    O * marca o contexto atual. As chaves de API nunca são listadas.

  3. Trocar para outro contexto

    Bash
    status200 context use production

    Ela responde Switched to context "production". e os comandos seguintes o usam.

  4. Usar um contexto para um único comando

    Bash
    status200 incident list --context staging

    O contexto atual continua como estava.

ComandoO que faz
status200 context listLista os contextos salvos; * marca o atual. Com -o json, o name, o apiUrl e o isCurrent de cada contexto, nunca a chave dele
status200 context use <name>Torna atual um contexto salvo
status200 context currentMostra o nome, a URL e a chave de API do contexto atual, com a chave oculta exceto os quatro primeiros e os quatro últimos caracteres
status200 context delete <name>Exclui um contexto salvo. Se era o atual, o primeiro contexto restante passa a ser o atual

Quais credenciais um comando usa

Um comando precisa de uma chave de API e de uma URL. Ele pega cada uma das duas do primeiro destes lugares que a tiver:

flowchart TB F["1. Flags do comando:<br/>--api-key e --url"] --> E["2. Variáveis de ambiente:<br/>STATUS200_API_KEY<br/>e STATUS200_URL"] E --> N["3. O contexto indicado<br/>com --context"] N --> C["4. O contexto atual"] C --> X["Em nenhum deles:<br/>o comando para"]

Onde um comando encontra sua chave de API e sua URL

Então você pode combiná-los: por exemplo, uma chave de API de uma variável de ambiente com a URL do contexto atual. Variáveis de ambiente combinam com scripts e jobs de CI, que não têm contextos salvos:

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

As flags vêm antes de tudo, para um único comando:

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

Uma chave passada como flag fica no histórico do seu shell, e outros usuários da máquina podem vê-la na lista de processos. Em uma máquina compartilhada, use um contexto ou uma variável de ambiente.

Verificar o que a CLI vai usar

status200 whoami mostra a URL e a chave de API que o próximo comando vai usar, e o contexto de onde elas vêm:

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

Só os quatro primeiros e os quatro últimos caracteres da chave são mostrados. A linha Context aparece apenas quando a URL e a chave são as do próprio contexto, e não valores que uma flag ou uma variável de ambiente substituiu. O whoami lê suas configurações sem chamar o Status200: ele mostra o que um comando vai enviar, não se o Status200 aceita. Sem nada salvo nem definido, ele responde:

Not authenticated. Run `status200 login` to authenticate.

O arquivo de configuração

status200 login salva os contextos em ~/.oneuptime/config.json, na sua pasta pessoal (%USERPROFILE%\.oneuptime\config.json no Windows). A CLI o cria de forma que só o seu usuário possa lê-lo e gravá-lo (modo 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>"
    }
  }
}

O arquivo guarda as chaves de API como elas são: mantenha-o fora de pastas compartilhadas, backups e repositórios. Para sair de um contexto, exclua-o com status200 context delete <name>; para sair de todos, exclua o arquivo. Uma chave que possa ter vazado continua válida até que você a exclua no Status200, em Configurações do projeto → Avançado → Chaves de API.

Os formatos de saída e os tamanhos de lista não são salvos aqui: passe -o e --limit a cada comando.

Solução de problemas

A mensagem "No credentials found"

Authentication error: No credentials found. significa que nenhuma flag, variável de ambiente ou contexto salvo deu ao comando sua chave de API e sua URL. Execute status200 login, ou defina tanto STATUS200_API_KEY quanto STATUS200_URL. O comando termina com o código 2.

A mensagem "API error (400): Invalid API Key"

A chave não é uma chave de API do Status200, expirou ou foi redefinida. Copie-a de novo da página dela em Configurações do projeto → Avançado → Chaves de API, onde também está a data dela em Expira, e faça login de novo com o mesmo nome de contexto. O comando termina com o código 2.

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

No Status200 Cloud, o projeto está abaixo do plano Growth, então as chaves de API dele pararam de funcionar. Atualize o plano do projeto, e a mesma chave volta a funcionar: nada a mudar na CLI.

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

As permissões da chave não alcançam o que o comando pede. Dê à chave uma função ou uma permissão na página dela em Configurações do projeto → Avançado → Chaves de API: a mensagem nomeia as permissões que deixariam a requisição passar.

A mensagem "Context "staging" does not exist"

Nenhum contexto com esse nome está salvo. status200 context list mostra os nomes que existem.

O whoami mostra outra URL ou outra chave que não as do contexto

Uma variável de ambiente ou uma flag substitui o valor do contexto. env | grep ONEUPTIME mostra as variáveis definidas, e unset STATUS200_API_KEY STATUS200_URL volta aos seus contextos.

A requisição para o endereço falha

Error: Request failed to https://... significa que a CLI não conseguiu alcançar o Status200 nesse endereço. Verifique a URL com status200 whoami: é o endereço em que você abre o Status200, com https://, como https://status200.ru.

Próximos passos