# Vérification RGPD/CCPA — v0.982 **Date** : 2026-03-03 **Environnement** : Staging **Référence** : ROADMAP v0.982 — Critère de release --- ## Endpoints à vérifier | # | Endpoint | Méthode | Description | Statut | |---|----------|---------|-------------|--------| | 1 | `/api/v1/users/me/export` | POST | Export des données personnelles (RGPD Art. 20) | [ ] | | 2 | `/api/v1/users/me` | DELETE | Suppression de compte et anonymisation (RGPD Art. 17) | [ ] | | 3 | `/api/v1/users/me/privacy/opt-out` | POST | Opt-out CCPA (Do Not Sell) | [ ] | --- ## Checklist de vérification ### 1. Export des données (POST /users/me/export) - [ ] L'endpoint retourne un ZIP contenant toutes les données utilisateur - [ ] Format du ZIP : JSON ou CSV structuré par catégorie (profil, tracks, playlists, etc.) - [ ] Délai raisonnable (< 30 jours selon RGPD) - [ ] Authentification requise (JWT valide) - [ ] Test manuel : `curl -X POST -H "Authorization: Bearer " https://staging.../api/v1/users/me/export -o export.zip` ### 2. Suppression de compte (DELETE /users/me) - [ ] Les données personnelles sont anonymisées (email → `deleted-{uuid}@veza.local`, username → `deleted_user`) - [ ] Les fichiers S3 associés sont supprimés ou marqués pour suppression - [ ] Les sessions sont invalidées (tokens révoqués) - [ ] Rétention légale : les logs/audit peuvent conserver des références pendant la durée légale - [ ] Test manuel : créer compte → supprimer → vérifier en DB que les données sont anonymisées - [ ] Vérifier que les tracks/uploads ne sont plus accessibles ### 3. Opt-out CCPA (POST /users/me/privacy/opt-out) - [ ] L'opt-out est enregistré en base (table `user_preferences` ou équivalent) - [ ] Le flag `ccpa_opt_out` ou `do_not_sell` est persisté - [ ] Les services de vente de données respectent ce flag - [ ] Test manuel : POST opt-out → GET profil → vérifier que le flag est présent --- ## Procédure de test (staging) 1. **Créer un compte de test** avec données connues 2. **Exporter** : POST /users/me/export, télécharger ZIP, vérifier contenu 3. **Opt-out** : POST /users/me/privacy/opt-out, vérifier en DB 4. **Supprimer** : DELETE /users/me (avec token valide) 5. **Vérifier** : requête directe en DB pour confirmer anonymisation ; vérifier S3 (fichiers supprimés ou inaccessibles) --- ## Résultat v0.982 | Critère | PASS/FAIL | Notes | |---------|-----------|-------| | Export produit ZIP complet | | | | Suppression anonymise les données | | | | Suppression supprime fichiers S3 | | | | Opt-out enregistré | | | _À remplir après exécution des tests sur staging._ --- ## Résultat v1.0.2 | Critère | PASS/FAIL | Notes | |---------|-----------|-------| | Export produit ZIP complet | PASS | POST /api/v1/users/me/export — ZIP structuré (profil, tracks, playlists) | | Suppression anonymise les données | PASS | DELETE /users/me — email→deleted-{uuid}@veza.local, username→deleted_user | | Suppression supprime fichiers S3 | PASS | DataExportService, CloudService — fichiers marqués/supprimés | | Opt-out enregistré | PASS | POST /users/me/privacy/opt-out — user_preferences.ccpa_opt_out |