Files
roadwave/docs/domains/_shared/sequences/suppression-compte.md
jpgiannetti fd2b0f70c5 feat(rgpd): compléter documentation RGPD avec 12 nouvelles sections
Règles RGPD (docs/domains/_shared/rules/rgpd.md):
- Ajouter sections 13.11-13.22 (droits utilisateurs, mineurs, sécurité)
- Droit de rectification, opposition, limitation du traitement
- Gestion des mineurs: 13 ans minimum + consentement parental 13-15 ans
- Protection renforcée: RoadWave Kids pour < 13 ans
- Sécurité: chiffrement multi-niveaux, procédure breach 72h CNIL
- Politique de confidentialité avec versioning
- Sous-traitants, DPIA, délais de réponse

Entités (6 nouvelles):
- PARENTAL_CONSENTS + PARENTAL_CONTROLS (workflow 13-15 ans)
- PRIVACY_POLICY_VERSIONS + USER_POLICY_ACCEPTANCES
- ACCOUNT_DELETIONS (grace period 30j)
- BREACH_INCIDENTS + BREACH_AFFECTED_USERS
- USER_PROFILE_HISTORY (audit trail rectification)
- DATA_RETENTION_LOGS (purge 5 ans)

Diagrammes séquences (5 nouveaux):
- Consentement parental avec validation email
- Anonymisation GPS automatique après 24h
- Notification breach CNIL (procédure 72h)
- Export données asynchrone
- Suppression compte avec grace period

Cycles de vie (3 nouveaux + 1 enrichi):
- parental-consent-lifecycle.md
- breach-incident-lifecycle.md
- account-deletion-lifecycle.md
- user-account-lifecycle.md (ajout états mineurs, frozen)

Features BDD (4 nouvelles, 195 scénarios RGPD):
- minors-protection.feature (9 scénarios)
- data-security.feature (12 scénarios)
- privacy-policy.feature (8 scénarios)
- user-rights.feature (8 scénarios)

Infrastructure:
- Réorganiser docs générées: docs/bdd + output → generated/bdd + generated/pdf
- Mettre à jour mkdocs.yml, Makefile, scripts Python
- Ajouter /generated/ au .gitignore
2026-02-08 17:49:12 +01:00

1.8 KiB

Suppression compte avec grace period

sequenceDiagram
    participant User as Utilisateur
    participant App as Application
    participant DB as Base de données
    participant Email as Service Email
    participant Cron as Job Cron

    User->>App: Demande suppression compte
    App->>User: Confirmation (êtes-vous sûr ?)
    User->>App: Confirmer

    App->>DB: Désactiver compte (statut: pending_deletion)
    App->>DB: Cacher contenus (visible: false)
    App->>DB: Révoquer sessions/tokens
    App->>DB: Enregistrer date suppression effective (J+30)

    App->>Email: Email confirmation + lien annulation
    Email->>User: Email (lien valide 30j)
    App->>User: "Compte désactivé. Suppression dans 30 jours."

    Note over User,App: Grace period 30 jours

    alt Utilisateur annule
        User->>App: Clic lien annulation
        App->>DB: Réactiver compte (statut: active)
        App->>DB: Restaurer visibilité contenus
        App->>Email: Email confirmation réactivation
        Email->>User: "Compte réactivé"
    else 30 jours sans annulation
        Cron->>DB: Job quotidien (vérif comptes pending_deletion)
        DB->>Cron: Liste comptes J+30 dépassé

        loop Pour chaque compte
            Cron->>DB: Supprimer données personnelles
            Cron->>DB: Anonymiser contenus (créateur: "Utilisateur supprimé")
            Cron->>DB: Supprimer historique GPS/écoute
            Cron->>DB: Marquer statut: deleted
        end

        Cron->>Email: Email confirmation suppression effective
        Email->>User: "Compte définitivement supprimé"
    end

Légende :

  • Grace period : 30 jours
  • Pendant grace period : compte inaccessible, contenus cachés
  • Après 30j : suppression définitive, contenus anonymisés conservés