Logs e Auditoria — Registro de Decisões (v1.0)

Documentos desta funcionalidade: 01 - Definição (v1.0) · 02 - Especificação (v1.0) · 03 - Protótipo (v1.0) · 04 - Mapeamento de Banco de Dados (v1.0) · Cenários de Teste (v1.0) · 05 - Registro de Decisões (v1.0)

Legenda: D-LOG = decisão do solicitante; E-LOG = escolha do Designer ([INVENÇÃO], a aprovar); P-LOG = pergunta em aberto.


Decisões do solicitante (D-LOG)

IDDecisãoDataReflexo
D-LOG-001Dois registros distintos: log de sistema (suporte, anomalias pontuais e estatísticas) e trilha de auditoria (tudo no prontuário e funcionalidades coligadas; ONA, SBIS; busca de responsáveis)11/2026RN-LOG-001
D-LOG-002Identificador opaco do paciente na trilha, sendo o IdPaciente11/2026RN-LOG-015
D-LOG-003Hospedagem SaaS na nuvem do fornecedor; backend .NET (C#); Grafana, Loki e Prometheus operados pela própria equipe, em contêineres11/20262.3.1
D-LOG-004Tenant como campo do log, não como rótulo do Loki; métricas com granularidade enxuta (HTTP por endpoint sem tenant; métrica enxuta com tenant; métricas de banco com tenant). Razão do solicitante: erros e anomalias de sistema quase sempre afetam todos os tenants; acessos indevidos são tratados no Segurança; tenant só importa quando o problema é o banco do cliente11/2026RN-LOG-006, 007
D-LOG-005Mecanismo de auditoria para o sistema todo, com categorias distintas; processo de auditoria no Segurança (IpSeguranca) para eventos de segurança, o que leva a dois repositórios (global e por cliente)11/2026RN-LOG-011, 012
D-LOG-006Log de sistema pode ser temporário no Loki, mas há desejo de guardar de 1 a 2 anos, para auditorias do passado em funcionalidades fora do PEP11/2026RN-LOG-009
D-LOG-007Medir o volume de logs antes de decidir o armazenamento11/2026P-LOG-02, 03
D-LOG-008Usar partições para a trilha; verificar se o PostgreSQL (possível migração) tem função semelhante11/2026RN-LOG-026; 4.4
D-LOG-009Integridade, fase 1: permissões e hash por linha; as demais etapas (lote, selo externo) só depois, se necessárias11/2026RN-LOG-025
D-LOG-010Os dois sistemas devem ser simples, fáceis de incorporar nas APIs e bibliotecas, integrados ao framework ou avisando o desenvolvedor da falta11/2026RN-LOG-021

Escolhas do Designer (E-LOG) — [INVENÇÃO], a aprovar

IDEscolhaMotivo
E-LOG-001Pacotes Gemed.Telemetry e Gemed.AuditSeparar o que é de suporte do que é de responsabilização
E-LOG-002Gravar a trilha na mesma transação, com falha fechada; fila de saída só se a trilha mudar de bancoEvita operação sem rastro; o padrão de fila existe em mensageria.OutboxEvento
E-LOG-003Captura por atributos, interceptador do EF Core e chamada explícitaCobre leitura, escrita e segurança sem esforço do desenvolvedor
E-LOG-004Catálogo de eventos como enumeração em código, gerando a matriz NGS1.07.03Uma fonte de verdade para código, tela e conformidade
E-LOG-005Numeração do tipo de evento por faixas (1001, 2001, 3001)Estável e legível
E-LOG-006Modelo lógico neutro com mapeamento para SQL Server e PostgreSQLMigração em aberto
E-LOG-007Não reutilizar Log/LogComplementoFinalidade não confirmada; faltam campos e proteção
E-LOG-008Hash SHA-256 por linha, calculado pela aplicaçãoIndepende do banco
E-LOG-009Exportação em CSV e JSONFormato aberto simples
E-LOG-010Tela no contexto Segurança, com perfil “Auditor”Mantém o acesso separado (NGS1.07.02)
E-LOG-011Eventos clínicos e de segurança com falha fechada; só “erro de processo operacional” com falha abertaRastro obrigatório sem travar o diagnóstico
E-LOG-012Eventos de segurança e gestão no repositório global; clínicos e operacionais do cliente no repositório do clienteOnde o dado nasce
E-LOG-013TraceId na trilhaLiga o auditor ao suporte
E-LOG-014Evento de alteração (AUD-RES-005) e evento operacional fora do RES (AUD-OPE-010)Decorre do pedido “tudo que foi feito” e de D-LOG-005

Perguntas em aberto (P-LOG)

IDPerguntaQuem responde
P-LOG-01NGS1.07.06: o identificador opaco e os nomes de campos atendem ao requisito? O PEPLog.NovoValor legado conflita?Certificador SBIS
P-LOG-02Volume do log de sistema; retenção por nível; MinIO/S3; Mimir, Thanos ou VictoriaMetrics para 1 a 2 anos de métricasMedição, equipe
P-LOG-03Volume da trilha; compressão (PostgreSQL: ZFS, TimescaleDB ou Citus colunar); necessidade de camada friaMedição, equipe
P-LOG-04Prazo legal e do certificador de guarda da trilhaJurídico, certificador
P-LOG-05A camada de dados é EF Core? Se não, o interceptador vira decorador do repositórioArquitetura
P-LOG-06NGS1.07.02: permissões e hash bastam, ou o certificador exige selo em lote ou externo?Certificador SBIS
P-LOG-07Destino das tabelas Log e LogComplemento do IpSegurancaSolicitante
P-LOG-08Haverá unificação de pacientes?Solicitante
P-LOG-09SQL Server ou PostgreSQL como banco finalSolicitante
P-LOG-10Versão do Loki com suporte nativo a OTLPEquipe
P-LOG-11Precisa apagar logs de um tenant específico (por exemplo, fim de contrato)? Isso muda a retenção por tenantSolicitante
P-LOG-12Quem recebe o perfil “Auditor” por padrão na implantaçãoSolicitante
P-LOG-13A tela do auditor pode mostrar o nome do paciente (resolvido na hora a partir do IdPaciente, sem guardar na trilha) ou só o identificador? Depende de P-LOG-01Solicitante, certificador

Histórico de Versões

  • v1.0 (11/11/2026) — Criação.