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égorie | Description | Durée | Base légale |
|---|---|---|---|
profiles | Compte utilisateur — email, nom, préférences, plan | Durée de l'abonnement, puis effacement immédiat sur demande (art. 17) | Exécution du contrat |
videos | Métadonnées des vidéos YouTube analysées | Durée de l'abonnement | Exécution du contrat |
generations | Contenus générés (résumés, articles, scripts, posts, SEO) | Durée de l'abonnement | Exécution du contrat |
thumbnails | Thumbnails générés (paths Storage uniquement) | Durée de l'abonnement | Exécution du contrat |
thumbnail_cache | Cache thumbnails (déduplication par hash sha256) | 30 jours après dernier accès | Intérêt légitime (réduction des coûts) |
compliance_deals | Saisies de partenariats influenceurs | Durée de l'abonnement | Exécution du contrat |
brand_kits, clip_subtitle_jobs | Brand kits ClipFlow + jobs de burn sous-titres | Durée de l'abonnement | Exécution du contrat |
user_youtube_channels | OAuth metadata YouTube + refresh_token chiffré AES-256-GCM | Jusqu'à révocation explicite OU effacement du compte | Consentement (art. 6(1)(a)) |
api_keys | Clés API publiques (hashage Argon2id) | Jusqu'à révocation OU 12 mois sans dernière utilisation | Exécution du contrat |
api_usage_logs | Logs des appels API publique | 30 jours (élagué quotidiennement) | Intérêt légitime (debug + abus) |
llm_usage_logs | Coûts par appel LLM pour analytics | 90 jours (élagué quotidiennement) | Intérêt légitime (cost-tracking) |
email_schedules | Planning emails transactionnels (onboarding, alertes) | 180 jours après envoi (élagué quotidiennement) | Exécution du contrat |
email_suppressions | Opt-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 jours | Intérêt légitime (audit livraison) |
webhook_deliveries (status='failed') | Livraisons webhook échouées | 60 jours | Intérêt légitime (forensique) |
ai_disclosure_events | Audit IA Act art. 50 — contenu généré par IA | 5 ans (obligation légale, règlement UE 2024/1689) | Obligation légale |
plan_changes | Historique signup / upgrade / downgrade / churn | 7 ans | Obligation légale (comptabilité) |
classification_credit_transactions | Transactions de crédits de classification (legacy) | 7 ans | Obligation légale (comptabilité) |
stripe_invoices_cache | Cache des factures Stripe | 10 ans | Obligation légale (code de commerce art. L123-22) |
payment_failed_notifications | Notifications d'échec de paiement (dédup webhook) | Durée de l'abonnement | Exécution du contrat |
ingestion_jobs | Jobs d'ingestion automatique de vidéos YouTube | Durée de l'abonnement | Exécution du contrat |
data_export_jobs | Jobs d'export RGPD art. 20 — métadonnées + ZIP | ZIP : 30 jours (Storage lifecycle) — Job row : 90 jours | Intérêt légitime (audit demandes RGPD) |
auth_rate_limit_buckets | Compteurs anti-brute-force (clé hashée IP / email) | Fenêtre glissante 1h-24h selon l'action | Inté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).