Contexto
O sistema de roles atual (configuração geral de permissões por usuário/role) funciona bem para casos simples, mas não permite controle fino sobre quais integrações ou recursos específicos cada usuário pode acessar, visualizar ou editar.
Sugestão
Manter o setup geral de roles como está (para o caso comum), mas adicionar a opção de permissionamento granular por recurso, especialmente para integrações.
Exemplos de permissões detalhadas por integração
Integrações:
├── Gmail → [ver] [interagir] [editar config]
├── Linear → [ver] [interagir] [editar config]
├── WhatsApp → [ver] [interagir] [editar config]
├── Stripe → [ver] [—] [—]
└── GitHub → [ver] [interagir] [—]
Modelo proposto
- Nível 1 (geral): role padrão com preset de permissões (ex:
admin, editor, viewer) — comportamento atual
- Nível 2 (granular): override por recurso/integração quando necessidade de controle mais fino
can_view — consegue ver a integração e seus dados
can_interact — consegue usar/acionar (ex: disparar rotinas, criar tickets via a integração)
can_configure — consegue editar credenciais, webhooks, configurações da integração
Casos de uso
- Dar acesso a um colaborador para ver dados do Stripe mas não editar as configurações de pagamento
- Permitir que um agente de suporte interaja com o WhatsApp mas não acesse Gmail ou Linear
- Restringir acesso a integrações financeiras (Omie, Asaas) a roles específicas
- Workspace multi-tenant onde diferentes usuários têm escopos distintos de ferramentas
Implementação sugerida
- UI: na página de roles, ao selecionar um role, expandir seção "Permissões avançadas por recurso" (colapsável, opcional)
- Storage: tabela de override
role_resource_permissions (role_id, resource_type, resource_id, can_view, can_interact, can_configure)
- Fallback: se não houver override granular, usa a permissão do role geral (sem regressão)
Prioridade sugerida
enhancement / baixa — o setup atual atende a maioria dos casos. Esta feature é relevante para workspaces com múltiplos colaboradores ou necessidade de compliance mais rígido.
Contexto
O sistema de roles atual (configuração geral de permissões por usuário/role) funciona bem para casos simples, mas não permite controle fino sobre quais integrações ou recursos específicos cada usuário pode acessar, visualizar ou editar.
Sugestão
Manter o setup geral de roles como está (para o caso comum), mas adicionar a opção de permissionamento granular por recurso, especialmente para integrações.
Exemplos de permissões detalhadas por integração
Modelo proposto
admin,editor,viewer) — comportamento atualcan_view— consegue ver a integração e seus dadoscan_interact— consegue usar/acionar (ex: disparar rotinas, criar tickets via a integração)can_configure— consegue editar credenciais, webhooks, configurações da integraçãoCasos de uso
Implementação sugerida
role_resource_permissions (role_id, resource_type, resource_id, can_view, can_interact, can_configure)Prioridade sugerida
enhancement/ baixa — o setup atual atende a maioria dos casos. Esta feature é relevante para workspaces com múltiplos colaboradores ou necessidade de compliance mais rígido.