SÉCURITÉ · CONFIDENTIALITÉ

Les données d'un dossier n'appartiennent pas à son outil.

JuriDX héberge ses données en Union européenne, chiffre au repos comme en transit, n'utilise jamais les contenus de vos dossiers pour entraîner un modèle, et publie sa politique de sous-traitance. Le document de référence est ce SECURITY.md que nous gardons à jour.

Hébergement en UE

Hetzner Online GmbH — Gunzenhausen, Allemagne. Centres de données en Union européenne, droit allemand, RGPD applicable.

Chiffrement systématique

AES-256 au repos pour les données stockées. TLS en transit pour toutes les communications. Cookies de session HttpOnly uniquement.

Aucun entraînement sur vos données

Les contenus des dossiers, notes, brouillons et situations de fait ne sont jamais utilisés pour entraîner un modèle, chez nous ou chez nos sous-traitants.

Authentification et session.

Jeton d'accès JWT 15 min stocké dans un cookie HttpOnly nommé juridx-access.
Jeton de rafraîchissement JWT 30 j stocké dans un cookie HttpOnly juridx-refresh, scope path: /api.
Renouvellement Transparent côté client via getAccessToken() : le jeton d'accès est reforgé à la première requête après expiration, sans interaction.
Déconnexion Appel explicite qui invalide le refresh côté serveur et purge les deux cookies. Le jeton d'accès reste valide pendant sa durée de vie résiduelle (15 min au plus) faute de liste de révocation — compromis assumé, documenté dans SECURITY.md.

Défenses appliquées à chaque requête.

CSRF

Toute route mutante (POST, PATCH, PUT, DELETE) vérifie Origin ou Referer via verifyOrigin(). Les requêtes cross-origin reçoivent HTTP 403. Les appels serveur-à-serveur sans ces en-têtes restent acceptés ; la garde JWT s'applique toujours.

Validation stricte

Toutes les routes en écriture valident le corps de la requête avec des schémas Zod définis dans src/lib/schemas/. Une entrée invalide renvoie HTTP 400 avec erreurs par champ. Les query params des routes admin sont allowlistés.

Rate limiting

Les routes /login et /register transmettent X-Forwarded-For à l'API amont, qui applique un rate limiting par IP. Les en-têtes Retry-After et X-RateLimit-* sont relayés au navigateur.

Séparation admin

Les routes /api/admin/* exigent un JWT valide ; l'application des rôles (admin / super_admin) est faite par l'API amont, source autoritaire. Le proxy ne parse pas le JWT.

Les en-têtes que nous envoyons sur chaque réponse.

En-tête Valeur
Strict-Transport-Security max-age=63072000; includeSubDomains; preload (2 ans, preload)
X-Frame-Options DENY
X-Content-Type-Options nosniff
Referrer-Policy strict-origin-when-cross-origin
Permissions-Policy Caméra et géolocalisation désactivées ; microphone restreint à l'origine
Content-Security-Policy Allowlist : self + iframes Stripe + API Stripe

Nos sous-traitants, par transparence.

JuriDX s'appuie sur quatre sous-traitants identifiés. Un DPA complet est annexé à votre contrat professionnel ; une version téléchargeable est disponible sur demande.

Hetzner Online GmbH

Allemagne. Hébergement et infrastructure. Droit allemand, RGPD, centres de données en Union européenne.

Stripe, Inc.

États-Unis. Paiements. Transfert UE vers US encadré par clauses contractuelles types.

OpenAI, LLC

États-Unis. Capacités d'IA (chat, analyse, brouillon). Conditions de l'API OpenAI applicables — pas d'utilisation des données pour l'entraînement des modèles.

Resend

Emails transactionnels : réinitialisation de mot de passe, bienvenue, factures, digest hebdomadaire.

Rétention.

Compte Conservé pendant la durée de l'abonnement, puis 3 ans après la clôture.
Facturation 10 ans — obligation comptable française.
Journaux d'utilisation 12 mois — requêtes, crédits consommés, horodatages.
Brouillons IA Supprimés immédiatement lors de la suppression du brouillon. La suppression d'un dossier purge tous ses brouillons et situations de fait.
Données de dossier Chiffrées au repos. Export et suppression disponibles sur demande à privacy@juridx.fr.

Vos droits.

Conformément au RGPD, vous pouvez à tout moment exercer les droits suivants sur vos données personnelles.

Pour exercer ces droits : privacy@juridx.fr, avec une copie de pièce d'identité. Nous répondons dans un délai d'un mois. Vous pouvez également saisir la CNIL — 3 Place de Fontenoy, 75007 Paris.

Brouillon IA — garde-fous techniques.

  • Le texte de la situation de fait est transmis à OpenAI pour générer le brouillon, puis stocké dans notre base afin de permettre la consultation ultérieure.
  • La situation de fait n'est jamais utilisée pour entraîner un modèle.
  • Un mécanisme de vérification de sources rejette les citations d'articles absents de la sélection de l'utilisateur. Seuil de tolérance : moins de 30 % de citations non vérifiées, au-delà duquel le brouillon est rejeté.
  • Chaque brouillon porte la mention « BROUILLON IA — À vérifier par un avocat », à l'écran, à l'impression et à l'export PDF (filigrane diagonal, opacité 8 %, non retirable).
  • Plafonnement : 10 générations par utilisateur par fenêtre glissante de 24 h.

Signaler une faille.

Les rapports de vulnérabilité sont bienvenus à security@juridx.fr. Nous répondons sous 5 jours ouvrés. Merci de nous donner un délai raisonnable de correction avant publication.

Ce que nous n'avons pas encore résolu.

Ces éléments sont documentés textuellement dans SECURITY.md, section « Known Limitations ».

Besoin d'un DPA personnalisé ?

Pour les organisations avec des exigences spécifiques (banque, santé, collectivités, barreaux), nous adaptons le DPA à votre contexte.

Nous écrire