Permission
Cada Permission é um paraction:resource que representa uma capacidade específica no sistema.
Formato
Catálogo de Permissions
O catálogo é controlado pelo DEVMOB e usado pelas superfícies Ops e BKO. Cada entrada declara em quais API surfaces (ops, bko) ela é aceita e a quais tipos de organização ela se aplica (Company, Cooperative ou Todas). O tipo de organização define a composição da role admin padrão criada com cada organização.
Organização & acesso
Plataforma e comunicação
Frota
Operações
Viagens, aprovações de rota e avaliações são capacidades operacionais da Cooperative. Uma Company não recebe essas permissions.
Vendas
Billing
Crédito corporativo
Permissions com escopo BKO não pertencem a nenhum tipo de organização. Elas só fazem sentido para roles
INTERNAL.Claims de acesso à API
Além das permissions do catálogo, existem três claims derivados —access:ops, access:bko e access:driver — que liberam o ingresso em cada API surface. Eles não são atribuídos como entidade própria: aparecem no Profile a partir dos vínculos ativos do usuário.
Role
Uma Role agrupa um conjunto de permissions sob um nome descritivo.
As permissions atribuídas à Role vivem em
RolePermission, não em um campo próprio da Role.
Uma Role pode ter três tipos:
Roles
ORGANIZATION são customizáveis por organização. Uma Cooperative pode ter uma role “Supervisor” com permissions diferentes da role “Supervisor” de outra Cooperative.Role admin padrão
A role admin padrão é uma RoleENVIRONMENT compatível com o tipo da organização. No onboarding, o owner recebe uma Membership ACTIVE na nova organização apontando para essa role. Assim, organizações podem reutilizar roles padrão, enquanto roles ORGANIZATION continuam disponíveis para customização local.
Na seleção de roles para convites, type=INTERNAL lista roles internas. Para uma organização, assignableToOrganizationId lista roles ENVIRONMENT globais e roles ORGANIZATION pertencentes à organização informada.
Atribuição via Membership
Membership é o ponto de encontro entre User, Organization e Role. Um usuário pode acumular mais de uma role na mesma organização.Exemplo Prático
Verificação de Permissão
A cada requisição autenticada:- O access token identifica o usuário.
- O Profile precisa estar ativo; caso contrário a requisição é rejeitada (
403). - Se a rota exige uma API surface, o claim
access:{api}correspondente é conferido. - As permissions efetivas são comparadas com a permission exigida pela ação.
INTERNAL e das permissions das roles ENVIRONMENT/ORGANIZATION da organização ativa. Somente Memberships ACTIVE entram nessa composição. Um Profile resolve no máximo uma organização ativa.
Quando uma ação aceita múltiplas permissions, basta possuir uma delas, salvo quando a própria ação exige todas. A organização ativa restringe o escopo da operação.