# language: fr

@rgpd @cookies @analytics
Fonctionnalité: Cookies et analytics avec Matomo self-hosted

  # 13.7 - Matomo self-hosted, zéro cookie tiers (souveraineté données)

  Contexte:
    Étant donné que je suis un utilisateur de l'application web RoadWave

  # Liste des cookies utilisés

  Scénario: Cookies strictement nécessaires - pas de consentement requis
    Étant donné que j'accède à l'application web
    Quand je me connecte
    Alors les cookies techniques suivants sont déposés:
      | cookie         | type       | durée | finalité                     | consentement |
      | session        | Technique  | 30j   | Authentification             | Non requis   |
      | refresh_token  | Technique  | 30j   | Session persistante          | Non requis   |
    Et ces cookies sont essentiels au fonctionnement de l'application
    Et ils sont exemptés de consentement selon l'article 82 de la loi Informatique et Libertés

  Scénario: Cookie analytique Matomo - consentement requis
    Étant donné que j'ai accepté le consentement "Analytique"
    Quand je navigue sur l'application web
    Alors le cookie `_pk_id` est déposé
    Et la durée de conservation est de 13 mois
    Et ce cookie sert à Matomo pour analytics
    Et mon IP est automatiquement anonymisée (2 derniers octets)

  Scénario: Refus du consentement analytique - pas de cookie Matomo
    Étant donné que j'ai refusé le consentement "Analytique"
    Quand je navigue sur l'application web
    Alors aucun cookie `_pk_id` n'est déposé
    Et aucune donnée d'usage n'est collectée
    Et l'application fonctionne normalement sans analytics

  # Matomo self-hosted

  Scénario: Matomo hébergé sur les serveurs RoadWave
    Étant donné que RoadWave utilise Matomo pour les analytics
    Quand on analyse l'infrastructure
    Alors Matomo est installé sur les serveurs RoadWave (Docker)
    Et aucune donnée n'est envoyée à un service tiers
    Et toutes les données restent dans l'UE
    Et l'accès à Matomo est restreint à l'équipe RoadWave

  Scénario: IP anonymisées automatiquement
    Étant donné que Matomo collecte des données d'usage
    Quand une requête est enregistrée
    Alors l'adresse IP est automatiquement anonymisée
    Et les 2 derniers octets sont remplacés par des zéros
    Et une IP 192.168.1.100 devient 192.168.0.0
    Et cette anonymisation est irréversible
    Et elle est conforme aux recommandations CNIL

  Scénario: Configuration Matomo conforme RGPD
    Étant donné que Matomo est configuré pour RoadWave
    Quand on vérifie les paramètres
    Alors les configurations suivantes sont activées:
      | paramètre                             | valeur  |
      | Anonymisation IP (2 octets)           | activé  |
      | Respect Do Not Track                  | activé  |
      | Suppression auto anciens logs (25 mois)| activé |
      | Géolocalisation IP désactivée         | activé  |
      | User ID anonymisé                     | activé  |
    Et la configuration est RGPD-compliant

  # Trackers interdits

  Scénario: Aucun tracker tiers utilisé
    Étant donné que j'accède à l'application web
    Quand j'inspecte les requêtes réseau avec les DevTools
    Alors aucune requête n'est envoyée vers les domaines suivants:
      | domaine tiers interdit       |
      | google-analytics.com         |
      | facebook.com (Pixel)         |
      | hotjar.com                   |
      | mixpanel.com                 |
      | segment.io                   |
      | amplitude.com                |
    Et toutes les requêtes analytics vont uniquement vers matomo.roadwave.fr

  Scénario: Conformité zéro cookie tiers
    Étant donné que j'analyse les cookies déposés sur roadwave.fr
    Quand je consulte la liste des cookies
    Alors tous les cookies sont first-party (domaine roadwave.fr)
    Et aucun cookie tiers (third-party) n'est présent
    Et cette politique respecte les recommandations CNIL 2020

  # Alternative: Plausible (si besoin)

  Scénario: Alternative Plausible SaaS (EU-hosted)
    Étant donné que RoadWave pourrait utiliser Plausible au lieu de Matomo
    Quand on compare les deux solutions
    Alors Plausible a les caractéristiques suivantes:
      | caractéristique           | valeur                    |
      | Hébergement               | UE (Allemagne)            |
      | Conformité RGPD           | Natif (pas de cookie)     |
      | Coût                      | 9€/mois (50K pageviews)   |
      | IP anonymisées            | Automatique               |
      | Consentement requis       | Non (selon CNIL 2020)     |
    Mais Matomo self-hosted reste le choix prioritaire (0€, contrôle total)

  # Souveraineté des données

  Scénario: Aucun transfert de données hors UE
    Étant donné que Matomo est self-hosted
    Quand on analyse les flux de données
    Alors aucune donnée d'analytics n'est transférée hors de l'UE
    Et les serveurs sont localisés en France
    Et aucun transfert vers les US (pas de Privacy Shield / DPF requis)
    Et la souveraineté des données est garantie

  # Coût de la solution

  Scénario: Matomo self-hosted - coût estimé
    Étant donné que Matomo est hébergé sur l'infrastructure RoadWave
    Quand on calcule le coût mensuel
    Alors le coût est d'environ 5€/mois:
      | composant                  | coût    |
      | Serveur supplémentaire     | 0€ (mutualisé) |
      | Base de données MySQL      | 0€ (mutualisé) |
      | Stockage logs (25 mois)    | ~5€/mois |
      | License Matomo             | 0€ (opensource) |
    Et ce coût est marginal comparé à un SaaS tiers (9-50€/mois)

  # Respect Do Not Track

  Scénario: Respect du signal Do Not Track (DNT)
    Étant donné que mon navigateur envoie le header "DNT: 1"
    Quand j'accède à l'application web
    Alors Matomo détecte le signal DNT
    Et aucune donnée d'usage n'est collectée
    Et aucun cookie `_pk_id` n'est déposé
    Et l'application fonctionne normalement
    Et un message discret s'affiche: "Vos préférences de confidentialité sont respectées (DNT activé)"

  # Suppression automatique des anciens logs

  Scénario: Logs Matomo supprimés après 25 mois
    Étant donné que Matomo collecte des données d'usage
    Quand les logs atteignent 25 mois d'ancienneté
    Alors un job automatique supprime les anciens logs
    Et seules les données agrégées (rapports) sont conservées
    Et les données brutes (logs) sont supprimées définitivement
    Et cette politique respecte le principe de minimisation RGPD

  # Métriques collectées par Matomo

  Scénario: Données collectées par Matomo
    Étant donné que j'ai accepté le consentement "Analytique"
    Quand je navigue sur l'application web
    Alors Matomo collecte les données suivantes:
      | donnée collectée              | anonymisée |
      | Pages visitées                | non        |
      | Durée de visite               | non        |
      | Navigateur / OS               | non        |
      | Résolution écran              | non        |
      | Provenance (referrer)         | non        |
      | IP (2 derniers octets)        | oui        |
      | User ID (hashé)               | oui        |
    Et aucune donnée personnelle identifiable n'est collectée

  Scénario: User ID hashé pour analytics
    Étant donné que je suis connecté à l'application
    Et que j'ai accepté le consentement "Analytique"
    Quand Matomo enregistre mes actions
    Alors mon user_id est hashé (SHA-256)
    Et le hash est 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
    Et il est impossible de retrouver mon user_id original depuis ce hash
    Et ce processus garantit l'anonymat

  # Conformité CNIL 2020

  Scénario: Conformité recommandations CNIL sur les cookies
    Étant donné que RoadWave utilise Matomo self-hosted
    Quand un auditeur CNIL vérifie la conformité
    Alors le système respecte les recommandations CNIL 2020:
      | recommandation CNIL                        | respecté |
      | Consentement requis pour cookies analytics | oui      |
      | IP anonymisées                             | oui      |
      | Pas de transfert hors UE                   | oui      |
      | Durée conservation limitée (25 mois)       | oui      |
      | Respect Do Not Track                       | oui      |
      | Transparence (liste cookies dans CGU)      | oui      |

  # Tarteaucitron.js - gestion du consentement

  Scénario: Intégration Tarteaucitron.js pour gérer Matomo
    Étant donné que Tarteaucitron.js gère les consentements
    Quand je personnalise mes consentements
    Alors je vois l'option "Analytique (Matomo)"
    Et une description est affichée:
      """
      Matomo nous aide à comprendre comment vous utilisez l'application pour l'améliorer.
      Vos données restent anonymes et ne sont jamais partagées avec des tiers.
      """
    Et je peux activer ou désactiver Matomo indépendamment
    Et si je désactive, le cookie `_pk_id` est supprimé immédiatement

  # Application mobile - analytics

  Scénario: Analytics sur application mobile
    Étant donné que j'utilise l'application mobile
    Quand j'accepte le consentement "Analytique"
    Alors l'app utilise le SDK Matomo Mobile
    Et les données sont envoyées à la même instance Matomo self-hosted
    Et les mêmes règles d'anonymisation s'appliquent
    Et aucun SDK tiers (Google Analytics, Firebase) n'est utilisé

  Scénario: Refus analytics sur mobile
    Étant donné que j'ai refusé le consentement "Analytique" sur mobile
    Quand j'utilise l'application
    Alors aucune donnée d'usage n'est collectée
    Et le SDK Matomo est désactivé
    Et l'application fonctionne normalement sans différence d'UX

  # Opensource et auditabilité

  Scénario: Matomo opensource et auditable
    Étant donné que Matomo est opensource
    Quand on consulte le code source
    Alors le code est disponible publiquement sur GitHub
    Et le code peut être audité par des experts indépendants
    Et aucune backdoor ou collecte cachée n'est possible
    Et cette transparence renforce la confiance utilisateur
