Documentation

Principes de sécurité

Les quatre engagements non négociables de betool : multi-tenant strict, audit des accès cross-tenant, refus motivé des opérations destructives, LLM souverains.

betool est conçu pour des environnements régulés. La sécurité n'est pas une couche ajoutée tardivement : c'est l'invariant qui structure chaque ligne de code, chaque migration, chaque module.

1. Multi-tenant strict

Chaque organisation possède ses propres données, pipelines, secrets, fichiers et clés LLM. L'isolation est appliquée :

  • À la base de données — toutes les tables métier portent une colonne org_id indexée, et les requêtes côté serveur filtrent toujours par l'org de la session.
  • Au système de fichiers — chaque org a sa racine sous <data_root>/orgs/<org_id>/. Aucun chemin partagé.
  • Aux caches — caches per-org, jamais d'entrée mutualisée sans flag explicite is_shared = TRUE.
  • Aux secrets — chaque org a ses propres clés API et tokens, stockés côté serveur et jamais réexposés en clair. Pas de fallback global. Les secrets saisis dans la configuration d'un nœud (secret HMAC, token, mot de passe) sont eux aussi masqués partout où la configuration est relue — éditeur, API, outils MCP lus par une IA, propositions.

2. Audit obligatoire des accès cross-tenant

Certains rôles (typiquement les opérateurs de la plateforme côté vendor) peuvent avoir besoin d'accéder à du contenu d'une autre organisation pour le support. Cet accès est :

  • Conditionné à un opt-in côté organisation cible — révocable à tout moment depuis l'admin.
  • Journalisé à chaque accès — table d'audit dédiée, scopée par org cible, exposée aux clients via GET /api/admin/me/supervisor-reads.
  • Refusé en cascade si l'audit échoue — pas de lecture sans trace.

Voir Audit RGPD.

3. Refus motivé sur opérations destructives

Toute opération qui détruit ou remplace du contenu d'une autre organisation (REPLACE-IN-PLACE des enfants, DELETE) est refusée si l'org cible n'a pas activé l'opt-in lecture. Raison : sans visibilité, l'opérateur propose à l'aveugle un payload qui écraserait l'existant.

4. Souveraineté des modèles LLM

  • BYOK natif — vos clés OpenAI, Anthropic, Google sont gérées par votre organisation. Aucune fuite cross-org. BYOK est facultatif (des modèles managés existent, facturés en crédits) mais recommandé en environnement régulé.
  • Modèles privés — Ollama, LM Studio ou tout endpoint compatible OpenAI (vLLM…) hébergé chez vous ou dans votre cloud privé. Les prompts et complétions ne sortent jamais de votre périmètre.
  • Pas de pool partagé silencieux — si une org utilise un modèle shared, c'est une décision explicite avec contrôle d'accès.

Posture d'ingénierie

Notre standard est la précision : robustesse maximale, observabilité totale, déterminisme, anti-confabulation, anti-régression, tests à chaque coin.

Concrètement, à chaque arbitrage architecture / code / prompt :

ChoixChoix attenduPourquoi
Latence × 2 vs raisonnement abrégé× 2La précision perdue se paye en confiance utilisateur
Capture observabilité fine vs logs essentielsCapture fineSans visibilité on diagnostique à l'aveugle
Shortcut qui dégrade un comportementRefusLe risque comportemental se mesure en incident client

Mantra : « Si quelqu'un trouve un bug, c'est qu'on n'avait pas mis assez de garde-fous, pas qu'on en avait mis trop. »

Pour aller plus loin