メインコンテンツへスキップ
Retour à l'accueil

Calendrier de conservation des données

Dernière mise à jour : 13 mai 2026

Conformément à l'article 5(1)(e) du RGPD (limitation de la conservation), cette page détaille les durées de conservation appliquées à chaque table contenant des données personnelles ou dérivées. Les durées sont alignées sur le code source — toute divergence doit être signalée à contact@vidiaflow.com.

Table / catégorieDescriptionDuréeBase légale
profilesCompte utilisateur — email, nom, préférences, planDurée de l'abonnement, puis effacement immédiat sur demande (art. 17)Exécution du contrat
videosMétadonnées des vidéos YouTube analyséesDurée de l'abonnementExécution du contrat
generationsContenus générés (résumés, articles, scripts, posts, SEO)Durée de l'abonnementExécution du contrat
thumbnailsThumbnails générés (paths Storage uniquement)Durée de l'abonnementExécution du contrat
thumbnail_cacheCache thumbnails (déduplication par hash sha256)30 jours après dernier accèsIntérêt légitime (réduction des coûts)
compliance_dealsSaisies de partenariats influenceursDurée de l'abonnementExécution du contrat
brand_kits, clip_subtitle_jobsBrand kits ClipFlow + jobs de burn sous-titresDurée de l'abonnementExécution du contrat
user_youtube_channelsOAuth metadata YouTube + refresh_token chiffré AES-256-GCMJusqu'à révocation explicite OU effacement du compteConsentement (art. 6(1)(a))
api_keysClés API publiques (hashage Argon2id)Jusqu'à révocation OU 12 mois sans dernière utilisationExécution du contrat
api_usage_logsLogs des appels API publique30 jours (élagué quotidiennement)Intérêt légitime (debug + abus)
llm_usage_logsCoûts par appel LLM pour analytics90 jours (élagué quotidiennement)Intérêt légitime (cost-tracking)
email_schedulesPlanning emails transactionnels (onboarding, alertes)180 jours après envoi (élagué quotidiennement)Exécution du contrat
email_suppressionsOpt-out emailing (bounces, spam, unsubscribe)730 jours (industry-standard CAN-SPAM)Intérêt légitime (conformité anti-spam)
webhook_deliveries (status='succeeded')Livraisons webhook réussies (API publique)90 joursIntérêt légitime (audit livraison)
webhook_deliveries (status='failed')Livraisons webhook échouées60 joursIntérêt légitime (forensique)
ai_disclosure_eventsAudit IA Act art. 50 — contenu généré par IA5 ans (obligation légale, règlement UE 2024/1689)Obligation légale
plan_changesHistorique signup / upgrade / downgrade / churn7 ansObligation légale (comptabilité)
classification_credit_transactionsTransactions de crédits de classification (legacy)7 ansObligation légale (comptabilité)
stripe_invoices_cacheCache des factures Stripe10 ansObligation légale (code de commerce art. L123-22)
payment_failed_notificationsNotifications d'échec de paiement (dédup webhook)Durée de l'abonnementExécution du contrat
ingestion_jobsJobs d'ingestion automatique de vidéos YouTubeDurée de l'abonnementExécution du contrat
data_export_jobsJobs d'export RGPD art. 20 — métadonnées + ZIPZIP : 30 jours (Storage lifecycle) — Job row : 90 joursIntérêt légitime (audit demandes RGPD)
auth_rate_limit_bucketsCompteurs anti-brute-force (clé hashée IP / email)Fenêtre glissante 1h-24h selon l'actionIntérêt légitime (sécurité)

Élagage automatique

Trois tâches planifiées appliquent ces durées en production :

  • /api/cron/prune-email-schedules — quotidien (email_schedules, email_suppressions, webhook_deliveries succès)
  • /api/cron/prune-log-tables — quotidien (llm_usage_logs, api_usage_logs, webhook_deliveries échecs, data_export_jobs terminés)
  • /api/cron/cleanup-cache — quotidien (thumbnail_cache)

Effacement immédiat (art. 17)

Lorsque vous exercez votre droit à l'effacement via /settings#account, la majorité des tables ci-dessus subissent un effacement immédiat. Les exceptions :

  • ai_disclosure_events : conservé 5 ans (audit IA Act, art. 50 du règlement UE 2024/1689).
  • plan_changes + classification_credit_transactions + stripe_invoices_cache : conservés 7 à 10 ans (obligation comptable).
  • affiliate_referrals: pseudonymisés (referred_user_id à NULL, email à "[deleted]") pour préserver la trace d'audit des commissions, conformément au carve-out art. 17 §3.

Le code de la cascade complète est public dans src/app/api/user/delete/route.ts (GitHub).