Configurações do sistema
Infraestrutura de identidade, controle de acesso e governança técnica do MinC: usuários, células, áreas, grupos de permissões, tokens de integração e trilha de auditoria. É aqui que vive o motor RBAC/ABAC 3-gate.
Motor RBAC/ABAC 3-gate
O motor de autorização (RN-001, lib/business/rbac.ts) autoriza por interseção de até três portões independentes. Todos os portões ativos precisam ser satisfeitos para que uma ação seja permitida.
Gate 1 · Estado (ABAC)
O status do objeto define quais ações são possíveis. Exemplos:
- PAR "Em análise" → permite diligenciar.
- PAR "Habilitado" → somente leitura.
- Registro "Finalizado" → somente visualizar (RN-012).
Gate 2 · Papel (RBAC)
O papel do usuário (NV0–NV5) define o teto de ações disponíveis. Sempre obrigatório — nenhuma ação passa sem validação de papel.
- NV0 = Visualizador (somente leitura global).
- NV5 = alias numérico de "Membro SGPTC".
Gate 3 · Competência (opt-in)
A área do usuário precisa ter jurisdição sobre o tipo de registro (lib/config/area-competencia.ts).
- Aplicado apenas quando configurado para o tipo de recurso.
- Nunca bloqueia leitura — só restringe escrita/ação.
registro.atribuir (redistribuir no escopo). Substitui a regra anterior NV3-exclusiva (RN-022 / SoD). A associação usuário↔célula↔ente ainda não é funcionalidade — manual via banco; enforcement de escopo pendente.
Ações por nível mínimo
| Ação | Nível mínimo | Observação |
|---|---|---|
| par.view | NV0 | Visualizador |
| par.diligenciar | NV2 | |
| par.aprovar par.habilitar par.restituir | NV3 | Coordenador |
| registro.create | NV1 | |
| registro.triar | NV2+ (analista dono do ente) | Triagem por propriedade — escopo célula→ente |
| registro.atribuir | NV3 | Atribui/redistribui registros no escopo (painel global) |
| registro.escalonar registro.finalizar registro.cancelar | NV3 | Coordenador |
| registro.escalar_sgptc | NV4 | Diretor / Câmara Técnica |
| registro.parecer_sgptc registro.encerrar_tce | NV5 | Membro SGPTC |
Sub-módulos
Seis sub-módulos compõem o domínio de configuração. Cada um tem ciclo de vida próprio e regras de governança específicas.
B1 · Usuários TM-01 IAM
Função: ciclo de vida de usuários — criação, vínculo por área, desativação e aprovações.
Atores: Gestor NV3+ (ou Sysadmin) cria usuários (HU-004); grupo que exige aprovação roteia para NV4. NV3 gerencia vínculos da própria área.
| Regra | Descrição |
|---|---|
| RB-GAC-04 | Teto imutável: Área ≥ Grupo ≥ Usuário — permissão nunca excede o nível superior. |
| RB-GAC-05 | Segregação de funções: quem solicita acesso não pode aprovar o próprio acesso. |
| RB-GAC-07 | Isolamento por área via RLS — header area_context_id obrigatório em toda requisição. |
| RB-GAC-08 | Toda ação de segurança gera log WORM imutável. |
Ciclo: Convidado → Ativo · Pendente · Bloqueado. Redução de teto ativa Kill Switch: JWT invalidado em tempo real. ("Inativo" aplica-se a grupo/área/vínculo, não a usuário.) Gatilho de ativação por 1º login ainda não implementado no V2.
B2 · Células TM-05
Função: agrupam entes para distribuir carga de análise (operação exclusiva SEFIC). A associação agora é em cadeia: analista SEFIC ↔ célula(s) ↔ entes específicos dentro dessas células (um ente só é atribuível dentro de uma célula do analista). É esse vínculo que roteia o registro para a caixa de Triagem do analista dono do ente.
Atores (spec): Gestor SEFIC NV3+ vincula e move entes (HU-402/403, RF-CEL-03); NV1/NV2 têm somente leitura.
| Regra | Descrição |
|---|---|
| RB-CEL-03 | Um ente pertence a somente uma célula por ciclo. |
| RB-CEL-05 | Escopo efetivo = escopo_usuário ∩ escopo_grupo ∩ {célula do ente-alvo}. |
| RB-CEL-06 | Mover ente entre células exige justificativa e gera log WORM. Regra de spec; na implementação atual a justificativa ainda não é persistida e o WORM grava só {célula, CNPJ} (gap de auditoria 2026-06). |
| RB-CEL-07 | Pool de registros pertence à célula, não ao analista individual. |
Ciclo: Ativa / Suspensa / Inativa. Inativar exige aprovação (RB-CEL-11 / RB-CEL-12).
B3 · Áreas TM-16
Função: áreas do MinC (SEFIC, SGPTC, DASTE, SAFCC, SGII, SE) — criação, teto de permissões com cascata e inativação com realocação.
Atores: Sysadmin cria/inativa áreas (HU-016 RN-04: NV3 visualiza, não cria); NV3 gerencia dentro da própria área.
| Regra | Descrição |
|---|---|
| RB-AR-01 | Teto da área é o limite absoluto de todos os grupos filhos. |
| RB-AR-02 | Reduzir teto cascateia para grupos e usuários; aumentar NÃO concede automaticamente — princípio de mínimo privilégio. |
| RB-AR-03 | Sigla de área é única e imutável após criação. |
| RB-AR-05 | Realocar todos os usuários antes de inativar uma área. |
Ciclo: Ativa → Inativa (exige realocação prévia + Kill Switch JWT para todos os membros).
B4 · Grupos de permissões TM-17
Função: conjuntos nomeados de permissões por área, sempre dentro do teto da área-mãe.
Atores (spec): NV3 cria, edita e inativa grupos da própria área.
exige_aprovacao é enviado pelo front mas ainda não tratado no backend (gaps de auditoria 2026-06).
| Regra | Descrição |
|---|---|
| RB-GP-01 | Grupo nunca excede o teto da área-mãe — tentativa retorna HTTP 403. |
| RB-GP-02 | Não é possível excluir grupo com membros ativos vinculados. |
| RB-GP-03 | Desvincular usuário de grupo invalida JWT em tempo real. |
| RB-ARG-06 | Grupo nasce sem permissões — concessão deve ser explícita. |
Ciclo: Ativo → Inativo (cascata remove permissões dos membros). Grupos com exige_aprovacao=true ativam roteamento do workflow de aprovação.
B5 · Tokens TM-18
Função: tokens de acesso programático — PAT (usuário), M2M Gestão, M2M Rede (por tenant) e Open Data.
Atores: usuário NV2+ cria PAT (NV1 recebe 403); NV3+ (SGII) emite M2M Gestão e configura Open Data; escopos críticos de M2M exigem aprovação.
| Regra | Descrição |
|---|---|
| RB-PAT-01 | PAT com TTL fixo de 90 dias — não configurável. |
| RB-PAT-02 | One-time disclosure: segredo exibido uma única vez na criação. |
| RB-PAT-04 | Escopo do token nunca excede as permissões do emissor. |
| RB-PAT-05 | Origens IP/host obrigatórias no cadastro do token. |
Ciclo: Ativo → Expirado → Revogado (imediato e irreversível). M2M é system-bound com rotação por grace period; Rede é isolado por tenant_id.
B6 · Auditoria (logs) TM-19
Função: trilha WORM imutável de toda ação, painel SIEM com filtros forenses, diff engine e exportação LGPD. Parcial — recursos avançados (SIEM, diff engine, exportação) ainda em spec.
Atores: NV3+ visualiza logs com PII ofuscado; NV4+ exporta dados sensíveis (dupla conferência obrigatória).
| Regra | Descrição |
|---|---|
| RB-AUD-01 | Imutabilidade absoluta — nem administrador pode editar ou excluir entradas. |
| RB-AUD-02 | Integridade por hash chain SHA-256 (prev_hash + hash). Requisito de spec ainda não implementado — a trilha atual não tem prev_hash/hash nem verificação de integridade (gap P0 de auditoria 2026-06). |
| RB-AUD-04 | Retenção mínima de 5 anos. |
| RB-AUD-05 | PII mascarado por padrão; exportação completa exige NV4+. |
| RB-AUD-06 | Toda exportação gera entrada WORM de rastreabilidade da própria exportação. |
Ciclo: entradas não têm ciclo próprio — são imutáveis desde a criação.