🔒 RBAC e Permissões

A API implementa controle de acesso baseado em roles (RBAC). O sistema funciona da seguinte forma:

Estrutura

  1. Usuários (users) - Contas de usuário
  2. Organizações (orgs) - Organizações multi-tenant
  3. Roles (roles) - Funções/Perfis de acesso
  4. Permissões (permissions) - Permissões individuais
  5. Memberships (memberships) - Associação de usuários a organizações com roles
  6. Role Permissions - Associação de permissões a roles

Fluxo de Verificação

  1. Usuário autentica e obtém token JWT
  2. Token contém sub (ID da integração) e org_id
  3. Sistema verifica membros do usuário na organização
  4. Sistema obtém roles associadas ao membro
  5. Sistema obtém permissões associadas às roles
  6. 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 clientes
  • clients:write - Criar/editar clientes
  • services:read - Ler serviços
  • services:write - Criar/editar serviços
  • tickets:read - Ler tickets
  • tickets:write - Criar/editar tickets
  • resources:read - Ler recursos
  • resources:write - Criar/editar recursos
  • users:read - Ler usuários
  • users:write - Criar/editar usuários