🔒 RBAC e Permissões
A API implementa controle de acesso baseado em roles (RBAC). O sistema funciona da seguinte forma:
Estrutura
- Usuários (
users) - Contas de usuário - Organizações (
orgs) - Organizações multi-tenant - Roles (
roles) - Funções/Perfis de acesso - Permissões (
permissions) - Permissões individuais - Memberships (
memberships) - Associação de usuários a organizações com roles - Role Permissions - Associação de permissões a roles
Fluxo de Verificação
- Usuário autentica e obtém token JWT
- Token contém
sub(ID da integração) eorg_id - Sistema verifica membros do usuário na organização
- Sistema obtém roles associadas ao membro
- Sistema obtém permissões associadas às roles
- Sistema verifica se a permissão requerida está presente
Exemplo de Uso
// Verificar permissão de um usuário
const hasPermission = await hasPermission(
user_id,
org_id,
"clients:write"
);
if (!hasPermission) {
throw new HttpError(403, "forbidden", "Sem permissão para criar clientes");
}Permissões Comuns
clients:read- Ler clientesclients:write- Criar/editar clientesservices:read- Ler serviçosservices:write- Criar/editar serviçostickets:read- Ler ticketstickets:write- Criar/editar ticketsresources:read- Ler recursosresources:write- Criar/editar recursosusers:read- Ler usuáriosusers:write- Criar/editar usuários