| 1 |
Registre des traitements Art. 30 — document CNIL : finalités, durées, sous-traitants, mesures sécurité Modèle CNIL ↗ |
Critique |
À faire |
| 2 |
DPA Gemini/Google (js/ai-analysis.js) — DPA Google Cloud + transfert hors UE. Hors scope — IA Gemini non implémentée / retirée du périmètre RGPD. |
— |
N/A |
| 3 |
Procédure violation de données 72h — circuit H+1/H+4/H+24/H+72, containment par type d'incident, registre violations, formulaire CNIL. Doc : PROCEDURE_VIOLATION_72H.md |
Critique |
✓ Fait 2026-09-06 |
| 4 |
Email RGPD + procédure droits Art. 17 — rgpd@probatiotech.fr ajouté dans CGU/CGV, notices Android (v3), circuit 30 jours documenté (OVERVIEW.md) |
Important |
✓ Fait 2026-09-06 |
| 5 |
Purge anonymisation appareils/codes résiliés — _rgpd_resili_purge_daemon dans backend/main.py |
Important |
✓ Fait 2026-09-06 |
| 6 |
Rotation logs PM2 + Nginx — logrotate hebdo 12 semaines sur tous les VPS |
Important |
✓ Fait 2026-09-06 |
| 7 |
Signatures électroniques — prestataire externe — délégation à un prestataire certifié (Yousign, DocuSign…). La question DPIA Art. 9 / biométrie tombe côté prestataire. ProbatioTech : signer un DPA avec le prestataire choisi. SignatureActivity conservée temporairement pour démo/test — suppression complète lors de l'intégration prestataire. |
Important |
En cours |
| 8 |
Chiffrement clé USB sauvegarde — retiré |
— |
N/A |
| 9 |
DPA OVH — vérifier DPA actif dans espace client OVH (SMTP ssl0.ovh.net + hébergement) |
Surveillance |
À vérifier |
| 10 |
CGU/CGV texte définitif — texte actuel provisoire. Envoyer à l'avocat → incrémenter version dans legal.json pour forcer re-acceptation tous appareils |
Surveillance |
Avocat |
| 11 |
DPA clients B2B (Art. 28) — ProbatioTech = sous-traitant technique ; chaque magasin = responsable du traitement. Contrat de sous-traitance de données à signer avec chaque client (finalités, mesures sécurité, durées, sous-sous-traitants OVH/Google) |
Critique |
À faire |
| 12 |
Purge auto bugs + bug_logs orphelins sav-api — _purgeBugsRgpd dans js/bugs.js (1 an, hebdo) |
Important |
✓ Fait 2026-09-22 |
| 13 |
Purge auto device_logs sav-api — _purgeLogsRgpd dans js/logs.js (90 jours, hebdo) |
Important |
✓ Fait 2026-09-22 |
| 14 |
Purge auto ai_analysis_events sav-api — _purgeAiEventsRgpd dans js/ai-analysis.js (2 ans, hebdo) |
Important |
✓ Fait 2026-09-22 |
| 15 |
Purge auto bug_reports sav-hub-multi — _purge_bug_reports_daemon dans backend/main.py (1 an, hebdo) |
Important |
✓ Fait 2026-09-22 |
| 16 |
Notice RGPD v4 Android — migration vers EncryptedSharedPreferences (ConfigManager) + mention email client dans le texte |
Important |
✓ Fait 2026-09-22 |
| 17 |
Envoi photos par email — POST /rapport/:token/email-photos — adresse email saisie par l'utilisateur non stockée (usage transient). Transit SMTP OVH (sous-traitant existant). Photos déjà accessibles via le token rapport. À documenter dans le registre des traitements (item 1) : finalité "partage à la demande", durée de conservation N/A (pas de stockage). |
Surveillance |
✓ OK — sans stockage 2026-09-28 |
| 18 |
Rate limit email-photos — _emailRateAllow() dans js/rapport.js : max 3 envois/heure par token, en mémoire + nettoyage horaire. HTTP 429 si dépassé. |
Important |
✓ Fait 2026-09-28 |
| 19 |
MULTIMAG_ADMIN_KEY vers variable d'environnement — rapport.js:10 : process.env.MULTIMAG_ADMIN_KEY || fallback. À déplacer dans ecosystem.config.js (ordimural uniquement) pour sortir la clé du repo versionné. Penser à régénérer la clé si le repo est/était public. |
Critique |
✓ Env var + fallback 2026-09-28 |
| 20 |
Purge rapport_ref_views + rapport_photo_rotation + dossiers photos storage orphelins — démon _purgeRapportTables() dans js/rapport.js : DELETE entrées > 2 ans + orphelins magasin/enseigne supprimé. Purge manuelle via bouton "Forcer purge" → POST /api/admin/rapport/force-purge : purge tables + suppression photos VPS storage dont le magasin n'existe plus. |
Important |
✓ Fait 2026-10-09 |
| 21 |
CORS sav-storage restreint — sav-storage/app/main.py : allow_origins=["*"] → liste explicite [api.sav-hub.fr, dashboard.sav-hub.fr, storage.sav-hub.fr]. Routes toujours protégées par clé API. |
Important |
✓ Fait 2026-09-28 |
| 23 |
Fallback EncryptedSharedPreferences — flag diagnostic — ConfigManager.java : si le keystore Android échoue, fallback sur SharedPreferences standard non chiffré. Flag enc_prefs_fallback=true écrit dans sav_diag prefs avec la raison de l'exception, consultable lors du prochain diagnostic appareil. |
Surveillance |
✓ Fait 2026-09-28 |
| 24 |
Purge bug_history > 2 ans — ajouté dans _purgeBugsRgpd() de js/bugs.js : DELETE bug_history où changed_at < 2 ans. Même daemon hebdomadaire que bugs (1 an) et bug_logs orphelins. |
Surveillance |
✓ Fait 2026-09-28 |
| 25 |
Purge rapport_connection_log > 1 an — ajouté dans _purgeRapportTables() de js/rapport.js (démon hebdomadaire existant). IPs visiteurs rapport + événements auth non conservés indéfiniment. |
Important |
✓ Fait 2026-10-17 |
| 26 |
Purge security_events + security_email_log > 1 an — nouveau démon _purgeSecurityEventsRgpd() dans js/security-events.js (démarrage +6 min, hebdomadaire). Logs sécurité (IPs, types d'événements) et emails digest purgés après 1 an. |
Critique |
✓ Fait 2026-10-17 |
| 27 |
Purge contact_submissions > 2 ans — nouveau démon _purgeContactsRgpd() dans js/contacts.js (démarrage +7 min, hebdomadaire). PII formulaire contact (nom, email, téléphone, message — chiffrés AES-256-GCM) supprimés après 2 ans. |
Critique |
✓ Fait 2026-10-17 |
| 28 |
CORS sav-hub-multi restreint — backend/main.py : allow_origins=["*"] → liste explicite [dashboard.sav-hub.fr, api.sav-hub.fr, api-savhub.sav-hub.fr, probatiotech.fr]. Les appels internes (loopback, Android) ne passent pas par CORS et ne sont pas affectés. |
Important |
✓ Fait 2026-10-17 |
| 29 |
Notice Art. 13 dans rapport.html — bandeau fixe en bas du rapport web informant les visiteurs que leur IP est enregistrée à des fins de sécurité (Art. 5.1.f), rétention 1 an, contact rgpd@probatiotech.fr. Fermable et mémorisé via localStorage. |
Critique |
✓ Fait 2026-10-17 |
| 30 |
Purge rapport_ip_locks > 1 an — ajouté dans _purgeRapportTables() de js/rapport.js (démon hebdomadaire). IPs autorisées par token rapport (données personnelles CNIL Art. 5.1.e) supprimées après 1 an. Droit à l'effacement couvert : suppression token CASCADE + route DELETE admin. |
Important |
✓ Fait 2026-10-31 |
| 31 |
Purge rapport_access_requests > 1 an — ajouté dans _purgeRapportTables() de js/rapport.js (démon hebdomadaire). Table stocke IP + prénom du demandeur (PII Art. 5.1.e) : suppression après 1 an. Droit à l'effacement couvert par FK ON DELETE CASCADE sur rapport_tokens. |
Important |
✓ Fait 2026-10-31 |
| 32 |
Protection IP serveur-side rapports web — _enforceIpAccess() dans js/rapport.js : vérification IP côté serveur (cache 5 min) sur /data, /media, /ls. Empêche la fuite de données PEC vers des IPs non autorisées même via appel API direct — protection vie privée des données de constat Art. 5.1.f. |
Important |
✓ Fait 2026-10-31 |
| 33 |
Durée sessions rapport réduite 365j → 30j — auth-login, admin-bypass, auth-change dans js/rapport.js : INTERVAL 30 DAY. Réduit la fenêtre de risque en cas de vol de session. Purge : sessions expirées > 30j supprimées par le même démon hebdomadaire. |
Surveillance |
✓ Fait 2026-10-31 |
| 34 |
Purge audit_log > 2 ans — ajouté dans _purgeSecurityEventsRgpd() de js/security-events.js (démon hebdomadaire). Table stocke username + IP des actions admin (PII Art. 5.1.e CNIL) — rétention 2 ans (durée audit sécurité standard). Identifié lors de l'audit RGPD complet du 2026-10-31. |
Important |
✓ Fait 2026-10-31 |
| 35 |
SEC-02 — Chiffrement au repos : alerte critique si DB_ENCRYPT_KEY absente — js/crypto-helper.js : niveau console.warn → console.error + message explicite indiquant que les données PII sont stockées en clair. Visibilité immédiate dans les logs PM2 au démarrage si la clé est absente du ecosystem.config.js. |
Critique |
✓ Fait 2026-11-01 |
| 36 |
VIO-02 — Registre des violations Art. 33(5) — table rgpd_violations (DB sav_app) + routes CRUD /api/admin/rgpd/violations dans js/rgpd-register.js. UI dans le dashboard RGPD : formulaire de saisie + tableau violations avec suivi CNIL/clôture. Obligation CNIL : tenir un registre de toutes les violations détectées même sans notification obligatoire. |
Critique |
✓ Fait 2026-11-01 |
| 37 |
INF-02/03/04 — Suivi demandes de droits Art. 15-17-21 — table rgpd_rights_requests (DB sav_app) + routes CRUD /api/admin/rgpd/rights-requests dans js/rgpd-register.js. UI dashboard : formulaire de saisie + tableau avec calcul automatique J+30, alertes délai dépassé, suivi statut. Traçabilité formelle des demandes reçues (accès, rectification, effacement, opposition, portabilité). |
Important |
✓ Fait 2026-11-01 |
| 38 |
GOV-02 — Désignation formelle DPO — Rédiger un document interne désignant Dylan Busque comme responsable RGPD de ProbatioTech avec : nom complet, coordonnées (rgpd@probatiotech.fr), date de désignation, périmètre, ressources allouées. Document signé à conserver (PDF). Action manuelle Dylan. |
Important |
À faire |
| 39 |
GOV-03 — Politique de protection des données — Rédiger un document de politique interne (≥ 2 pages) formalisant : objectifs, principes de traitement, base légale par type, mesures de sécurité, durées de rétention, procédures droits, DPA sous-traitants, responsabilités. Complémentaire de la checklist dashboard. Action manuelle Dylan — peut s'appuyer sur le contenu CGU/CGV et OVERVIEW.md. |
Surveillance |
À faire |
| 40 |
BL-01 — Bases légales documentées par traitement — Une fois le registre Art. 30 (item 1) créé, documenter la base légale pour chaque traitement : consentement (CGU), intérêt légitime (sécurité), exécution contrat (gestion abonnements). Base légale actuelle partielle dans LegalActivity Android. Dépend de l'item 1 (Registre Art. 30). |
Surveillance |
Bloqué item 1 |
| 41 |
ST-02 — DPA OVH accepté formellement — Se connecter à l'espace client OVH → section "Gestion de la confidentialité" ou "Protection des données" → accepter et télécharger le Data Processing Agreement OVH. Couvre : smtp.sav-hub.fr (SMTP), hébergement ordimural (serveur dédié OVH). OVH DPA ↗ Action externe OVH, 15 min. |
Important |
À faire — OVH |
| 42 |
ST-03 / ST-04 — DPA Google Gemini + transfert hors UE Art. 44 — Hors scope — IA Gemini non implémentée / retirée du périmètre RGPD. |
— |
N/A |
| 43 |
DPIA-01 — AIPD traitement IA Gemini Art. 35 — Hors scope — IA Gemini non implémentée / retirée du périmètre RGPD. |
— |
N/A |