Files
roadwave/docs/domains/_shared/sequences/export-donnees.md
jpgiannetti 35aaa105d0 docs: améliorer rendu markdown et navigation mkdocs
- 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.
2026-02-09 20:49:52 +01:00

2.2 KiB

Export de données (portabilité)

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