63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# 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 <token>" 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._
|