Files
roadwave/docs/domains/_shared/sequences/anonymisation-gps.md
jpgiannetti 35aaa105d0 docs: améliorer rendu markdown et navigation mkdocs
- Ajouter ADR-018 (librairies Go) dans TECHNICAL.md
- Transformer Shared en menu dépliable dans mkdocs (cohérence avec autres domaines)
- Corriger listes markdown (ajout lignes vides avant listes)
- Corriger line breaks dans génération BDD (étapes "Et" sur nouvelles lignes)
- Ajouter script fix-markdown-lists.sh pour corrections futures

Impacte 86 fichiers de documentation et 164 fichiers BDD générés.
2026-02-09 20:49:52 +01:00

2.0 KiB

Anonymisation automatique GPS après 24h

sequenceDiagram
    participant User as Utilisateur
    participant App as Application
    participant DB as Base de données (PostGIS)
    participant Cron as Job Cron Quotidien

    Note over User,App: Écoute de contenu avec GPS

    User->>App: Écoute contenu (GPS activé)
    App->>App: Capturer position GPS précise
    App->>DB: INSERT position (lat, lon, anonymized: false)
    Note over DB: Position précise stockée<br/>Utilisée pour recommandations

    Note over DB,Cron: Moins de 24h : position précise conservée

    App->>DB: SELECT positions pour recommandations
    DB->>App: Positions GPS précises (< 24h)
    App->>User: Recommandations hyperlocales

    Note over Cron: 24h+ plus tard

    Cron->>DB: SELECT positions WHERE created_at < NOW() - 24h AND anonymized = false
    DB->>Cron: Liste positions à anonymiser

    loop Pour chaque position
        Cron->>DB: Convertir (lat, lon) → geohash précision 5 (~5km²)
        Cron->>DB: UPDATE position avec geohash
        Cron->>DB: Supprimer coordonnées précises
        Cron->>DB: SET anonymized = true
    end

    Cron->>DB: Log anonymisation (nombre positions traitées)

    Note over DB: Positions anonymisées utilisées pour analytics

    App->>DB: SELECT positions anonymisées (analytics globales)
    DB->>App: Positions geohash uniquement
    App->>App: Générer heatmap trafic (~5km² précision)

    Note over User: Exception : historique personnel

    User->>App: Consulter "Mon historique d'écoute"
    App->>DB: SELECT historique personnel utilisateur
    DB->>App: Positions précises conservées (tant que compte actif)
    App->>User: Trajets détaillés

Légende :

  • < 24h : GPS précis conservé (recommandations hyperlocales)
  • > 24h : Conversion automatique en geohash précision 5 (~5km²)
  • Exception : Historique personnel conservé intact tant que compte actif
  • Analytics : Uniquement positions anonymisées (geohash)