Aurora NexusSécurité
Logs & Rétention
(extrait à scinder de TROUBLESHOOTING)
Objectifs
- Minimiser la PII dans les logs et respecter les politiques (RGPD/clients).
- Contrôler la volumétrie (Qdrant, Postgres, MinIO) et les coûts LLM.
Paramètres .env (infra)
- Contenu loggable :
QUERIES_LOG_STORE_QUESTION/QUERIES_LOG_STORE_ANSWER(true/false).QUERIES_LOG_MAX_QUESTION_CHARS,QUERIES_LOG_MAX_ANSWER_CHARS(0 = illimité, sinon tronque).QUERIES_LOG_MAX_CITATIONS,QUERIES_LOG_MAX_CITATIONS_BYTES,QUERIES_LOG_MAX_CITATION_FIELD_CHARS(whitelist de champs déjà appliquée en code).
- Rétention (jours) :
QUERIES_LOG_RETENTION_DAYS(logs RAG),OPENROUTER_USAGE_RETENTION_DAYS,LLM_EVALUATION_RETENTION_DAYS,EMBEDDINGS_LOG_RETENTION_DAYS,OAUTH_LOGIN_CODES_RETENTION_DAYS.
- Purge périodique :
RETENTION_PURGE_ENABLED=true,RETENTION_PURGE_INTERVAL_SECONDS(ex. 86400). - Cache Gateway : prévoir nettoyage si
QDRANT_ORPHANS_GC_ENABLEDactivé.
Côté application / base
- Les tâches de purge (si activées) nettoient les tables concernées à intervalle régulier.
- Les citations loggées sont déjà nettoyées des champs texte de chunk (whitelist stricte).
- Table
thread_state: contient un état minimal parthread_id(outlineSUIVI+ docs utilisés) pour résoudre des follow-ups (“S2 / point B / 2e point”) sans réinjecter l’historique brut.
Cette table ne doit pas être considérée comme une “mémoire” de contenu : elle sert uniquement à la navigation conversationnelle.
Bonnes pratiques
- En prod, éviter de stocker les questions/réponses complètes si non nécessaire (mettre les flags à
falseou tronquer). - Documenter la politique retenue par client/tenant.
- Sauvegardes : appliquer la même politique sur les sauvegardes (pas de rétention infinie pour les dumps contenant des PII).
- Si vous appliquez une purge agressive de
queries_log, pensez aussi à purger les entréesthread_statetrop anciennes (ex:updated_at < now() - interval '90 days') pour éviter une accumulation inutile.