Initial commit
This commit is contained in:
245
features/rgpd-compliance/conservation-donnees.feature
Normal file
245
features/rgpd-compliance/conservation-donnees.feature
Normal file
@@ -0,0 +1,245 @@
|
||||
# language: fr
|
||||
|
||||
@rgpd @data-retention
|
||||
Fonctionnalité: Durée de conservation des données et purge automatique
|
||||
|
||||
# 13.6 - 5 ans inactivité → purge automatique (principe de minimisation RGPD)
|
||||
|
||||
Contexte:
|
||||
Étant donné que le système de purge automatique est actif
|
||||
|
||||
# Règles de conservation
|
||||
|
||||
Scénario: Auditeur inactif depuis 5 ans - suppression automatique
|
||||
Étant donné que je suis un auditeur (sans contenu créé)
|
||||
Et que je ne me suis pas connecté depuis le 2020-01-01
|
||||
Et que la date actuelle est 2025-01-02 (>5 ans)
|
||||
Quand le job de purge automatique s'exécute
|
||||
Alors mon compte est automatiquement supprimé
|
||||
Et toutes mes données personnelles sont effacées
|
||||
Et aucune trace ne subsiste dans la base de données
|
||||
|
||||
Scénario: Créateur avec contenus actifs - conservation indéfinie
|
||||
Étant donné que je suis un créateur
|
||||
Et que j'ai créé 10 contenus qui reçoivent encore des écoutes
|
||||
Et que je ne me suis pas connecté depuis 6 ans
|
||||
Quand le job de purge automatique s'exécute
|
||||
Alors mon compte n'est pas supprimé
|
||||
Et mes données personnelles sont conservées tant que mes contenus sont écoutés
|
||||
Et mes contenus continuent d'être diffusés normalement
|
||||
|
||||
Scénario: Créateur inactif sans écoutes - suppression automatique
|
||||
Étant donné que je suis un créateur
|
||||
Et que j'ai créé 5 contenus
|
||||
Et que je ne me suis pas connecté depuis 5 ans (depuis 2020-01-01)
|
||||
Et que mes contenus n'ont reçu aucune écoute depuis 2 ans (depuis 2023-01-01)
|
||||
Et que la date actuelle est 2025-01-02
|
||||
Quand le job de purge automatique s'exécute
|
||||
Alors mon compte est automatiquement supprimé
|
||||
Et mes contenus sont anonymisés (créateur = "Utilisateur supprimé")
|
||||
Et les fichiers audio restent disponibles mais anonymisés
|
||||
|
||||
# Notifications avant suppression
|
||||
|
||||
Scénario: Notifications par email avant purge
|
||||
Étant donné que je suis inactif depuis 4 ans et 9 mois
|
||||
Quand le système détecte que je suis éligible à la purge dans 90 jours
|
||||
Alors je reçois un email avec le sujet "Votre compte RoadWave sera supprimé dans 90 jours"
|
||||
Et l'email contient:
|
||||
"""
|
||||
Bonjour,
|
||||
|
||||
Votre compte RoadWave n'a pas été utilisé depuis plus de 4 ans.
|
||||
Conformément à notre politique de conservation des données, votre compte sera automatiquement supprimé dans 90 jours si vous ne vous connectez pas.
|
||||
|
||||
Pour conserver votre compte, il suffit de vous connecter avant le [date limite].
|
||||
|
||||
Date de dernière connexion: [date]
|
||||
Date de suppression prévue: [date + 90j]
|
||||
|
||||
Si vous ne souhaitez pas conserver ce compte, aucune action n'est requise.
|
||||
"""
|
||||
Et un lien de connexion est inclus dans l'email
|
||||
|
||||
Scénario: Rappels à 90j, 30j et 7j avant suppression
|
||||
Étant donné que je suis éligible à la purge automatique
|
||||
Quand les délais s'écoulent
|
||||
Alors je reçois les emails suivants:
|
||||
| délai | sujet email |
|
||||
| 90 jours | Votre compte sera supprimé dans 90 jours |
|
||||
| 30 jours | Rappel: Votre compte sera supprimé dans 30 jours |
|
||||
| 7 jours | Dernière alerte: suppression dans 7 jours |
|
||||
Et chaque email contient un lien de connexion pour réactiver le compte
|
||||
Et les notifications push sont également envoyées si activées
|
||||
|
||||
Scénario: Connexion annule la suppression programmée
|
||||
Étant donné que je suis éligible à la purge dans 15 jours
|
||||
Et que j'ai reçu plusieurs emails d'avertissement
|
||||
Quand je me connecte à mon compte
|
||||
Alors la suppression programmée est annulée immédiatement
|
||||
Et le compteur d'inactivité est remis à zéro
|
||||
Et je reçois un email de confirmation: "Votre compte a été réactivé"
|
||||
Et je peux continuer à utiliser l'application normalement
|
||||
|
||||
# Job de purge automatique
|
||||
|
||||
Scénario: Exécution quotidienne du job de purge
|
||||
Étant donné que le système est en production
|
||||
Quand on consulte les jobs planifiés
|
||||
Alors un job "purge_inactive_accounts" est configuré
|
||||
Et le job s'exécute tous les jours à 03:00 (heure creuse)
|
||||
Et le job identifie les comptes éligibles à la purge
|
||||
Et le job traite les suppressions automatiques
|
||||
|
||||
Scénario: Critères d'éligibilité à la purge
|
||||
Étant donné que le job de purge s'exécute
|
||||
Quand le système identifie les comptes éligibles
|
||||
Alors les critères suivants sont appliqués:
|
||||
| type_compte | critères |
|
||||
| Auditeur uniquement | 5 ans sans connexion |
|
||||
| Créateur avec contenus actifs| Jamais (tant qu'écoutes) |
|
||||
| Créateur inactif | 5 ans sans connexion + 2 ans sans écoute |
|
||||
Et seuls les comptes remplissant tous les critères sont supprimés
|
||||
|
||||
Scénario: Métriques du job de purge
|
||||
Étant donné que le job de purge s'exécute le 2025-01-15
|
||||
Quand le job se termine
|
||||
Alors un rapport est généré avec:
|
||||
| métrique | exemple |
|
||||
| Comptes analysés | 150 000 |
|
||||
| Comptes éligibles à la purge | 350 |
|
||||
| Auditeurs supprimés | 300 |
|
||||
| Créateurs inactifs supprimés | 50 |
|
||||
| Créateurs conservés (actifs) | 0 |
|
||||
| Erreurs | 0 |
|
||||
| Durée d'exécution | 45s |
|
||||
Et le rapport est loggé pour audit
|
||||
|
||||
# Contenus conservés après purge
|
||||
|
||||
Scénario: Contenus de comptes purgés conservés anonymement
|
||||
Étant donné que mon compte créateur est purgé automatiquement
|
||||
Quand la suppression est effective
|
||||
Alors mes contenus créés sont conservés indéfiniment
|
||||
Et les contenus sont anonymisés (créateur = "Utilisateur supprimé")
|
||||
Et les fichiers audio restent sur le CDN
|
||||
Et les statistiques d'écoute sont préservées
|
||||
Et les utilisateurs peuvent toujours écouter mes contenus
|
||||
|
||||
# Exception: créateurs avec écoutes régulières
|
||||
|
||||
Scénario: Créateur inactif mais contenus populaires - pas de purge
|
||||
Étant donné que je suis un créateur inactif depuis 6 ans
|
||||
Mais que mes contenus reçoivent 500+ écoutes par mois
|
||||
Quand le job de purge s'exécute
|
||||
Alors mon compte n'est pas supprimé
|
||||
Et je continue de recevoir les emails d'avertissement tous les 6 mois
|
||||
Et mes contenus continuent d'être diffusés
|
||||
Et je peux me reconnecter à tout moment
|
||||
|
||||
# Définition de "écoute" pour les créateurs
|
||||
|
||||
Scénario: Qu'est-ce qu'une "écoute" pour le calcul d'inactivité
|
||||
Étant donné que je suis un créateur
|
||||
Quand le système calcule si mes contenus sont "actifs"
|
||||
Alors une "écoute" est comptabilisée si:
|
||||
| condition | comptabilisée |
|
||||
| Écoute complète (>80%) | oui |
|
||||
| Écoute partielle (>30%) | oui |
|
||||
| Skip rapide (<30%) | non |
|
||||
| Écoute par un bot (détecté) | non |
|
||||
Et au moins 1 écoute valide dans les 2 dernières années maintient le compte actif
|
||||
|
||||
# Principe de minimisation RGPD
|
||||
|
||||
Scénario: Conformité principe de minimisation
|
||||
Étant donné que le système de purge automatique est en place
|
||||
Quand un auditeur RGPD vérifie la conformité
|
||||
Alors le système respecte le principe de minimisation:
|
||||
| principe | respecté |
|
||||
| Conservation limitée dans le temps | oui |
|
||||
| Suppression automatique après inactivité | oui |
|
||||
| Délai raisonnable (5 ans) | oui |
|
||||
| Notifications préalables | oui |
|
||||
| Exception justifiée (contenus actifs) | oui |
|
||||
Et le délai de 5 ans est conforme aux standards de l'industrie
|
||||
|
||||
# Reset du compteur d'inactivité
|
||||
|
||||
Scénario: Actions qui réinitialisent le compteur d'inactivité
|
||||
Étant donné que je suis inactif depuis 4 ans
|
||||
Quand j'effectue l'une des actions suivantes:
|
||||
| action |
|
||||
| Connexion à l'application |
|
||||
| Publication d'un nouveau contenu |
|
||||
| Like d'un contenu |
|
||||
| Abonnement à un créateur |
|
||||
| Modification de mon profil |
|
||||
Alors le compteur d'inactivité est remis à zéro
|
||||
Et la suppression programmée est annulée
|
||||
Et je ne suis plus éligible à la purge pour 5 ans
|
||||
|
||||
# Logs d'audit
|
||||
|
||||
Scénario: Traçabilité des suppressions automatiques
|
||||
Étant donné qu'un compte est supprimé automatiquement
|
||||
Quand la suppression est effective
|
||||
Alors un log d'audit est créé avec:
|
||||
| champ | valeur |
|
||||
| user_id | [ID anonymisé] |
|
||||
| account_type | auditeur / créateur |
|
||||
| last_login | 2020-01-15T10:00:00Z |
|
||||
| last_content_listen | 2023-06-01T14:30:00Z |
|
||||
| purge_date | 2025-01-15T03:00:00Z |
|
||||
| notifications_sent | 3 (90j, 30j, 7j) |
|
||||
| reason | 5_years_inactivity |
|
||||
Et le log est conservé 5 ans pour audit RGPD
|
||||
Et l'user_id est pseudonymisé pour anonymat
|
||||
|
||||
# Cas particuliers
|
||||
|
||||
Scénario: Compte Premium inactif - pas de privilège spécial
|
||||
Étant donné que je suis un utilisateur Premium
|
||||
Et que je suis inactif depuis 5 ans
|
||||
Quand le job de purge s'exécute
|
||||
Alors mon compte est supprimé comme un compte gratuit
|
||||
Et l'abonnement Premium ne prolonge pas la durée de conservation
|
||||
Et aucun remboursement n'est effectué (compte inactif depuis 5 ans)
|
||||
|
||||
Scénario: Compte avec signalements de modération - purge différée
|
||||
Étant donné que je suis éligible à la purge
|
||||
Mais que j'ai des signalements de modération en cours
|
||||
Quand le job de purge s'exécute
|
||||
Alors ma purge est différée de 90 jours
|
||||
Et les signalements sont traités en priorité
|
||||
Et si les signalements aboutissent à un ban, le compte est supprimé immédiatement
|
||||
Et si les signalements sont infondés, la purge automatique reprend son cours
|
||||
|
||||
# Durée de 5 ans - justification
|
||||
|
||||
Scénario: Pourquoi 5 ans d'inactivité
|
||||
Étant donné que le délai de purge est fixé à 5 ans
|
||||
Quand on justifie ce choix
|
||||
Alors les raisons suivantes sont avancées:
|
||||
| justification |
|
||||
| Standard de l'industrie (Google, Facebook: 2-3 ans) |
|
||||
| Équilibre raisonnable entre minimisation et utilité |
|
||||
| Conforme aux recommandations CNIL |
|
||||
| Laisse une marge de réactivation pour utilisateurs |
|
||||
| Exception pour créateurs = intérêt légitime communauté |
|
||||
|
||||
# Communication transparente
|
||||
|
||||
Scénario: Politique de conservation visible dans les CGU
|
||||
Étant donné que je consulte les CGU de RoadWave
|
||||
Quand je lis la section "Conservation des données"
|
||||
Alors la politique de purge automatique est clairement expliquée:
|
||||
"""
|
||||
Conservation des données:
|
||||
- Comptes auditeurs: suppression automatique après 5 ans d'inactivité
|
||||
- Comptes créateurs: suppression après 5 ans d'inactivité + 2 ans sans écoute de leurs contenus
|
||||
- Exception: créateurs dont les contenus sont encore écoutés régulièrement
|
||||
- Notifications: 90j, 30j et 7j avant suppression
|
||||
- Contenus créés: conservés de manière anonyme après suppression du compte
|
||||
"""
|
||||
Et les utilisateurs sont informés dès l'inscription
|
||||
Reference in New Issue
Block a user