Solução de problemas
Erros de API, de autenticação e de validação saem como JSON no stdout, com error.code e error.message; o código de saída do processo diz a categoria. Rode com --verbose para ver a requisição e a resposta (sem o token).
Autenticação (código de saída 2)
No authentication configured for <produto>
Não há token para aquele produto. Cada produto tem o seu:
kobana billing auth login # ou
export KOBANA_BILLING_TOKEN=...
kobana billing auth status # confere o que está valendo
auth status termina com código 0 mesmo sem credencial: confira o campo authenticated da saída. Um token de outro produto não serve — veja Autenticação.
401 da API
O token existe, mas está vencido, é de outro produto ou de outro ambiente. Os tokens de sandbox e de produção são diferentes. Refaça o login (kobana <produto> auth login) no ambiente certo (--env).
403 da API
O token é válido, mas não tem permissão. Causas comuns:
- Nível de acesso faltando.
DELETEexigedelete; importação exigeimport; escrita exigewrite. Faça o login de novo escolhendo os níveis, ou use--scopes. - Escopo do recurso faltando. O login lista os escopos do produto (
billing/customers,inbox/emails…); um recurso fora deles é recusado.
O login abre o navegador no lugar errado
O login usa a Conta Kobana do ambiente (account.kobana.com.br, account.sandbox.kobana.com.br). KOBANA_ACCOUNT_URL troca o endereço; confira se não há uma variável antiga exportada.
Ambiente
<produto> has no sandbox environment
inbox, dashboards e kadu não têm sandbox, e o CLI recusa em vez de mandar o teste para produção. Rode sem --env sandbox, com cuidado, ou use --dry-run.
Espaço de trabalho
400 WORKSPACE_REQUIRED no finance
Toda rota do finance precisa de X-Workspace-Id:
export KOBANA_WORKSPACE_ID=uuid-do-espaco
# ou, numa chamada só:
kobana finance payables list --params '{"X-Workspace-Id": "uuid"}'
kobana dunning workspaces list mostra os espaços que o token alcança.
Linha de comando (código de saída 3)
unrecognized subcommand ou unexpected argument
O comando ou a flag não existe. Veja o que há naquele nível:
kobana billing --help
kobana billing plans --help
Nomes de comandos mudaram em versões antigas, mas os nomes antigos continuam valendo como alias. Se o comando "sumiu", procure no Manual.
Validation error: id cannot contain …
O CLI recusa identificadores com /, \, .., ?, #, % ou caracteres de controle antes de chamar a API. É proposital: protege contra injeção de caminho. Passe só o id.
JSON inválido em --params ou --json
Use aspas simples por fora e duplas por dentro (--json '{"amount": 99.90}'). No PowerShell, escape as aspas duplas internas ou use um arquivo.
Variáveis e .env
Um token no .env foi ignorado
O .env da pasta atual não pode definir tokens nem credenciais, porque pode vir de um repositório de terceiros. O CLI avisa. Defina-os no ambiente ou no .env da pasta de configuração (~/.config/kobana). Veja Variáveis de ambiente.
Saída
Resposta enorme
Use --fields para limitar as colunas e --page-limit para limitar as páginas. Para somas, use os endpoints aggregates.
--output recusado
O caminho não pode ter .., ser link simbólico, pasta ou dispositivo.
O aviso "Nova versão disponível"
É um aviso no stderr, uma vez por dia. kobana update instala. Não afeta o stdout nem o código de saída.
Ainda não resolveu?
Rode o comando com --verbose e KOBANA_LOG=kobana=debug, e abra uma issue com o comando (sem tokens), a saída e kobana --version.