跳转到主要内容
Trust & Compliance

VidiaFlow — Sécurité & Fiabilité

Mise à jour : 12 mai 2026

Document public — destiné aux prospects B2B (agences, marques, studios), aux équipes conformité, et aux réponses RFP. Peut être partagé librement. Pour toute question : security@vidiaflow.com.


TL;DR pour acheteurs B2B

VidiaFlow héberge ses données en Union européenne (Supabase Frankfurt, Vercel EU), chiffre les credentials tiers en AES-256-GCM, et applique une isolation Row-Level Security stricte sur 100 % des tables Postgres. Côté conformité, nous avons shippé l'engine de disclosure EU AI Act art. 50 trois mois avant la deadline du 2 août 2026 et un module dédié à la loi influenceurs FR 2023-451. Nous ne sommes pas certifiés SOC 2 ni ISO 27001 à ce jour — ces audits sont en roadmap Q4 2026 / Q1 2027. Cette page liste, sans embellissement, ce qui est shippé, ce qui est en cours, et ce qui ne l'est pas encore.


1Architecture

1.1 Stack technique

  • Hébergement : Vercel (régions EU) + Supabase (Frankfurt, eu-central-1)
  • Chiffrement au repos : standard Postgres managé Supabase (AES-256, clés gérées par Supabase)
  • Chiffrement en transit : TLS 1.3 sur tous les endpoints publics, certificats Let's Encrypt managés par Vercel
  • Chiffrement des tokens tiers (refresh tokens YouTube OAuth, secrets webhook) : AES-256-GCM avec authTagLength=16 pinné au niveau du cipher/decipher Node — closed audit Semgrep, PR #401 (5 mai 2026)
  • Secrets applicatifs : variables d'environnement Vercel chiffrées ; jamais committés ; rotation manuelle documentée en runbook interne

1.2 Authentification

  • Supabase Auth : OAuth Google + email/password
  • Sessions JWT signées côté Supabase, validées dans le middleware Next.js sur chaque route protégée
  • Aucun mot de passe stocké en clair (hash bcrypt Supabase)
  • 2FA / MFA disponible côté Supabase, activable par l'admin du compte (non encore proposé dans l'UI VidiaFlow — roadmap Q3 2026)
  • Sessions invalidables côté serveur (revoke immédiat en cas de compromission)

1.3 API publique

