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
57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# Data Retention Logs
|
|
|
|
📖 Logs purges automatiques inactivité (Article 5 RGPD - Minimisation)
|
|
|
|
## Diagramme
|
|
|
|
```kroki-dbml
|
|
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** :
|
|
```json
|
|
{
|
|
"threshold_date": "2021-02-08",
|
|
"user_ids_deleted": ["uuid1", "uuid2"],
|
|
"notifications_sent": {
|
|
"90_days": 15,
|
|
"30_days": 8,
|
|
"7_days": 3
|
|
}
|
|
}
|
|
```
|