Conceitos
Contexto
O Contexto define o escopo onde as permissões se aplicam. É composto pela combinação de:
- Database: identificador do banco de dados do cliente
- Entity: identificador da entidade/organização
- Subcontexto (opcional): dimensão adicional customizável por sistema. Cada aplicação pode definir seus próprios subcontextos para atender necessidades específicas de organização
Acesso
Um Acesso representa a autorização de um usuário para utilizar um sistema em um determinado contexto. Quando um acesso é criado no Gerenciador de Acessos, as permissões são configuradas utilizando o Page Mapping registrado pelo sistema.
Principais Atributos
| Atributo | Descrição |
|---|---|
| Permissões | Constraints e AccessControlls configurados via Page Mapping |
| Grupos | Conjuntos predefinidos de permissões para atribuição facilitada |
| Administrador | Flag que concede acesso total ao contexto |
| Data de expiração | Limite temporal para validade do acesso |
| Restrições | Configurações de IP, período, MFA e outras políticas de segurança |
O Page Mapping define quais permissões estão disponíveis para configuração. Quando um administrador cria ou edita um acesso no Gerenciador de Acessos, ele seleciona as permissões dentre as opções definidas no Page Mapping do sistema.
Constraint (Permissão)
Uma Constraint representa uma permissão individual no sistema. Ela define:
| Campo | Tipo | Descrição |
|---|---|---|
id | String | Identificador único da permissão |
description | String | Descrição amigável para exibição no UI |
resources | Array | Lista de URLs protegidas por esta permissão |
accessControll | Array | Operações disponíveis dentro desta permissão |
AccessControll (Operação)
Um AccessControll representa uma operação específica dentro de uma permissão. Os IDs são configuráveis por sistema - cada aplicação define seus próprios. Exemplos:
create,edit,delete- Padrões CRUDcontabilizar- Ação específica de contabilizaçãoprocessar- Ação de processamentocancel- Ação de cancelamento
Resource (Recurso)
Um Resource define uma URL que requer permissão para acesso:
| Campo | Tipo | Descrição |
|---|---|---|
urlPattern | String | Padrão de URL (suporta regex) |
methods | Array | Métodos HTTP que requerem permissão |
accessControll | String | ID do AccessControll necessário (null = apenas constraint) |
Padrões de URL suportados (regex):
| Padrão | Descrição | Exemplo |
|---|---|---|
/path | URL exata | /api/pessoas |
/path/.* | Wildcard | /api/pessoas/123 |
/path/.*/subpath | Wildcard no meio | /api/pessoas/123/documentos |
Group (Grupo)
Um Group organiza constraints logicamente para facilitar a gestão no UI:
{
"id": "cadastros",
"description": "Cadastros",
"constraints": ["cadastro-pessoas", "cadastro-empresas"]
}
Grupos servem apenas para organização visual. Mover constraints entre grupos não afeta as permissões já configuradas.