Back-end

Sous le capot : un back-end bâti pour la confiance.

L’essentiel de la valeur d’Open BrAIn est invisible : isolation des données, versions immuables, décisions signées, reprises sans doublon. Voici comment les briques s’assemblent.

CLIENTS Console webReact · démonstration ou connectée Votre chatbot / LLMvia MCP, avec son propre modèle Agents en missionmandat borné, rapport candidat Worker de corpusimports et traitements de fond Passerelle navigateur OIDC + PKCE · session · CSRF DEUX CŒURS, UN MÊME CONTRAT Cœur de référence · Python FastAPI · HTTP + MCP · worker de fichiers Cœur natif · Rust Axum · HTTP + MCP · espaces de travail · graphe PostgreSQL identités · droits · propositions · journal · épisodes Versions publiées figées, servies une fois complètes Modèles optionnels, bornés fournisseur hébergé ou modèle local Décision humaine hors de portée des modèles Identité de l’entreprise jetons vérifiés · rotation des clés

Les clients ne passent que par les API publiques. Le client de l’assistant n’expose aucune méthode d’approbation ni de publication. Le cadre en pointillé désigne un composant optionnel.

Deux cœurs, un même contrat

Une référence lisible, un moteur natif rapide.

Cœur de référence (Python)

Il définit le comportement attendu : 94 opérations HTTP décrites par un contrat versionné, chacune exposée comme outil MCP. Il couvre les imports de fichiers, la synthèse bornée et la sélection de passages par modèle.

Livré

Cœur natif (Rust)

Il reprend le même contrat et le même schéma de données, et ajoute 78 opérations natives : espaces de travail, tâches, missions d’agents, graphe immuable, dossiers de revue.

Livré sur données synthétiques Remplacement en production à décider

48migrations de schéma versionnées, partagées par les deux cœurs
54décisions d’architecture documentées (ADR)
110outils MCP dans le cœur de référence
172opérations HTTP dans le contrat du cœur natif : 94 de référence et 78 extensions

Données

Chaque organisation dans sa bulle, chaque version figée.

PostgreSQL porte les identités, les droits, les propositions, le journal et l’historique des conversations. Chaque organisation est strictement isolée des autres, quel que soit le chemin d’accès.

Le graphe de connaissances du cœur natif conserve chaque version publiée. Une version est figée et n’est servie qu’une fois complète ; une panne en cours de publication ne laisse ni doublon ni état incohérent.

Livré Coût à froid et mémoire du graphe en qualification

v40figée v41figée v42servie Journal immuable des décisions qui a approuvé · qui a publié · quand · pourquoi Rejeu à l’identique l’état se reconstruit Compensation corriger sans effacer

MCP exhaustif

Tout ce que fait l’interface, un assistant peut le faire, dans les règles.

Le serveur MCP (Model Context Protocol) expose chaque opération HTTP comme un outil, en passant par la même authentification, les mêmes droits et les mêmes validations. Rien n’est contourné. Il fournit aussi des ressources et des guides de parcours pour les assistants : consulter et citer, signaler une erreur, suivre un signalement, traiter une tâche, proposer une correction, examiner un domaine, mesurer son assistant.

Même porte d’entrée

Un outil MCP appelle la même route que l’interface. Pas de chemin de traverse pour les modèles.

Actions sensibles confirmées

Approuver ou publier par MCP exige une confirmation explicite du responsable, qu’aucun modèle ne peut produire.

Compatible avec tout LLM

Aucun modèle imposé : l’assistant de l’utilisateur se connecte avec ses propres droits.

Robustesse

Conçu pour les pannes, pas seulement pour les démonstrations.

Garde-fouEffetÉtat
Clés d’idempotenceUne commande rejouée après une coupure ne s’exécute pas deux fois ; la même clé avec un autre contenu est refusée.Livré
Délais par opération20 s par défaut, 60 s pour la synthèse, 120 s pour la publication. Au-delà, l’issue est déclarée incertaine et se vérifie dans le reçu.Livré
Limites de transportTailles maximales explicites pour les messages, les fichiers, les sources et les réponses, et des erreurs distinctes pour chaque cas.Livré
Analyse de fichiers isoléeTemps, processeur, mémoire et décompression bornés : un document piégé ne fait pas tomber le service.Livré
Restauration coordonnéeSauvegarde conjointe de la base et du graphe, restaurée sur des cibles neuves avec identifiants et droits intacts. Une archive altérée est refusée.Livré sur synthétique
Rotation des clés d’identitéLes clés du fournisseur d’identité changent sans redémarrage, et une clé inconnue est refusée.Livré Fournisseur réel à qualifier
DisponibilitéHaute disponibilité, objectifs de reprise et sauvegarde à chaud.En conception

Pile technique

Des briques éprouvées, des versions épinglées.

Back-end

Python 3.12 · FastAPI · SQLAlchemy
Rust · Axum · sqlx · tokio

Données

PostgreSQL 17 · migrations Alembic
Une base de graphe versionnée pour les versions publiées

Protocoles

HTTP/JSON avec contrat OpenAPI
MCP Streamable HTTP · OIDC · JWKS

Front-end

React 18 · TypeScript · Vite
Vitest · Playwright

Les licences de toutes les dépendances sont vérifiées automatiquement : 421 paquets Python et Node, 348 crates Rust.