Autenticação
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:
status200 login <api-key> <instance-url> [--context-name <name>]| Argumento ou opção | O 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:
status200 login <api-key> https://status200.ru --context-name productionEla 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.
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.
Salvar um contexto para cada ambiente
status200 login <production-api-key> https://status200.ru --context-name production status200 login <staging-api-key> https://status200.example.com --context-name stagingCada login torna o seu contexto o atual, então agora o atual é
staging.Listá-los
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.Trocar para outro contexto
status200 context use productionEla responde
Switched to context "production".e os comandos seguintes o usam.Usar um contexto para um único comando
status200 incident list --context stagingO contexto atual continua como estava.
| Comando | O que faz |
|---|---|
status200 context list | Lista 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 current | Mostra 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:
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
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 listAs flags vêm antes de tudo, para um único comando:
status200 --api-key <api-key> --url https://status200.ru incident listUma 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:
status200 whoamiURL: https://status200.ru
API Key: 4f1c****0a13
Context: productionSó 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):
{
"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.