Sim, existe um sistema completo de auditoria e logs no PostgreSQL do EVA-Mind. Aqui está tudo o que é registrado:
Tabela: lgpd_audit_log
Registra quem acessou quais dados de qual idoso:
actor_id— Quem fez a ação (usuário, sistema, cuidador, admin)actor_type— Tipo de atoractor_ip— IP de quem acessousubject_id— Qual idoso foi afetadoevent_type— Tipo de evento (access, update, delete, etc)action— Ação específica realizadatimestamp— Quando aconteceusuccess— Se funcionou ou nãoerror_message— Se falhou, qual foi o erro- Retenção: 365 dias (configurável)
SELECT * FROM lgpd_audit_log
WHERE subject_id = 123
ORDER BY timestamp DESC
LIMIT 50;Tabela: episodic_memories
Registra cada conversa completa entre idoso e EVA:
idoso_id— Qual idosospeaker— Quem falou ("user" ou "assistant")content— O que foi dito (texto completo)emotion— Emoção detectadaimportance— Score de importância (0.0-1.0)timestamp— Quando aconteceusession_id— Qual sessão de conversais_atomic— Se foi decomposto em fatos atômicos
-- Todas as conversas de um idoso específico
SELECT timestamp, speaker, content, emotion, importance
FROM episodic_memories
WHERE idoso_id = 123
ORDER BY timestamp DESC;
-- Resumo de atividade por dia
SELECT DATE(timestamp) as data, COUNT(*) as total_mensagens
FROM episodic_memories
WHERE idoso_id = 123
GROUP BY DATE(timestamp)
ORDER BY data DESC;Tabela: historico_ligacoes
Registra cada chamada realizada:
idoso_id— Qual idosocall_sid— ID único da chamadastatus— Status da chamadainicio— Quando começoufim— Quando terminouqualidade_audio— Qualidade do áudiointerrupcoes_detectadas— Número de interrupções
SELECT * FROM historico_ligacoes
WHERE idoso_id = 123
ORDER BY inicio DESC
LIMIT 20;Tabela: escalation_logs
Registra cada alerta/emergência disparado:
elder_name— Qual idosoreason— Por que foi disparadopriority— Nível de criticidadeacknowledged— Se foi reconhecidoacknowledged_by— Quem reconheceufinal_channel— Como foi entregue (push, SMS, WhatsApp, etc)started_at— Quando começoucompleted_at— Quando terminou
SELECT * FROM escalation_logs
WHERE elder_name LIKE 'Nome%'
ORDER BY started_at DESC;Tabela: lgpd_consents
Registra consentimentos explícitos para cada tipo de uso:
subject_id— Qual idosoconsent_type— Tipo (general, health_data, research, marketing)granted— Se foi concedido ou nãogranted_at— Quando foi concedidorevoked_at— Se foi revogado
SELECT * FROM lgpd_consents
WHERE subject_id = 123;Tabela: lgpd_requests
Registra pedidos de acesso aos dados do idoso:
request_type— Tipo (access, deletion, rectification, portability, etc)status— Status do pedidorequested_at— Quando foi solicitadodeadline_at— Prazo para responder (15 dias)handled_by— Quem tratouresponse_details— Detalhes da resposta
SELECT * FROM lgpd_requests
WHERE subject_id = 123
ORDER BY requested_at DESC;Função PostgreSQL para limpeza:
SELECT cleanup_expired_audit_logs();
-- Remove automaticamente logs com mais de 365 diasSELECT
lgpd_audit_log.timestamp,
lgpd_audit_log.actor_id,
lgpd_audit_log.actor_type,
lgpd_audit_log.action,
idosos.nome as "idoso_afetado"
FROM lgpd_audit_log
JOIN idosos ON lgpd_audit_log.subject_id = idosos.id
WHERE lgpd_audit_log.timestamp > NOW() - INTERVAL '7 days'
ORDER BY lgpd_audit_log.timestamp DESC;SELECT
DATE(episodic_memories.timestamp) as "data",
COUNT(*) as "mensagens_trocadas",
COUNT(DISTINCT episodic_memories.session_id) as "sessoes"
FROM episodic_memories
WHERE episodic_memories.idoso_id = 123
GROUP BY DATE(episodic_memories.timestamp)
ORDER BY data DESC;SELECT
priority,
COUNT(*) as total,
SUM(CASE WHEN acknowledged THEN 1 ELSE 0 END) as reconhecidos,
AVG(EXTRACT(EPOCH FROM (completed_at - started_at)))::INTEGER as tempo_medio_segundos
FROM escalation_logs
WHERE started_at > NOW() - INTERVAL '30 days'
GROUP BY priority
ORDER BY priority;- CPF é hashado na auditoria (
subject_cpf) - Embeddings não são armazenados em logs de auditoria
- Acesso requer autenticação e autorização
- Sistema segue LGPD (Lei Geral de Proteção de Dados)
- Retenção automática: Logs antigos são deletados após 365 dias
- Cada tabela possui índices otimizados para queries rápidas
Estes dados foram extraídos da migration:
migrations/018_lgpd_audit_trail.sql— Sistema completo de auditoria LGPD
O EVA-Mind tem um sistema enterprise-grade de auditoria com rastreamento completo de:
- ✅ Quem usou o sistema
- ✅ Quando acessou
- ✅ Qual idoso foi afetado
- ✅ Que tipo de operação foi feita
- ✅ Se funcionou ou deu erro
- ✅ IP de origem
- ✅ Conformidade LGPD
Todos os registros são criptografados, auditados e retenção automática é aplicada. 🔐