Files
billisdead a7b7684e87 Conformité RGPD (P3) + transparence éditoriale (P4)
P3 — RGPD :
- Table `consents` + `POST /api/consent` (art. 7.1 — preuve du consentement)
- Dialogue de consentement explicite avant la première contribution (art. 9.2.a)
- Pages `/mentions-legales` et `/politique-confidentialite`
- `docs/RGPD.md` — registre des traitements, bases légales, sous-traitants
- `getVisitorId()` exporté depuis l'API client React

P4 — Transparence éditoriale :
- Page `/contributions-brutes` avec pagination et export JSON/CSV
- `GET /api/contributions`, `GET /api/contributions/export/{json,csv}`
- `GET /api/stats/public` — stats publiques sans données de rejet
- Label de transparence IA sur la colonne de synthèse
- Compteurs (acceptées / soumises) dans le bandeau d'intro
- `docs/PROMPTS_IA.md` — prompts intégraux publiés + analyse des biais
- Pied de page avec liens légaux et transparence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 22:30:30 +02:00

9.5 KiB

Conformité RGPD — La Voix du Peuple

Document de référence RGPD. Version 1.0 — mai 2026.
Responsable de traitement : billisdead (Antoine Piron) — piron.antoine@gmail.com


1. Responsable de traitement

Champ Valeur
Identité Antoine Piron (billisdead)
Contact piron.antoine@gmail.com
DPO Même personne (structure individuelle)
Territoire France

La plateforme est exploitée à titre personnel dans un but civique non-lucratif.


2. Registre des traitements

Traitement 1 — Contributions citoyennes

