Files
roadwave/docs/domains/_shared/entities/data-retention-logs.md
jpgiannetti 23fe67470b docs: migrer schémas BDD de Mermaid vers DBML
Remplace les diagrammes Mermaid par DBML (via kroki-dbml) pour
une meilleure expressivité des schémas de base de données :
- Ajout support notes, contraintes et indexes détaillés
- Migration de tous les schémas d'entités partagées
- Ajout fichier exemple dbml-example.md
- Configuration plugin mkdocs-kroki pour rendu DBML
2026-02-12 20:49:02 +01:00

1.7 KiB

Data Retention Logs

📖 Logs purges automatiques inactivité (Article 5 RGPD - Minimisation)

Diagramme

Table data_retention_logs {
  id uuid [primary key]
  action_type retention_action_enum [not null]
  users_processed int [not null, default: 0, note: 'Nombre total users analysés']
  users_warned int [not null, default: 0, note: 'Nombre users notifiés (90j/30j/7j)']
  users_deleted int [not null, default: 0, note: 'Nombre users supprimés effectivement']
  details jsonb [note: 'Détails: threshold_date, user_ids_deleted, notifications_sent']
  executed_at timestamp [not null, default: `now()`, note: 'Timestamp exécution du job cron']
  execution_duration_ms bigint [not null, note: 'Durée d exécution en millisecondes']

  indexes {
    (action_type, executed_at) [note: 'Historique jobs par type']
    (executed_at) [note: 'Timeline complète des jobs']
  }
}

Enum retention_action_enum {
  check_inactive [note: 'Vérification quotidienne comptes inactifs > 5 ans']
  send_warnings [note: 'Envoi notifications (90j/30j/7j avant suppression)']
  delete_accounts [note: 'Suppression effective comptes inactifs']
}

Légende

Action types :

  • check_inactive: Vérification quotidienne comptes inactifs > 5 ans
  • send_warnings: Envoi notifications (90j/30j/7j avant suppression)
  • delete_accounts: Suppression effective comptes inactifs

Règles de conservation :

  • Auditeur : 5 ans inactivité → suppression
  • Créateur actif : jamais (tant que contenus écoutés)
  • Créateur inactif : 5 ans + 2 ans sans écoute → suppression

Details JSON :

{
  "threshold_date": "2021-02-08",
  "user_ids_deleted": ["uuid1", "uuid2"],
  "notifications_sent": {
    "90_days": 15,
    "30_days": 8,
    "7_days": 3
  }
}