Pular para o conteúdo

suya auth

O suya auth gerencia como a CLI se autentica na API da Subaya. Para uma visão conceitual de ambos os modos de credencial, consulte Autenticação e chaves de API.

Faça login interativamente com o fluxo de navegador OAuth.

Terminal window
suya auth login
suya auth login --no-browser
Flag Descrição
--no-browser Não inicia o navegador. Imprime um código curto para você aprovar a partir de qualquer dispositivo (o fluxo de dispositivo, abaixo).

Por padrão, a CLI abre um navegador usando um redirecionamento loopback e armazena o token resultante localmente. Esse é o caminho mais rápido quando o navegador está na mesma máquina que a CLI — o destino do redirecionamento é 127.0.0.1, então precisa ser.

Se o navegador não puder ser aberto, ou se o redirecionamento nunca voltar (o sinal usual de que seu navegador está em outro lugar — SSH, um contêiner, uma máquina de desenvolvimento remota), a CLI muda automaticamente para o fluxo de dispositivo. Você não precisa reiniciar nada.

Para agentes e CI, prefira definir SUBAYA_API_KEY em vez de fazer login — nenhum navegador está envolvido.

Fazendo login sem um navegador (fluxo de dispositivo)

Seção intitulada “Fazendo login sem um navegador (fluxo de dispositivo)”

Use isto quando a máquina que executa o suya não tiver um navegador próprio: por SSH, dentro de um contêiner, em uma máquina de build remota.

Terminal window
suya auth login --no-browser

A CLI imprime um código e dois links, e então aguarda:

Open this link on any device: https://subaya-dev.com/auth/device?user_code=KHTM-BQWD
Or go to https://subaya-dev.com/auth/device and enter: KHTM-BQWD
Waiting for approval... (Ctrl-C to cancel)

Abra essa página em qualquer dispositivo que tenha um navegador — seu notebook, seu celular —, faça login se ainda não estiver logado, confira se o código na tela é o mesmo do seu terminal e aprove. A página identifica a máquina que fez o pedido, para que você consiga distinguir seu próprio login de um que você não iniciou. A CLI percebe em poucos segundos, salva o token e imprime a conta com a qual fez login.

Nada é digitado de volta no terminal, então isso funciona a partir de um script ou de um agente tão bem quanto de um shell.

Observações:

  • O código é válido por 10 minutos e pode ser usado uma única vez. Se ele expirar, execute o comando novamente para obter um novo.
  • Aprovar concede à CLI acesso como você, na sua organização ativa no momento. Para fazer login em uma organização diferente, troque de organização no console primeiro e então execute suya auth login de novo.
  • Se você não iniciou o login, clique em Deny — nenhum token é emitido.

Faça logout e revogue o token armazenado localmente.

Terminal window
suya auth logout

Mostra o status de autenticação local. Isso não chama o servidor — ele relata quais credenciais a CLI tem em disco.

Terminal window
suya auth status

Chama o servidor (/api/auth/cli/whoami) e imprime a identidade para a qual sua credencial atual é resolvida. Funciona para ambos os tipos de credencial: um token do suya auth login e uma SUBAYA_API_KEY. Use isto para confirmar que uma chave está configurada corretamente antes de entregá-la à CI.

Terminal window
export SUBAYA_API_KEY="sk_live_..."
suya auth whoami

Se a credencial for rejeitada, o whoami diz o motivo em vez de simplesmente falhar:

Motivo O que significa
unknown_key A chave de API não é reconhecida — revogada, expirada ou nunca existiu. Gere uma nova no console em Settings → API keys.
wrong_environment A chave está bem formada, mas pertence ao outro ambiente (veja abaixo). A mensagem inclui onde gerar a chave correta.
unknown_token Seu token de login expirou ou foi revogado. Execute suya auth login novamente.
no_credential Nenhuma credencial foi apresentada. Defina SUBAYA_API_KEY ou execute suya auth login.

As chaves de API carregam seu ambiente no prefixo, e uma chave só é válida contra o host para o qual foi gerada:

  • sk_live_… — a API de produção (https://subaya-dev.com), o padrão de --host.
  • sk_test_… — reservada para ambientes que não são de produção.

Uma chave sk_test_ enviada ao host de produção é rejeitada com wrong_environment, e não com um genérico “invalid key” — então, se você vir isso, a correção é gerar uma chave do tipo certo, e não caçar uma chave revogada. Gere as chaves no console em Settings → API keys, no ambiente que você pretende chamar.