Pular para o conteúdo principal

Permissões

Uma requisição autenticada passa por três checagens, nesta ordem. Qualquer uma que negue encerra a requisição com 403.

#ChecagemO que confereRecusa
1Escopo do tokeno recurso e o nível de acesso concedidos ao token403 INSUFFICIENT_SCOPE
2Papel da pessoao que a pessoa do token pode fazer na organização403 USER_PERMISSION_DENIED ou 403 NOT_A_MEMBER
3Liberação da organizaçãose a Kobana liberou a tela equivalente do console para a organização403 FEATURE_NOT_ENABLED

1. Escopos​

O token precisa do escopo do recurso e do nível de acesso que o método exige. A gramática, a tabela de recursos e os exemplos estão em Autenticação → Escopos.

2. Papel da pessoa​

Um token emitido para uma pessoa (com a claim email) nunca alcança mais do que a pessoa: além dos escopos, vale o papel dela na organização. Cada rota exige uma permissão agent.<recurso>.<ação>:

AçãoQuando
list, readlistar e detalhar
create, update, deletecriar, alterar e remover
executions.rundisparar uma tarefa
webhook_deliveries.replayreenviar uma entrega de webhook
repository.syncsincronizar o Playbook

Os papéis aceitam curingas: *, agent.* e agent.<recurso>.*.

RespostaQuando
403 USER_PERMISSION_DENIEDo papel não concede a permissão (details.required diz qual)
403 NOT_A_MEMBERa pessoa do token não tem vínculo com a organização

Um token de integração, sem pessoa, vale só pelos escopos. GET /v1/me não confere papel.

3. Liberação da organização​

As rotas que espelham telas do console (disparo, logs, webhooks, entregas, ambientes, secrets, agendamentos, endpoint da tarefa, repositório e uso) respeitam também as liberações que a Kobana dá à organização. Uma operação não liberada responde 403 FEATURE_NOT_ENABLED, com details.permission.

Plano contratado​

Disparar uma tarefa exige o Kadu no plano da organização. Sem plano, o disparo responde 403 ENTITLEMENT_REQUIRED, com details.reason e details.required_product. Leitura, cadastro e cancelamento nunca são bloqueados pelo plano. Ver Plano e custos.