Matriz de Visibilidade dos Contextos
A Matriz de Visibilidade dos Contextos governa, em uma única tabela, em quais funcionalidades os dados de cada contexto podem ser usados. Quando a plataforma acumula muitos contextos, toda tela acaba listando todos: o usuário de triagem esbarra em contextos de piloto, o time de BI vê bases que não deveria usar e ninguém sabe onde cada contexto "vale". Na matriz, cada linha é um contexto cadastrado, cada coluna é uma funcionalidade, e o checkbox na interseção diz se aquele contexto aparece naquela funcionalidade — a exposição de todos os contextos governada de um lugar só, com efeito imediato.
A matriz fica no topo da tela (screens/settings-contextos.html), entre o cabeçalho e a seção "Configurações por Contexto".
Colunas (funcionalidades cobertas)
| Coluna | Funcionalidade | Aplicação hoje |
|---|---|---|
| Painel de Regras | Contextos visíveis na coluna de regras da triagem | Ativa (legado) |
| Upload PDF | Contextos disponíveis no envio de PDF | Ativa (legado) |
| Upload URL | Contextos disponíveis no envio de URL/legislação | Ativa (legado) |
| DATTABI | Contextos habilitados para os painéis analíticos | Registrada (governança) |
| DATTA Extract | Contextos habilitados para extração/pipeline | Registrada (governança) |
| Ontologia | Contextos listados na tela de Ontologia (Investigação) | Ativa |
As três primeiras colunas (Painel de Regras, Upload PDF e Upload URL) já existiam antes da matriz e continuam guardadas nas configurações globais da plataforma, cada uma com seu próprio endpoint. As três últimas (DATTABI, DATTA Extract e Ontologia) são a extensão mais recente.
Semântica: lista vazia = todos visíveis
A regra vale para todas as colunas:
- Nenhum contexto marcado numa coluna → todos os contextos ficam visíveis naquela funcionalidade. Este é o estado inicial.
- Um ou mais marcados → somente os marcados aparecem; os demais são filtrados.
Essa semântica evita que você "se tranque": desmarcar todos os contextos de uma coluna volta ao comportamento de todos-visíveis, nunca a uma tela vazia.
Como usar
- Acesse .
- Na Matriz de Visibilidade dos Contextos (topo da página), localize a linha do contexto e a coluna da funcionalidade. A linha traz o rótulo de exibição do contexto, não o nome interno — o contexto de nome interno
Emprestimosaparece como "Análise de Crédito — Empréstimos". Os avisos que apontam para esta matriz nomeiam o contexto nas duas formas,Rótulo (nome-interno), justamente para você achar a linha. - Marque ou desmarque o checkbox. A alteração persiste imediatamente — não existe botão "Salvar" separado — e sobrevive a um reload da página.
- Na coluna Painel de Regras, a matriz avisa a tela de regras de triagem na hora, e ela se atualiza em tempo real. Nas demais, recarregue a tela correspondente para conferir o efeito.
Permissão necessária. Ver a matriz exige
CONFIG_VIEW; alterar um checkbox exigeCONFIG_EDIT. SemCONFIG_EDIT, a gravação é negada com mensagem em português. Veja o guia de roles e permissões.
Exemplo prático — restringir um contexto em piloto
Você acabou de criar o contexto "Consumidor" e quer que, por enquanto, ele apareça apenas na triagem — fora do envio de documentos e da Ontologia:
- Abra e localize a matriz no topo.
- Na coluna Painel de Regras, marque todos os contextos que devem seguir visíveis — incluindo "Consumidor". (Lembre: enquanto a coluna estava vazia, todos apareciam; ao marcar, só os marcados aparecem.)
- Nas colunas Upload PDF, Upload URL e Ontologia, marque todos os contextos exceto "Consumidor".
- Cada clique persiste na hora. Recarregue a tela de regras ou de Ontologia para conferir o efeito.
O que cada funcionalidade faz com a matriz
Painel de Regras, Upload PDF e Upload URL — aplicação ativa
A tela de regras da triagem recebe a lista de contextos já filtrada. As telas de envio (PDF e URL) filtram a lista ao carregar; se a consulta de visibilidade falhar por indisponibilidade transitória, elas degradam mostrando todos os contextos — você nunca fica sem opção por causa de uma oscilação.
Ontologia — aplicação ativa
A tela de Ontologia (parte da Investigação) respeita a matriz ao listar contextos: ao montar a lista de domínios, ela consulta em paralelo a lista de contextos configurados e a lista de contextos visíveis para Ontologia e, se a segunda for não-vazia, filtra os que não estão nela. Desmarcar um contexto na coluna Ontologia o remove da tela de Ontologia, com efeito imediato após recarregar a tela.
Se a consulta à matriz falhar, a tela degrada mostrando todos os contextos — mesmo padrão das telas de envio — para nunca deixar o usuário sem contexto por uma indisponibilidade transitória.
DATTABI e DATTA Extract — governança registrada
As colunas DATTABI e DATTA Extract persistem a intenção de visibilidade e expõem os flags para consumo, mas ainda não filtram as telas correspondentes. O motivo é concreto: hoje essas telas operam por conexões, datasets e referências livres, e não enumeram contextos — a extração rápida lista conexões, e o destino Neo4j do DATTABI Prep é um campo de texto livre. Assim que esses seletores passarem a enumerar contextos, poderão consumir os flags para aplicar o filtro.
Na prática: marcar ou desmarcar DATTABI e DATTA Extract registra a governança e fica disponível para consumo futuro, mas não altera o que aparece nessas telas nesta entrega. A matriz é visibilidade de interface e governança, não uma ACL de dados no servidor.
Onde a configuração fica guardada
As três funcionalidades novas ficam num arquivo dedicado, context-visibility.json, no mesmo diretório da configuração de runtime, dentro do volume de configuração da plataforma. O armazenamento usa trava de leitura/escrita mais cache em memória e aplica a semântica "lista vazia = todos visíveis".
O formato do arquivo é um mapa funcionalidade -> lista de contextos:
{
"ontology": ["processos", "cnpj"],
"dattabi": [],
"extract": ["processos"]
}As funcionalidades legadas (regras, envio de PDF, envio de URL) não migraram — continuam nas configurações globais, para zero risco de migração.
Consultar e gravar por integração
A plataforma expõe endpoints para ler o mapa completo de funcionalidade → contextos visíveis, ler os contextos visíveis de uma funcionalidade e gravar a lista de uma funcionalidade. A leitura exige CONFIG_VIEW; a gravação exige CONFIG_EDIT. Método e caminho de cada um estão na referência de API.
Duas regras valem para essas chamadas:
- A funcionalidade é restrita por allowlist:
dattabi,extracteontology. Qualquer outro valor é recusado com uma mensagem em português no formato{"error": "Funcionalidade desconhecida: <feature>"}. - Na gravação, a lista de contextos ausente ou nula é tratada como lista vazia — ou seja, volta ao estado de todos-visíveis.
Limitações conhecidas
- DATTABI e DATTA Extract sem filtro de tela. Os flags são persistidos e expostos, mas as telas ainda não filtram contextos. O passo seguinte é consumir os flags quando os seletores dessas telas passarem a enumerar contextos.
- Governança de interface, não ACL de dados. A matriz não restringe acesso a dados no servidor por contexto — ela controla o que aparece nas telas. Restrição de dados por contexto é escopo de outra spec.
- A aplicação na Ontologia é feita na tela e degrada aberta. A filtragem acontece no frontend e, se a consulta falhar, todos os contextos voltam a aparecer.
Diagnóstico
| Sintoma | O que verificar |
|---|---|
| Contexto some ou aparece na Ontologia inesperadamente | Confira a coluna Ontologia da matriz. Lembre que lista vazia = todos visíveis; se só um contexto está marcado, apenas ele aparece. |
| O checkbox não persiste ou dá erro | Verifique se o usuário tem CONFIG_EDIT. Em falha de gravação, a plataforma devolve a mensagem de erro em português na própria tela. |
| Quero conferir o estado atual sem abrir a tela | Consulte o mapa completo de funcionalidade → contextos pela referência de API. |