Analyse d'Impact relative à la Protection des Données
Version 2026-06-v1. Document interne rendu public pour transparence, rédigé conformément à la méthodologie CNIL et au Règlement (UE) 2016/679 (RGPD), articles 35 et 36.
1. Contexte et finalité du traitement
BecauseTimeCounts édite le service L'Atelier du Museau(atelierdumuseau.fr), un service en ligne permettant à un particulier de transformer la photographie de son animal de compagnie (chien, chat, autre) en portrait d'art numérique grâce à un modèle d'intelligence artificielle générative, puis de commander l'impression et l'encadrement de ce portrait, livré en France et en Union européenne.
La conduite d'une AIPD a été décidée pour deux raisons cumulatives :
- le traitement repose sur une technologie d'IA générativeà grande échelle, susceptible de présenter des risques nouveaux pour les droits et libertés des personnes concernées (lignes directrices CNIL sur l'IA, mai 2024) ;
- les photographies uploadées peuvent contenir accidentellement des éléments d'identification du propriétaire(visages partiels, décor d'intérieur, objets personnels, plaques d'immatriculation) sans que cette identification soit la finalité du traitement.
Le traitement n'est pas conçu pour identifier des personnes physiques, ne réalise aucun profilage ni décision automatisée produisant des effets juridiques, et ne traite aucune donnée sensibleau sens de l'article 9 RGPD.
2. Description détaillée du traitement
2.1. Cycle de vie d'une génération
Le cycle complet d'une génération suit les étapes suivantes :
- Étape 1 — Upload de la photo. L'utilisateur téléverse une image (JPEG/PNG/WebP, max 10 Mo) via une URL signée générée par notre serveur Next.js et pointant vers notre bucket Cloudflare R2 (juridiction Union européenne).
- Étape 2 — Modération. L'image est transmise à Google Cloud Vision SafeSearch (zone europe-west) qui retourne 5 scores (adulte, médical, choc, racy, violence). Toute image dont un score est « LIKELY » ou « VERY_LIKELY » est rejetée et supprimée immédiatement.
- Étape 3 — Génération IA. L'URL R2 signée et le prompt construit côté serveur sont envoyés à fal.ai (modèle Nano Banana 2 ou GPT Image 2 selon le style). Le modèle retourne une image générée portant un marquage SynthID Google invisible.
- Étape 4 — Stockage du résultat. L'image générée est téléchargée par notre serveur et stockée dans le même bucket R2 EU.
- Étape 5 — Affichage à l'utilisateur. L'utilisateur peut visualiser l'aperçu, valider, ou relancer une nouvelle génération.
- Étape 6 (facultative) — Commande. Si commande, l'image est éventuellement upscalée par Real-ESRGAN (formats>=40x50 cm) puis envoyée à Gelato (production UE) via API v4 avec adresse de livraison fournie par l'utilisateur.
- Étape 7 — Purge. La photo originale est purgée automatiquement 30 jours après upload via un cron Convex quotidien.
2.2. Personnes concernées
Les personnes concernées sont les utilisateurs du service (visiteurs anonymes ayant uploadé une photo, utilisateurs inscrits, acheteurs). Subsidiairement, et de manière non recherchée, peuvent être concernés des tiers accidentellement présentsdans une photo (membres du foyer, propriétaire dont une partie de visage est visible). Le traitement n'est jamais effectué sur la base d'une identification de ces tiers.
2.3. Catégories de données traitées
- Données d'identification : email, prénom facultatif, identifiant Clerk.
- Données de connexion : adresse IP technique (logs), session anonyme via fingerprint léger (canvas + user agent, sans tracking persistant), horodatage de connexion.
- Photographies d'animaux: image originale, métadonnées techniques (dimensions, format, EXIF nettoyé). Aucun traitement biométrique n'est appliqué (pas de reconnaissance faciale, ni d'animal ni humaine).
- Données de commande : adresse postale, téléphone facultatif, contenu de commande, paiement Stripe (token, jamais le numéro de carte).
- Données techniques de génération : prompt utilisé, modèle IA appelé, identifiant de requête fal.ai, statut, coût en centimes.
2.4. Bases légales
- Exécution du contrat(art. 6.1.b RGPD) pour la génération, l'impression et la livraison.
- Obligation légale (art. 6.1.c RGPD) pour la conservation des factures et obligations comptables.
- Consentement (art. 6.1.a RGPD) pour les analytics non essentiels (GA4) et le marketing email (opt-in).
3. Sous-traitants
Tous les sous-traitants ont signé un contrat conforme à l'article 28 RGPD. La liste détaillée et leurs politiques de confidentialité figurent dans la politique de confidentialité.
- Convex : base de données opérationnelle, région Union européenne. Stockage chiffré au repos, accès contrôlé par identité Clerk.
- Clerk : authentification, États-Unis avec Clauses Contractuelles Types (CCT) européennes. Aucune donnée biométrique.
- Cloudflare R2 : stockage objets, juridiction Union européenne (endpoint
.eu.r2.cloudflarestorage.com). Accès via URL signées à durée limitée. - Google Cloud Vision: modération SafeSearch, zone europe-west, DPA Google Cloud signé. Aucune image n'est conservée par Google après analyse (politique d'immédiate suppression côté Vision API).
- fal.ai: génération IA, États-Unis avec CCT. fal.ai s'engage contractuellement à ne pas utiliser nos inputs pour entraîner ses modèles (option logs:true mais pas train).
- Gelato: impression et logistique, production France/UE. Reçoit l'image upscalée et l'adresse de livraison.
- Stripe: paiement, Irlande pour la zone EEE. Aucune donnée bancaire n'atteint nos serveurs.
- Resend : emails transactionnels, infrastructure Union européenne.
- Sentry: monitoring d'erreurs, États-Unis avec CCT. Configuration en scrub mode pour éviter la remontée de données personnelles dans les stack traces.
- Vercel : hébergement applicatif, région Paris (cdg1) avec CCT pour fonctions edge globales.
4. Durées de conservation
- Photos originales : 30 jours maximum, purge automatique par cron Convex quotidien.
- Générations : 3 ans après la dernière commande pour SAV et réimpressions, 30 jours sinon.
- Commandes et factures : 10 ans (obligation comptable, art. L123-22 C. com.).
- Achats de crédits : 10 ans (obligation comptable identique).
- Compte utilisateur : durée de vie du compte. Suppression sous 48 h côté Convex après demande, propagation Clerk sous 1 mois.
- Sessions anonymes : 90 jours sans activité.
- Logs Sentry : 90 jours, anonymisés.
- Logs analytics : 14 mois (paramètre par défaut GA4).
5. Mesures techniques de sécurité
- Chiffrement en transit : TLS 1.3 obligatoire, HSTS activé via headers Vercel.
- Chiffrement au repos : AES-256 côté Convex, AES-256 côté Cloudflare R2.
- Authentification : déléguée à Clerk, aucun mot de passe stocké côté Atelier. MFA disponible côté Clerk.
- Autorisations: chaque mutation/query Convex vérifie l'identité via
ctx.auth.getUserIdentity()et croise l'ownership des ressources. - URL signées : tous les uploads et lectures R2 passent par des URL signées limitées à 15 minutes.
- Rate limiting: limites de débit par IP et par fingerprint sur les routes d'upload, de modération et de création de génération.
- Vérification webhooks : signatures Stripe, Clerk, Gelato et fal vérifiées sur chaque webhook.
- Modération préalable : Google Vision SafeSearch sur 100 % des photos uploadées avant tout appel à fal.ai.
- Préservation SynthID: aucune transformation serveur ne ré-encode l'image générée d'une manière qui détruirait le marquage SynthID. Le upscale Real-ESRGAN est configuré pour préserver les métadonnées invisibles.
- Monitoring : alertes Sentry sur erreurs critiques (webhook, paiement, génération, cron purge).
6. Mesures organisationnelles
- Équipe restreinte : un seul administrateur principal côté BecauseTimeCounts. Aucun stagiaire ni prestataire n'a accès à la base de production.
- Accès production : limité par IP et MFA Clerk (compte admin).
- Sauvegardes : Convex effectue des snapshots quotidiens en région UE.
- Plan de notification: en cas de violation de données, notification CNIL sous 72 h conformément à l'article 33 RGPD, et information des personnes concernées sans délai si risque élevé (article 34 RGPD).
- Revue annuelle : la présente AIPD est revue annuellement et à chaque évolution majeure du traitement.
7. Analyse des risques
7.1. Risque d'accès illégitime aux données
Sources: compromission du compte admin, exposition accidentelle d'une URL signée, faille d'un sous-traitant.
Impacts: exposition de photos d'animaux et accessoirement d'éléments d'intérieur du propriétaire, accès aux commandes (adresse postale).
Vraisemblance : limitée. Gravité : modérée (pas de donnée sensible ni bancaire). Mesures : MFA Clerk, URL signées 15 min, rotation des secrets, monitoring Sentry, contrats CCT avec sous-traitants hors UE.
7.2. Risque de modification non désirée des données
Sources: bug applicatif, action malveillante d'un utilisateur tentant de modifier les commandes d'un tiers.
Impacts : génération non sollicitée, commande détournée.
Vraisemblance : limitée. Gravité : modérée. Mesures: validation systématique de l'ownership dans chaque mutation Convex, rate limiting, schémas Zod côté serveur, validators Convex stricts.
7.3. Risque de disparition des données
Sources : incident sous-traitant, suppression accidentelle.
Impacts: perte d'une commande payée, perte d'une génération en cours.
Vraisemblance : limitée. Gravité : faible (le client peut relancer). Mesures: snapshots Convex quotidiens, R2 versioning activable, plan de relance manuel d'une commande Gelato en cas d'échec.
7.4. Risque spécifique à l'IA générative
Sources: génération d'une image inappropriée non détectée par la modération (faux négatif), conservation d'inputs par fal.ai pour entraînement (interdit contractuellement), désactivation accidentelle du marquage SynthID.
Impacts : portrait choquant livré au client, utilisation abusive du portrait pour désinformation.
Vraisemblance : limitée à très limitée. Gravité : modérée à élevée selon le cas. Mesures: double modération (Google Vision + filtre prompt côté serveur), interdiction contractuelle d'entraînement dans le contrat fal.ai, vérification systématique du marquage SynthID en post-traitement, mention « Image générée par IA » omniprésente, engagement contractuel utilisateur (CGU section 6) à ne pas retirer le marquage.
7.5. Risque de violation de droits de tiers
Sources : utilisateur uploadant une photo contenant un tiers identifiable sans consentement.
Impacts: traitement de données personnelles d'un tiers sans base légale valable.
Vraisemblance : modérée. Gravité : modérée. Mesures: CGU section 4 imposant à l'utilisateur la garantie qu'il dispose des droits, modération SafeSearch détectant les visages et le contenu inapproprié, purge à 30jours, droit à l'effacement à 1 clic.
8. Plan de réduction et engagements
- Conformité AI Act anticipée bien avant le 2 août 2026 : marquage SynthID conservé, mention IA omniprésente, AIPD publiée et actualisée.
- Minimisation : seules les données strictement nécessaires à la génération et à la livraison sont collectées.
- Purge automatisée : les photos sont purgées sous 30 jours sans intervention manuelle.
- Transparence : politique de confidentialité, AIPD, registre des traitements et CGU publics et accessibles depuis le pied de page.
- Privacy by default : toutes les options de tracking (analytics, marketing) sont opt-in.
- Localisation UE : tous les sous-traitants principaux (Convex, R2, Gelato, Resend) sont en région UE. Les rares cas hors UE (Clerk, fal.ai, Sentry, Vercel global) sont encadrés par CCT.
9. Validation et révision
Cette AIPD a été rédigée par BecauseTimeCounts en juin 2026. Elle est revue à chaque évolution substantielle du traitement (nouveau sous-traitant, nouveau modèle IA, modification de finalité) et au minimum une fois par an. La prochaine revue programmée est juin 2027. Une consultation préalable de la CNIL sera demandée si une nouvelle évaluation conclut à un risque résiduel élevé qui ne pourrait être traité par les mesures actuelles.
Si la volumétrie utilisateurs dépasse 10 000 comptes, ou si une évolution réglementaire le justifie, BecauseTimeCounts mandatera un Délégué à la Protection des Données (DPO) certifié pour relire et cosigner la prochaine version de cette AIPD.
10. Contact
Pour toute question relative à cette AIPD ou à un traitement spécifique : bonjour@atelierdumuseau.fr.