diff --git a/docs/domains/_shared/sequences/account-deletion.md b/docs/domains/_shared/sequences/account-deletion.md deleted file mode 100644 index 5f18bfd..0000000 --- a/docs/domains/_shared/sequences/account-deletion.md +++ /dev/null @@ -1,48 +0,0 @@ -# Séquence - Suppression de compte - -## Diagramme - -```mermaid -sequenceDiagram - participant U as Utilisateur - participant API as Backend API - participant DB as PostgreSQL - participant E as Email - participant J as Job Quotidien - - U->>API: DELETE /account (demande suppression) - API->>DB: UPDATE account_status=grace_period - API->>DB: UPDATE deletion_requested_at=NOW() - API->>DB: UPDATE sessions.revoked_at=NOW() (toutes) - API->>DB: UPDATE contents (cachés, non diffusés) - API->>E: Email avec lien annulation (30j) - API-->>U: Compte désactivé - - alt Utilisateur change d'avis - U->>API: GET /account/cancel-deletion (lien email) - API->>DB: UPDATE account_status=active - API->>DB: UPDATE deletion_requested_at=NULL - API->>DB: Réactivation contenus - API->>E: Email confirmation annulation - API-->>U: Compte réactivé - else Après 30 jours - J->>DB: SELECT users WHERE grace_period > 30j - J->>DB: UPDATE account_status=deleted - J->>DB: Anonymisation données (email, pseudo...) - J->>DB: UPDATE contents.creator="Utilisateur supprimé" - J->>DB: DELETE listening_history, location_history, sessions - J->>DB: Conservation contenus anonymisés - J-->>DB: Suppression complète - end -``` - -## Légende - -**Grace period** : 30 jours pour annuler -**Annulation** : Via lien email unique -**Anonymisation** : -- Données perso supprimées (email, pseudo, GPS...) -- Contenus conservés anonymes (intérêt communauté) -- Irréversible après 30j - -**Alternative** : Purge auto inactivité 5 ans (notifications 90j/30j/7j avant) diff --git a/docs/domains/_shared/sequences/data-export.md b/docs/domains/_shared/sequences/data-export.md deleted file mode 100644 index a3216b4..0000000 --- a/docs/domains/_shared/sequences/data-export.md +++ /dev/null @@ -1,49 +0,0 @@ -# Séquence - Export de données RGPD - -## Diagramme - -```mermaid -sequenceDiagram - participant U as Utilisateur - participant API as Backend API - participant DB as PostgreSQL - participant W as Worker - participant S as OVH Storage - participant E as Email - - U->>API: POST /exports (demande) - API->>DB: Vérification limite (1/mois) - API->>DB: INSERT export (status=pending) - API->>W: Job asynchrone - API-->>U: Export en préparation - - W->>DB: Collecte données (profil, écoutes, contenus...) - W->>W: Génération JSON + HTML - - loop Contenus audio - W->>DB: SELECT audio_url - W->>W: Copie fichier - end - - W->>W: Création ZIP - W->>S: Upload fichier - S-->>W: URL signée (7j) - - W->>DB: UPDATE export (status=ready, url, size) - W->>E: Email avec lien download - E-->>U: Export prêt (expire 7j) - - U->>S: GET /export-signed-url - S-->>U: Téléchargement ZIP - - Note over DB: Job quotidien - DB->>S: DELETE exports expirés (> 7j) -``` - -## Légende - -**Conformité RGPD** : Délai max 48h (Article 20) -**Format** : ZIP (JSON machine-readable + HTML human-readable + audio) -**Limite** : 1 export/mois -**Expiration** : 7 jours calendaires -**Sécurité** : URL signée unique diff --git a/mkdocs.yml b/mkdocs.yml index d593547..8a2b997 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -149,10 +149,8 @@ nav: - Refresh Token: domains/_shared/sequences/token-refresh.md - Modération Contenu: domains/_shared/sequences/content-moderation.md - Signalement: domains/_shared/sequences/content-report.md - - Export Données: domains/_shared/sequences/data-export.md - - Export Données (RGPD): domains/_shared/sequences/export-donnees.md - - Suppression Compte: domains/_shared/sequences/account-deletion.md - - Suppression Compte (RGPD): domains/_shared/sequences/suppression-compte.md + - Export Données: domains/_shared/sequences/export-donnees.md + - Suppression Compte: domains/_shared/sequences/suppression-compte.md - Consentement Parental: domains/_shared/sequences/consentement-parental.md - Anonymisation GPS: domains/_shared/sequences/anonymisation-gps.md - Notification Breach: domains/_shared/sequences/notification-breach.md