Règles RGPD (docs/domains/_shared/rules/rgpd.md): - Ajouter sections 13.11-13.22 (droits utilisateurs, mineurs, sécurité) - Droit de rectification, opposition, limitation du traitement - Gestion des mineurs: 13 ans minimum + consentement parental 13-15 ans - Protection renforcée: RoadWave Kids pour < 13 ans - Sécurité: chiffrement multi-niveaux, procédure breach 72h CNIL - Politique de confidentialité avec versioning - Sous-traitants, DPIA, délais de réponse Entités (6 nouvelles): - PARENTAL_CONSENTS + PARENTAL_CONTROLS (workflow 13-15 ans) - PRIVACY_POLICY_VERSIONS + USER_POLICY_ACCEPTANCES - ACCOUNT_DELETIONS (grace period 30j) - BREACH_INCIDENTS + BREACH_AFFECTED_USERS - USER_PROFILE_HISTORY (audit trail rectification) - DATA_RETENTION_LOGS (purge 5 ans) Diagrammes séquences (5 nouveaux): - Consentement parental avec validation email - Anonymisation GPS automatique après 24h - Notification breach CNIL (procédure 72h) - Export données asynchrone - Suppression compte avec grace period Cycles de vie (3 nouveaux + 1 enrichi): - parental-consent-lifecycle.md - breach-incident-lifecycle.md - account-deletion-lifecycle.md - user-account-lifecycle.md (ajout états mineurs, frozen) Features BDD (4 nouvelles, 195 scénarios RGPD): - minors-protection.feature (9 scénarios) - data-security.feature (12 scénarios) - privacy-policy.feature (8 scénarios) - user-rights.feature (8 scénarios) Infrastructure: - Réorganiser docs générées: docs/bdd + output → generated/bdd + generated/pdf - Mettre à jour mkdocs.yml, Makefile, scripts Python - Ajouter /generated/ au .gitignore
100 lines
4.3 KiB
Gherkin
100 lines
4.3 KiB
Gherkin
# language: fr
|
|
|
|
@privacy @rgpd @transparency
|
|
Fonctionnalité: Politique de confidentialité et transparence (Articles 13-14 RGPD)
|
|
En tant qu'utilisateur
|
|
Je veux comprendre comment mes données sont utilisées
|
|
Afin de donner un consentement éclairé
|
|
|
|
Contexte:
|
|
Étant donné que l'application RoadWave est disponible
|
|
|
|
# Popup première connexion
|
|
@first-launch
|
|
Scénario: Affichage de la politique de confidentialité à l'inscription
|
|
Quand je m'inscris pour la première fois
|
|
Alors une popup s'affiche avec la politique de confidentialité
|
|
Et je dois scroller jusqu'en bas pour activer le bouton "J'accepte"
|
|
Et je dois cocher "J'ai lu et j'accepte la politique de confidentialité"
|
|
Et je ne peux pas créer de compte sans accepter
|
|
|
|
# Contenu obligatoire
|
|
@content
|
|
Scénario: Vérification du contenu de la politique de confidentialité
|
|
Quand je consulte la page "roadwave.fr/confidentialite"
|
|
Alors je vois les informations suivantes:
|
|
| Section |
|
|
| Identité responsable traitement + DPO |
|
|
| Finalités détaillées par traitement |
|
|
| Base légale (consentement/contrat/intérêt)|
|
|
| Destinataires données (CDN, Matomo, etc.) |
|
|
| Durées de conservation |
|
|
| Droits utilisateurs (accès, rectif, etc.) |
|
|
| Droit réclamation CNIL |
|
|
| Transferts hors UE (aucun) |
|
|
|
|
# Versioning
|
|
@versioning
|
|
Scénario: Versioning de la politique avec Git et DB
|
|
Étant donné que la politique de confidentialité est modifiée
|
|
Quand l'équipe commit les changements
|
|
Alors le fichier "docs/legal/politique-confidentialite.md" est versionné Git
|
|
Et une entrée est créée dans "privacy_policy_versions"
|
|
Avec les champs:
|
|
| Champ | Valeur |
|
|
| version | "2.0" |
|
|
| effective_date| "2026-03-01" |
|
|
| major_change | true |
|
|
| changelog | "Ajout tracking..." |
|
|
|
|
@versioning
|
|
Scénario: Notification utilisateurs si changement majeur
|
|
Étant donné qu'une nouvelle version majeure de la politique est publiée
|
|
Quand un utilisateur se connecte
|
|
Alors une popup s'affiche "Politique de confidentialité mise à jour"
|
|
Et il doit l'accepter à nouveau pour continuer
|
|
Et s'il refuse, son compte est gelé (accès lecture seule)
|
|
|
|
# Transparence algorithme
|
|
@algorithm-transparency
|
|
Scénario: Explication simplifiée de l'algorithme de recommandation
|
|
Quand je vais sur "roadwave.fr/comment-ca-marche"
|
|
Alors je vois une page "Comment fonctionne la recommandation ?"
|
|
Avec les explications suivantes:
|
|
| Critère | Explication |
|
|
| Distance géographique | Contenus près de vous en priorité |
|
|
| Centres d'intérêt | Jauges automatiques selon écoutes |
|
|
| Popularité | Contenus les plus écoutés |
|
|
Et je peux désactiver la personnalisation (mode anonyme)
|
|
|
|
# Contact DPO
|
|
@dpo-contact
|
|
Scénario: Accès facile au contact DPO
|
|
Quand je vais dans "Paramètres > Confidentialité et données"
|
|
Alors je vois un bouton "Contacter le DPO"
|
|
Et le lien email "dpo@roadwave.fr" est cliquable
|
|
Et je vois "Délai de réponse : 1 mois maximum"
|
|
|
|
# Profilage et décisions automatisées
|
|
@profiling
|
|
Scénario: Information sur le profilage et opposition possible
|
|
Quand je consulte la politique de confidentialité
|
|
Alors je vois une section "Profilage et décisions automatisées"
|
|
Qui explique:
|
|
| Type décision | Impact | Opposition possible |
|
|
| Recommandations | Faible | Oui (mode anonyme) |
|
|
| Modération automatique| Élevé | Oui (contestation) |
|
|
Et je peux activer le mode anonyme à tout moment
|
|
|
|
# Sous-traitants
|
|
@subprocessors
|
|
Scénario: Liste transparente des sous-traitants
|
|
Quand je consulte "roadwave.fr/confidentialite#sous-traitants"
|
|
Alors je vois la liste complète:
|
|
| Service | Finalité | Localisation | DPA |
|
|
| OVH | Hébergement | France | ✅ |
|
|
| Bunny.net | CDN audio | UE | ✅ |
|
|
| Brevo | Emails | France | ✅ |
|
|
| Mangopay | Paiements | Luxembourg | ✅ |
|
|
Et je vois "Aucun transfert hors UE"
|