Aller au contenu

Principes

basedb a été conçu à partir d’un document d’architecture — seize chapitres, dans le dépôt, sous docs/architecture. Son chapitre 00 fixe vingt-cinq décisions ; en voici l’esprit.

Une base utilisateur est un schéma PostgreSQL, une table est une table, un champ est une colonne typée nommée en clair. Pas d’EAV (entité-attribut-valeur), pas de document JSON fourre-tout, pas de nom opaque. Le catalogue _basedb décrit ces objets ; il ne les remplace pas.

Conséquence voulue : le SQL direct est un usage légitime. Les contraintes sont posées dans la base, l’historique est capturé par déclencheur — rien ne suppose que l’écriture passe par l’application.

L’interface, l’API REST, le serveur MCP, les formulaires partagés, les webhooks : tout passe par le même point d’application des permissions, dans le noyau. L’interface est un consommateur de l’API comme un autre — pas de route privée, pas de jeton de service. Une ressource qu’on ne peut pas voir répond exactement comme une ressource qui n’existe pas.

Un monorepo TypeScript : @basedb/core porte toute la logique (catalogue, moteur DDL, permissions, enregistrements, historique) ; apps/api (Hono), apps/mcp et apps/web (Next.js) sont des adaptateurs qui ne s’appellent pas entre eux. L’interface ne dépend jamais du noyau : elle parle HTTP, point.

Supprimer relègue, sans détruire : une table supprimée garde ses lignes, lisibles en SQL sous un nom relégué, et se restaure. Renommer un nom physique garde l’ancien servi par un alias. La purge est une décision d’administration, précédée d’un export vérifié.

PostgreSQL 16 ou plus, et aucune dépendance externe obligatoire : ni file de messages, ni cache, ni moteur de recherche. La file des webhooks, le drain de l’historique, les limites de débit, tout tient dans la base ou dans le processus.

ChapitreSujet
00Décisions structurantes et registre des codes d’erreur
01Nommage et slugification
02Le catalogue _basedb, source de vérité
03Moteur DDL et migrations
04Types de champs et projection PostgreSQL
05Permissions
06Cycle de vie : renommage, suppression, purge
07Historique
08API REST et webhooks
09Serveur MCP
10Architecture logicielle
11Interface
12Intégration IA
13Authentification
14Environnements
15Formulaires partagés

basedb est un logiciel libre d’Eodia, studio de logiciel IA-natif.