- Ajouter ADR-018 (librairies Go) dans TECHNICAL.md - Transformer Shared en menu dépliable dans mkdocs (cohérence avec autres domaines) - Corriger listes markdown (ajout lignes vides avant listes) - Corriger line breaks dans génération BDD (étapes "Et" sur nouvelles lignes) - Ajouter script fix-markdown-lists.sh pour corrections futures Impacte 86 fichiers de documentation et 164 fichiers BDD générés.
67 lines
2.2 KiB
Markdown
67 lines
2.2 KiB
Markdown
# Export de données (portabilité)
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant User as Utilisateur
|
|
participant App as Application
|
|
participant DB as Base de données
|
|
participant Queue as File d'attente
|
|
participant Worker as Worker Background
|
|
participant CDN as CDN (fichiers audio)
|
|
participant Storage as Stockage temporaire
|
|
participant Email as Service Email
|
|
|
|
User->>App: Demande export données
|
|
|
|
App->>DB: Vérifier dernière demande
|
|
alt Dernière demande < 30 jours
|
|
DB->>App: Demande refusée
|
|
App->>User: "Prochain export disponible dans X jours"
|
|
else Demande autorisée
|
|
App->>DB: Créer demande export (statut: pending)
|
|
App->>Queue: Ajouter job export
|
|
App->>User: "Export en cours, email sous 48h"
|
|
|
|
Queue->>Worker: Job export disponible
|
|
|
|
Note over Worker: Génération asynchrone
|
|
|
|
Worker->>DB: Récupérer profil utilisateur
|
|
Worker->>DB: Récupérer historique d'écoute
|
|
Worker->>DB: Récupérer contenus créés (métadonnées)
|
|
Worker->>DB: Récupérer centres d'intérêt
|
|
Worker->>DB: Récupérer historique consentements
|
|
|
|
Worker->>CDN: Télécharger fichiers audio utilisateur
|
|
CDN->>Worker: Fichiers audio (.opus)
|
|
|
|
Worker->>Worker: Générer export.json (machine-readable)
|
|
Worker->>Worker: Générer index.html (human-readable)
|
|
Worker->>Worker: Générer README.txt
|
|
Worker->>Worker: Créer archive ZIP
|
|
|
|
Worker->>Storage: Stocker ZIP (expire 7j)
|
|
Storage->>Worker: URL signée (expire 7j)
|
|
|
|
Worker->>DB: Mettre à jour demande (statut: completed)
|
|
Worker->>DB: Enregistrer URL + date expiration
|
|
|
|
Worker->>Email: Envoyer email avec lien
|
|
Email->>User: Email + lien téléchargement (valide 7j)
|
|
|
|
User->>Storage: Clic lien téléchargement
|
|
Storage->>User: Téléchargement ZIP
|
|
|
|
Note over Storage: Après 7 jours
|
|
|
|
Storage->>Storage: Suppression automatique ZIP
|
|
end
|
|
```
|
|
|
|
**Légende** :
|
|
|
|
- Limite : 1 export / 30 jours (anti-abus)
|
|
- Délai génération : 48h maximum (conformité RGPD Article 20)
|
|
- Expiration lien : 7 jours
|
|
- Format : ZIP contenant JSON, HTML, audio, README
|