Sécurité
Constat vérifié le 28 octobre 2026
Cette page est destinée à votre DSI ou à votre RSSI. Elle décrit où vivent vos données, comment elles sont protégées, qui y a accès et ce qui sort vers un tiers. Elle est établie depuis la configuration réelle du service, pas depuis une plaquette commerciale : quand une information n'est fixée nulle part dans notre code, c'est écrit.
1. Hébergement et régions
Régions vérifiées dans les consoles des deux hébergeurs.
| Service | Région | Détail |
|---|---|---|
| Base de données et vecteurs (Supabase) | eu-north-1, Stockholm |
PostgreSQL 17.6 avec pgvector |
| Serveur applicatif (Railway) | europe-west4-drams3a, Amsterdam |
Une instance |
Les deux sont dans l'Union européenne : au niveau de l'hébergement, il n'y a pas de transfert hors UE. Le serveur et la base ne sont pas dans la même région, ce qui n'a pas d'incidence réglementaire mais ajoute une quinzaine de millisecondes par aller-retour.
Le site que vous lisez et l'application sont servis par Netlify, qui ne reçoit aucun contenu : des fichiers statiques, plus les journaux d'accès habituels (adresse IP, navigateur).
2. Chiffrement
Ce qui est chiffré, et par quel moyen, en production aujourd'hui.
- Les autorisations d'accès à vos comptes (jetons OAuth Google et Microsoft) sont chiffrées au niveau applicatif, en AES-256-GCM, avec une clé dédiée.
- Le contenu de la mémoire longue, ce que Sam retient de vos messages et documents pour produire vos briefs, est chiffré au niveau applicatif, en AES-256-GCM, avec une clé distincte de la précédente. En service depuis le 28 octobre 2026, lignes antérieures comprises.
- Le disque de la base est chiffré au repos par l'hébergeur (AES-256). C'est ce qui protège les autres contenus (brief, conversations du chat, points de suivi), pour lesquels il n'existe pas aujourd'hui de chiffrement applicatif distinct.
Les limites, puisqu'elles comptent autant que le reste.
Les vecteurs ne sont pas chiffrés. À côté du contenu, Sam stocke des représentations numériques qui servent à retrouver un passage par similarité. Ce calcul a lieu dans la base : les chiffrer rendrait la recherche impossible.
Le chiffrement applicatif protège la base, pas le serveur. Il couvre la fuite d'une sauvegarde, d'un export, ou d'un accès en lecture à la base. Il ne couvre pas une compromission du serveur applicatif, qui détient la clé.
3. Cloisonnement entre comptes
Le cloisonnement est appliqué au niveau applicatif : un filtre de locataire centralisé contraint chaque requête au compte connecté, complété par des filtres explicites audités sur les chemins qui ne passent pas par lui.
Nous le disons ainsi parce que c'est la réalité du code : le mécanisme de cloisonnement de la base lui-même (row level security) n'est pas actif sur le chemin applicatif, le service s'y connectant avec un rôle qui le contourne. L'affirmer serait plus vendeur, et faux.
4. Sous-traitants
Les destinataires qui reçoivent effectivement des données, et ce qu'ils en reçoivent.
| Prestataire | Rôle | Données reçues | Région |
|---|---|---|---|
| Supabase | Base de données et vecteurs | L'ensemble du compte, jetons chiffrés compris | eu-north-1, Stockholm |
| Railway | Hébergement du serveur | Tout, en transit et en mémoire ; aucun stockage durable | europe-west4-drams3a, Amsterdam |
| Netlify | Hébergement du site et de l'application | Aucun contenu : fichiers statiques et journaux d'accès | Non documentée |
| Anthropic | Modèle de langage : brief, chat, classement en dossiers | Des extraits de vos contenus et vos questions, le temps de la requête | Non documentée |
| OpenAI | Indexation sémantique | Chaque fragment de contenu indexé | Non documentée |
| Twilio SendGrid | E-mails de service, et e-mail du brief si vous l'activez | Votre adresse ; le contenu du brief uniquement si l'envoi est activé | Non documentée |
| Services de notification des navigateurs | Acheminement des notifications, si vous les acceptez | Titre et corps de la notification, génériques : aucun contenu de brief | Non documentée, dépend de votre navigateur |
« Non documentée » ne veut pas dire « hors UE ». Cela veut dire que rien dans notre configuration ne fixe la région pour ce prestataire : il achemine où il l'entend, selon ses propres conditions. Une garantie de localisation se contractualise et se configure, elle ne se décrète pas sur une page web.
Vos outils ne sont pas des sous-traitants
Google, Microsoft, Slack et Notion ne reçoivent rien de nous : Sam y lit, en lecture seule, sur autorisation que vous donnez et pouvez retirer. Ce sont des sources, pas des destinataires.
Un second fournisseur de modèle (Mistral) est intégré au code mais n'est pas activé : il n'a jamais reçu la moindre donnée.
5. Entraînement des modèles
Vos messages et documents ne servent pas à entraîner de modèle, au titre des conditions des interfaces de programmation de nos fournisseurs d'IA.
Soyons précis sur ce qui porte cette garantie : elle repose sur les conditions commerciales de ces fournisseurs, pas sur un réglage de notre code. Notre code ne fixe aujourd'hui ni région, ni durée de rétention chez eux. Les durées de conservation que nous maîtrisons sont celles de notre base, décrites ci-dessous.
6. Effacement et révocation
- Effacer ce que Sam a retenu : un bouton dans vos paramètres purge le contenu indexé. Sans démarche, sans nous écrire.
- Retirer l'accès à vos comptes : depuis votre compte Google ou Microsoft, à tout moment, sans passer par nous. La suppression de compte déclenche aussi une révocation de notre côté.
- Supprimer le compte : le contenu est purgé et l'identité pseudonymisée. Le mot est choisi : l'adresse e-mail et le nom sont conservés pour le rattachement à une organisation, donc la donnée ne sort pas du champ du RGPD. Parler d'anonymisation serait inexact.
7. Contact
Une question que cette page ne couvre pas, ou une pièce à fournir à votre direction des systèmes d'information : contact@maclemon.fr