Champ Détail
Finalité Recueillir des propositions citoyennes, les modérer automatiquement et produire une synthèse thématique
Base légale principale Art. 6.1.e RGPD — exécution d'une mission d'intérêt public (participation démocratique)
Base légale données sensibles Art. 9.2.a RGPD — consentement explicite de la personne concernée (les opinions politiques sont des données sensibles au sens de l'art. 9)
Catégories de données Contenu de la contribution (texte libre, peut contenir des opinions politiques), pseudonyme (facultatif, librement choisi), horodatage
Destinataires Responsable de traitement (admin), Mistral AI (sous-traitant IA, voir §4)
Durée de conservation 24 mois à compter de la soumission, puis suppression ou anonymisation complète
Transferts hors UE Aucun

Traitement 2 — Fingerprint de session (anti-abus)

Champ Détail
Finalité Protection contre les attaques automatisées (bots, sybil attacks, flood), sans authentification et sans traçage individuel
Base légale Art. 6.1.f RGPD — intérêt légitime du responsable de traitement (sécurité technique de la plateforme)
Nature de la donnée Hash SHA-256 (tronqué à 32 caractères hexadécimaux) d'un identifiant généré à partir des caractéristiques du navigateur (FingerprintJS). Non réversible, non-PII au sens du RGPD
Durée de conservation Liée à la contribution associée (24 mois max)
Transferts hors UE Aucun

Traitement 3 — Consentements

Champ Détail
Finalité Traçabilité du recueil du consentement (art. 7.1 RGPD — charge de la preuve)
Base légale Art. 6.1.c RGPD — obligation légale (conservation de la preuve de consentement)
Catégories de données Hash fingerprint (voir §2.2), version du texte accepté, horodatage du consentement
Durée de conservation Durée du traitement principal + 3 ans (prescription civile)
Transferts hors UE Aucun

Traitement 4 — Synthèse IA

Champ Détail
Finalité Produire un résumé structuré des contributions acceptées, à destination d'élus ou décideurs
Base légale Art. 6.1.e RGPD — même finalité que le traitement 1
Catégories de données Contenu des contributions acceptées (transmis à Mistral AI pour synthèse)
Destinataires Mistral AI (sous-traitant, voir §4)
Durée de conservation Synthèse courante uniquement — pas d'historique conservé
Transferts hors UE Aucun

3. Données collectées / non collectées

Donnée Collectée Base / commentaire
Texte de la contribution Oui Finalité principale — art. 6.1.e + 9.2.a
Pseudonyme Oui (optionnel) Librement choisi, pas de vérification
Horodatage Oui Nécessaire à la traçabilité
Résultat de modération Oui (admin uniquement) Traçabilité des décisions automatisées
Hash fingerprint navigateur Oui Art. 6.1.f — sécurité, non-PII
Consentement (version + date) Oui Art. 6.1.c — obligation légale
Adresse IP Non conservée Utilisée pour le rate limiting, non stockée
Compte utilisateur Non Pas d'inscription requise
Cookie de suivi Non Aucun tracker tiers
Données de navigation Non Aucune
Données de géolocalisation Non Aucune

4. Sous-traitants

Mistral AI

Champ Détail
Raison sociale Mistral AI SAS
Siège Paris, France
Rôle Sous-traitant pour la modération IA (Mistral Small) et la synthèse (Mistral Large)
Données transmises Texte des contributions soumises (modération) · Texte des contributions acceptées (synthèse)
Hébergement Exclusivement en Union européenne (GCP europe-west4, Pays-Bas)
DPA Disponible via le portail Mistral AI — conforme RGPD
Transferts hors UE Aucun

Note : Mistral AI ne conserve pas les données soumises via API pour entraîner ses modèles (politique explicite de l'API Mistral). À vérifier et documenter lors de la signature du DPA.

Hébergeur VPS

Champ Détail
Configuration cible Rocky Linux 9, VPS français ou européen (OVHcloud, Scaleway, ou équivalent)
Rôle Hébergement de la base de données PostgreSQL, du backend Flask et du frontend compilé
Données hébergées Toutes les données listées §2
Transferts hors UE Aucun (hébergeur UE requis)
DPA À signer avec l'hébergeur retenu lors du déploiement

5. Durées de conservation

Catégorie Durée active Traitement au terme
Contributions (texte + auteur) 24 mois Suppression complète ou anonymisation du pseudonyme
Hash fingerprint 24 mois (liée contribution) Suppression avec la contribution
Consentements 24 mois + 3 ans Suppression (prescription civile)
Synthèse courante Sans limite Écrasée à chaque recalcul
Logs applicatifs 90 jours Rotation automatique

6. Droits des personnes

Conformément aux articles 15 à 22 du RGPD, toute personne peut exercer les droits suivants :

Droit Contenu Comment l'exercer
Accès (art. 15) Obtenir copie des données vous concernant Email à piron.antoine@gmail.com
Rectification (art. 16) Corriger des données inexactes Email à piron.antoine@gmail.com
Effacement (art. 17) "Droit à l'oubli" — suppression de vos contributions Email à piron.antoine@gmail.com avec la date approximative de la contribution
Opposition (art. 21) S'opposer au traitement basé sur l'intérêt légitime (fingerprint) Email à piron.antoine@gmail.com
Portabilité (art. 20) Obtenir vos données dans un format structuré Email à piron.antoine@gmail.com
Retrait du consentement (art. 7.3) Retirer votre consentement à tout moment Email à piron.antoine@gmail.com — sans effet sur les traitements déjà effectués

Délai de réponse : 1 mois (prolongeable à 3 mois pour les demandes complexes, avec notification).

Réclamation CNIL : En cas de non-réponse ou de litige, vous pouvez adresser une réclamation à la CNIL (www.cnil.fr/fr/plaintes).


7. Sécurité des données

Mesures techniques et organisationnelles mises en place :

  • Transport chiffré (HTTPS/TLS) entre le client et le serveur (Nginx)
  • Connexion base de données sur réseau local uniquement (pas d'exposition publique du port PostgreSQL)
  • Rate limiting et détection de flood (voir docs/SECURITE_ANTI_ABUS.md)
  • Aucune donnée personnelle dans les logs applicatifs
  • Accès admin protégé par token secret (ADMIN_SECRET)
  • Principe de minimisation : pas de collecte d'IP ni de cookies de tracking
  • Hash SHA-256 non réversible pour le fingerprint (non-PII)

8. Décisions automatisées

La plateforme utilise une modération automatisée par IA (Mistral Small) pour filtrer les contributions.

Information prévue à l'art. 22 RGPD : si votre contribution est rejetée, le motif et la référence légale précise vous sont communiqués. Vous pouvez reformuler et resoumettre.

Il n'existe pas de mécanisme de contestation formel de la décision de modération dans la version actuelle. En cas de déploiement institutionnel, un mécanisme de recours humain est recommandé.


9. Consentement pour les données sensibles

Les contributions peuvent contenir des opinions politiques, qui sont des données sensibles au sens de l'art. 9 RGPD. Leur traitement requiert un consentement explicite de la personne concernée.

Mécanisme de recueil : avant la première contribution, un bandeau de consentement explicite est présenté. Il contient :

  • Une description claire du traitement
  • Un lien vers la présente politique de confidentialité
  • Une case à cocher obligatoire (pas de pré-cochage)
  • Un bouton "Accepter et contribuer"

Horodatage : le consentement est enregistré en base de données avec la version du texte accepté et la date.

Retrait : le consentement peut être retiré à tout moment par email. Les contributions déjà publiées restent dans la base mais peuvent être supprimées sur demande (droit à l'effacement).


10. Cookies

La plateforme utilise uniquement les cookies suivants, strictement nécessaires :

Nom Type Finalité Durée
_cv httpOnly, SameSite=Lax Anti-abus — cooldown entre soumissions CONTRIBUTION_COOLDOWN_SECONDS (1h par défaut)

Aucun cookie tiers, aucun cookie de tracking, aucune publicité.


Historique des versions

Version Date Changements
1.0 Mai 2026 Version initiale