L'API REST /api/v1/* (Studio + Agency natif, Pro via add-on) applique les contrôles suivants :

  • Clés API hashées en Argon2id — le plaintext est affiché une seule fois à la création (reveal-once modal) puis ne quitte jamais la mémoire du client. La base ne contient que le hash.
  • Header Idempotency-Key (pattern Stripe) — replay-safe pendant 24 h, retourne Idempotent-Replayed: true en cas de replay.
  • Webhooks sortants signés HMAC-SHA256 — header au format t=<unix>,v1=<base64> (pattern Stripe). Retry queue dédiée avec backoff exponentiel 30 s / 120 s / 600 s, 4 tentatives maximum (PR #159).
  • Rate limit per-key, plan-aware — buckets minute / heure / jour, applicables sans toucher le code applicatif.
  • Audit log structuré dans la table api_usage_logs (await persistant — fix Vercel lambda PR #154).
  • CORS allowlist configurable via API_CORS_ALLOWED_ORIGINS.
  • Tags Sentry auto-injectés sur chaque erreur (api.endpoint, api.plan, prefix 8-char de la clé).

Cap : 10 clés actives maximum par utilisateur.


2Conformité réglementaire

2.1 RGPD (UE)

  • Données hébergées dans l'UE (Supabase Frankfurt — eu-central-1)
  • Droit à l'effacement : implémenté via Supabase Auth auth.users + cascade delete sur toutes les tables liées (RLS sur user_id)
  • Portabilité : export JSON disponible sur demande à security@vidiaflow.com (procédure manuelle pour l'instant — endpoint self-service en roadmap)
  • DPO : non encore désigné (étant donné le volume de données traitées en mai 2026, le seuil RGPD n'est pas atteint). Désignation prévue dès franchissement du seuil.
  • Sous-traitants documentés section 4.4
  • Durée de conservation documentée section 4.3

2.2 EU AI Act — Article 50 (disclosure)

L'engine de disclosure a été shippé le 2 mai 2026, soit trois mois avant la deadline du 2 août 2026 (PR #187, 8 chunks).

  • 5 carriers : badge UI, tooltip, header HTTP Content-Authenticity, JSON-LD envelope dans les réponses API, blocs NOTE dans les fichiers SRT générés, footers dans les emails IA
  • C2PA manifest signing des thumbnails via @contentauth/c2pa-node (certificat self-signed v1 — adhésion à la trust list officielle reportée, non bloquante pour la conformité)
  • Audit trail dans la table ai_disclosure_events — le log s'écrit indépendamment du feature flag de rollout (chunk 8 — la table garde le forensic trail même quand les carriers UI sont cachés)
  • Page publique /ai-disclosure documente les 5 carriers, accessible en 9 langues, conforme WCAG 2.1 AA
  • Surfaces couvertes (tier A) : 5 routes dashboard + 5 routes API publiques + 1 cron — chaque appel à un modèle génératif appelle logDisclosure()

2.3 Loi Influenceurs FR — Loi n° 2023-451

Module dédié, accessible aux plans Pro+ et au futur produit B2B Compliance (compliance.vidiaflow.com, landing live, build prévu Sprint 3) :

  • Détection automatique de mentions #publicité, #sponsorisé, #collaboration sur les publications surveillées
  • Audit trail des deals avec montant, annonceur, présence du label obligatoire, présence d'un contrat écrit
  • Rapports trimestriels PDF prévus pour les tiers Business et Enterprise du produit standalone
  • Rappel produit : la loi expose à des amendes jusqu'à 300 000 € en cas de manquement

2.4 Mentions légales (LCEN)

La page /legal/mentions-legales lit les informations SIRET / adresse / forme juridique depuis des variables d'environnement (VIDIAFLOW_LEGAL_*). Tant que ces variables ne sont pas renseignées, un bandeau ambre signale visiblement les champs manquants. Statut au 12 mai 2026 : SIRET et adresse en cours d'immatriculation — VidiaFlow opère en pré-commercial jusqu'à finalisation.


3Sécurité applicative — Audits 2026

3.1 Audits récents (5 mai – 12 mai 2026)

Six audits techniques internes ont été persistés dans docs/audits/ du dépôt source. Une session de hardening intensive a closé 15 PRs le 12 mai 2026 sur sept classes de findings :

ClasseFindingsPRsStatut
CRITICAL — Silent fails3#408, #410, #411Closed
CRITICAL — Stripe webhook idempotency1#412Closed
HIGH — Quota race conditions2#413Closed
HIGH — Fetch timeouts4#414Closed
HIGH — Prévention OOM / memory leak1#415Closed
HIGH — SSRF (Server-Side Request Forgery)2#416Closed
HIGH — Rate limit / spam protection1#417Closed

3.2 Tests automatisés

  • 96 unit tests ajoutés sur les 15 PRs du 12 mai (cumul environ 775 tests)
  • CI gating sur chaque PR : ESLint, TypeScript strict (tsc --noEmit), build Next.js, deploy preview Vercel, axe-core a11y blocking
  • Taux de réussite CI : 100 % vert sur la session du 12 mai

3.3 Outils en place

  • Semgrep : règles OWASP Top 10 + détection de secrets + crypto Node.js (le pinning authTagLength=16 a été identifié par cette suite)
  • TypeScript strict mode activé sur l'ensemble du projet
  • ESLint avec règles security (no-eval, no-new-func, etc.)
  • Sentry monitoring production, tags structurés par endpoint et plan
  • Dependabot sur GitHub pour les CVE upstream

3.4 Hardening historique notable

  • AES-256-GCM authTagLength pinning (PR #401, 5 mai 2026) — robustesse contre les attaques par tag truncation
  • WCAG 2.1 AA compliance validée par audit axe-core CI (PR #72, 21 avril 2026) — Lighthouse 100/100 sur 5 routes critiques
  • Argon2id pour API keys (PR #152, 25 avril 2026)
  • Row-Level Security par-commande sur 100 % des tables Postgres applicatives — pas une seule table en RLS DISABLED

4Données utilisateur

4.1 Types collectés

  • Email, nom, locale préférée (signup)
  • URLs YouTube fournies par l'utilisateur, transcripts générés, vidéos sources uploadées
  • Métadonnées de génération : style, langue, paramètres de sous-titrage
  • Logs d'usage anonymisés pour métriques de coût LLM

4.2 Accès interne

  • RLS sur 100 % des tables — chaque requête utilisateur est filtrée par user_id = auth.uid() au niveau Postgres
  • Le seul rôle avec accès illimité est service_role — utilisé exclusivement par les crons backend et les webhooks, jamais exposé au front
  • Les clés service_role ne sont jamais committées ; uniquement présentes dans les variables d'environnement Vercel chiffrées
  • Le founder accède aux données de production via les pages /admin/*, gated par isFounder() (comparaison stricte à FOUNDER_EMAIL)

4.3 Durées de conservation

  • Vidéos sources (uploads ClipFlow) : 24 h après finalisation du burn, puis supprimées par cron clipflow-storage-lifecycle
  • Outputs générés : 7 j (Free) / 30 j (Creator+) / 90 j (Studio+)
  • Logs applicatifs : 30 j puis archivés/anonymisés
  • Audit logs AI Act : conservation prolongée à des fins de conformité réglementaire (sera précisée après consultation juridique avant le 2 août 2026)
  • Comptes inactifs : aucune purge automatique aujourd'hui ; politique formalisée en Q3 2026

4.4 Sous-traitants (data processors)

FournisseurRôleRégionNotes
SupabaseBase de données, auth, storageEU — FrankfurtDPA signé
VercelHébergement applicatifEU regionsDPA disponible
StripePaiementEU pour transactions EUPCI-DSS Level 1
AnthropicLLM (Claude)USOpt-out training par défaut
OpenAILLM fallback (GPT-5 mini)USOpt-out training par défaut
GroqTranscription (Whisper)USPas d'usage entraînement
ResendEmails transactionnelsEUDPA disponible
Google Cloud (Gemini)Génération de thumbnailsUSOpt-out training

Aucun transfert hors-UE ne concerne les données utilisateurs persistées (base, auth, storage). Les LLM US reçoivent uniquement les prompts au moment de la requête, sans persistence côté provider (configuration opt-out documentée).


5Roadmap sécurité

Court terme — Q3 2026

  • ISO 27001 self-assessment (gap analysis interne)
  • Désignation formelle d'un DPO
  • Pen-test externe annuel (premier scope : API publique + webhooks)
  • Export self-service RGPD (endpoint utilisateur)
  • MFA exposé dans l'UI VidiaFlow (au-delà du toggle Supabase)

Moyen terme — Q4 2026 → Q1 2027

  • SOC 2 Type I (préparation avec auditeur externe)
  • Cloudflare Turnstile sur les formulaires marketing (anti-bot)
  • Audit RGPD juridique externe
  • Bug bounty program public (HackerOne ou équivalent)

Long terme — 2027 et au-delà

  • SOC 2 Type II
  • ISO 27001 certifié
  • HIPAA — uniquement si une verticale santé matérialise (non priorité au 12 mai 2026)

6Contact sécurité

  • Responsible disclosure / bug bounty informel : security@vidiaflow.com
  • DPO : à désigner (Q3 2026)
  • PGP : clé à générer ; en attendant, contact direct par email avec accusé de réception sous 48 h ouvrées
  • SLA divulgation : nous nous engageons à répondre sous 5 jours ouvrés et à coordonner un calendrier de fix avec le chercheur

7Transparency Report

7.1 Incidents 2026

  • 0 breach déclaré
  • 0 data leak confirmé
  • 0 incident significatif au sens du RGPD art. 33 (notification à la CNIL non requise)

7.2 Demandes légales

  • 0 demande gouvernementale reçue
  • 0 take-down notice reçue

Ce registre est mis à jour à chaque événement matériel.


Audit interne du présent document

Pour préserver la confiance, voici ce qui est shippé versus en roadmap :

Shippé (vérifiable dans le code public) :

  • AES-256-GCM authTagLength pinning
  • Argon2id pour API keys + Idempotency-Key + HMAC webhooks
  • RLS par-commande sur 100 % des tables
  • Engine EU AI Act art. 50 (5 carriers + C2PA + audit trail)
  • 15 PRs hardening du 12 mai 2026
  • WCAG 2.1 AA validée axe-core CI
  • Hébergement EU Supabase Frankfurt + Vercel EU
  • Page /ai-disclosure publique

En roadmap (aspirations datées, non encore réalisées) :

  • SOC 2 Type I (Q4 2026 → Q1 2027)
  • SOC 2 Type II (2027+)
  • ISO 27001 certifié (2027+)
  • DPO désigné (Q3 2026)
  • Pen-test externe annuel (Q3 2026)
  • Bug bounty public (Q4 2026)
  • Export RGPD self-service (Q3 2026)
  • Clé PGP du contact sécurité (Q3 2026)
  • C2PA cert sur trust list officielle (au-delà du self-signed v1)
  • MFA exposé dans l'UI VidiaFlow

Pré-commercial au 12 mai 2026 :

  • Mentions légales SIRET / adresse en cours d'immatriculation — bandeau ambre visible sur /legal/mentions-legales

Ce document est mis à jour à chaque incident, audit, ou changement matériel. Dernière mise à jour : 12 mai 2026. Pour la version anglaise, contacter security@vidiaflow.com.