gov.br Ministério da Cultura Documentação técnica · uso interno
D-config-sistema
Módulo 01 · D-config-sistema

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.

Definido A confirmar Em definição / pode divergir do código
A

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.
Triagem por propriedade de ente (decisão MinC · reunião 2026-06-10): o registro do ente cai na caixa de Triagem do analista SEFIC associado àquele ente (pode ser NV2), que tria os próprios entes. Escopo em cadeia analista ↔ célula(s) ↔ entes. O NV3 mantém triar + 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çãoNível mínimoObservação
par.viewNV0Visualizador
par.diligenciarNV2
par.aprovar par.habilitar par.restituirNV3Coordenador
registro.createNV1
registro.triarNV2+ (analista dono do ente)Triagem por propriedade — escopo célula→ente
registro.atribuirNV3Atribui/redistribui registros no escopo (painel global)
registro.escalonar registro.finalizar registro.cancelarNV3Coordenador
registro.escalar_sgptcNV4Diretor / Câmara Técnica
registro.parecer_sgptc registro.encerrar_tceNV5Membro SGPTC
B

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.

Enforcement de nível só no frontend — o backend não verifica nível para criar/gerenciar usuários (gap de auditoria 2026-06).
RegraDescrição
RB-GAC-04Teto imutável: Área ≥ Grupo ≥ Usuário — permissão nunca excede o nível superior.
RB-GAC-05Segregação de funções: quem solicita acesso não pode aprovar o próprio acesso.
RB-GAC-07Isolamento por área via RLS — header area_context_id obrigatório em toda requisição.
RB-GAC-08Toda 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.

Associação usuário↔célula↔ente (decisão MinC · reunião 2026-06-10) ainda não é funcionalidade — feita manualmente via banco; não é prioridade imediata.

Atores (spec): Gestor SEFIC NV3+ vincula e move entes (HU-402/403, RF-CEL-03); NV1/NV2 têm somente leitura.

Na implementação atual o gate de nível em célula ainda não é aplicado no backend (gap de auditoria 2026-06).
RegraDescrição
RB-CEL-03Um ente pertence a somente uma célula por ciclo.
RB-CEL-05Escopo efetivo = escopo_usuário ∩ escopo_grupo ∩ {célula do ente-alvo}.
RB-CEL-06Mover 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-07Pool 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.

RegraDescrição
RB-AR-01Teto da área é o limite absoluto de todos os grupos filhos.
RB-AR-02Reduzir teto cascateia para grupos e usuários; aumentar NÃO concede automaticamente — princípio de mínimo privilégio.
RB-AR-03Sigla de área é única e imutável após criação.
RB-AR-05Realocar 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.

Gate de nível para CRUD de grupo ainda não aplicado no backend; o campo exige_aprovacao é enviado pelo front mas ainda não tratado no backend (gaps de auditoria 2026-06).
RegraDescrição
RB-GP-01Grupo nunca excede o teto da área-mãe — tentativa retorna HTTP 403.
RB-GP-02Não é possível excluir grupo com membros ativos vinculados.
RB-GP-03Desvincular usuário de grupo invalida JWT em tempo real.
RB-ARG-06Grupo 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.

RegraDescrição
RB-PAT-01PAT com TTL fixo de 90 dias — não configurável.
RB-PAT-02One-time disclosure: segredo exibido uma única vez na criação.
RB-PAT-04Escopo do token nunca excede as permissões do emissor.
RB-PAT-05Origens 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).

RegraDescrição
RB-AUD-01Imutabilidade absoluta — nem administrador pode editar ou excluir entradas.
RB-AUD-02Integridade 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-04Retenção mínima de 5 anos.
RB-AUD-05PII mascarado por padrão; exportação completa exige NV4+.
RB-AUD-06Toda 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.

Documentação canônica & aprofundamento

docs/temas/D-config-sistema/ — 01-iam-usuarios, 05-celulas, 16-areas, 17-grupos-permissoes, 18-tokens, 19-logs-auditoria docs/guias/rbac.md — motor 3-gate completo docs/temas/A-visao-geral/matriz-permissoes.md — matriz perfil × ação Código: lib/business/rbac.ts · lib/config/area-competencia.ts
Abrir 04 · Configurações do Sistema (Gestão) no Drive →