- Entités: 7 nouveaux schémas (sessions, devices, consents, location-history, interest-gauges, reports, exports) - États: 5 diagrammes lifecycles (compte, contenu, session, signalement, export) - Séquences: 6 flows (auth, refresh token, modération, signalement, export, suppression) - Renommage: modele-global.md → entities-overview.md - MkDocs: organisation hiérarchique par catégories Format concis: diagrammes Mermaid + règles essentielles uniquement
50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# 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
|