Nouveau : automatisations, interfaces et formules

La base collaborative où chaque table est une vraie table PostgreSQL.

La simplicité d’un tableur partagé — grilles, vues, formulaires, droits — et des données qui vivent dans des tables typées et nommées en clair. Votre équipe travaille dans l’interface ; vos scripts, vos outils de BI, vos agents IA et psql lisent les mêmes lignes.

$ docker compose up -d
  • Auto-hébergé
  • AGPL-3.0
  • API REST & serveur MCP
L’interface, pour de vrai

Tout ce que votre équipe attend d’un tableur partagé.

basedb — grille : Une grille qui écrit dans une vraie table — et des champs calculés : une durée par formule, la ville du client par recherche, le nombre de tâches par décompte.
Une grille qui écrit dans une vraie table — et des champs calculés : une durée par formule, la ville du client par recherche, le nombre de tâches par décompte.
PostgreSQL, sans traduction

Une grille pour l’équipe, une vraie table pour vos outils.

Pas de modèle générique, pas de JSON fourre-tout, pas de field_1837 : une base est un schéma, une table est une table, un champ est une colonne typée, nommée en clair.

  • Des types natifs : text, numeric, date, timestamptz, boolean — et de vraies clés étrangères pour les relations.
  • Des contraintes tenues par la base : listes de choix en CHECK, adresses web et e-mails vérifiés, relations en FOREIGN KEY.
  • Des formules calculées par PostgreSQL : JOURS([Fin]; [Début]) devient une colonne générée, que psql lit comme les autres.
  • Le SQL direct reste permis — et même lui est historisé, par déclencheur.
  • Renommer n’est pas casser : l’ancien nom reste servi par un alias de compatibilité le temps de migrer vos requêtes.
Interface Nouveau champ · Opportunités
Obligatoire IA
PostgreSQL b_t4z56fq_ventes.opportunites
ALTER TABLE b_t4z56fq_ventes.opportunites
  ADD COLUMN montant numeric(38,10);
COMMENT ON COLUMN …opportunites.montant
  IS 'Montant HT du contrat';
basedb=> \d opportunites
nomtext
statuttext
montantnumeric(38,10)
echeancedate
clients_iduuid → clients
Collaborer sans tout ouvrir

Des droits jusqu’au champ, un historique sans trou.

Les droits s’accordent à des groupes, sur un projet, une base ou une table, et descendent sur tout ce qui est dessous. Une colonne sensible peut être masquée à un groupe, ou rendue non modifiable pour lui.

  • Quatre niveaux : Aucun accès, Lecture, Édition, Gestion — additifs d’un groupe à l’autre.
  • Chaque écriture est capturée dans sa transaction : interface, API, agent, formulaire public ou SQL direct.
  • Une modification s’annule, une ligne supprimée se restaure, une base supprimée aussi.
  • L’administration se confirme : changer un droit demande d’avoir retapé son mot de passe dans les cinq dernières minutes.
Administrateurs Commerciaux Support
Projet principal Lecture
Ventes Édition
Opportunités hérité Édition
Clients hérité Édition
Support hérité Lecture
Champ « Marge »
>_

Session SQL directe a modifié « Migration ERP »

02:46 · connexion locale · psql

Montant : 125 000 → 130 000

↶ Annuler
▣

Formulaire « Demande de devis » a créé « Refonte de l’intranet »

réponse publique · publié par Camille
Collaborer, automatiser

Toute l’équipe sur la même base, le répétitif en moins.

Les écritures des autres arrivent en temps réel, on discute d’une ligne là où elle se trouve, et les automatisations font le travail répétitif — avec les droits de qui les a écrites.

  • Commentaires et mentions : un @ prévient la personne, la cloche compte ce qui n’est pas lu.
  • Automatisations : quand une ligne est créée ou modifiée, à heure fixe ou d’un clic — modifier, créer, prévenir, appeler un webhook, écrire sur Slack.
  • Interfaces : des tableaux de bord — chiffres, graphiques, listes — que chacun lit avec ses droits.
  • Ctrl+Z annule la dernière écriture, et refuse plutôt que d’écraser le travail d’un autre.
basedb — un tableau de bord : projets en cours, montant encaissé, tâches par statut, sentiment des avis, prochaines échéances.
API REST · MCP · webhooks

Vos agents IA accèdent aux données, pas aux clés du château.

Le serveur MCP donne douze outils aux agents ; l’API REST, les mêmes données à vos programmes. Un seul point de contrôle des droits, les mêmes journaux.

  • Un jeton par base, en lecture seule par défaut, jamais plus de droits que la personne qui l’a créé.
  • Un agent ne supprime rien et ne change pas la structure : il la propose, une personne approuve.
  • Une documentation générée pour chaque base, filtrée par vos droits, avec sa spécification OpenAPI 3.1.
  • Des webhooks signés, ordonnés et réessayés à chaque écriture.
✦ Agent connecté par MCP · jeton « Ventes »
Combien d’opportunités en négociation, et pour quel montant ?
list_records opportunites · statut = Négociation
Deux opportunités, 182 000 € au total : Migration ERP (130 000 €) et Suivi de flotte (52 000 €).
Ajoute un champ « Probabilité » en pourcentage.
propose_add_field opportunites · Probabilité · number
C’est proposé : une personne de l’équipe doit l’approuver dans basedb.
Proposition expire dans 23 h

Ajouter le champ « Probabilité » (Nombre) à Opportunités

Proposée par l’agent · jeton « Ventes »

Refuser Approuver
Et tout le reste

Ce qu’on attend d’un outil d’équipe, sans lâcher PostgreSQL.

Chaque fonction écrit dans les mêmes tables, sous les mêmes droits, dans le même historique.

Huit vues sur les mêmes lignes

Collaboratives pour toute l’équipe, ou personnelles pour soi seul : chacun choisit sa façon de lire, personne ne copie les données.

GrilleKanbanCalendrierChronologieGalerieListeFormulaireQuestionnaire

Formulaires partagés

Un lien public, ou réservé aux membres connectés. Répondre ne donne aucun droit sur la table.

En savoir plus →

Environnements

Une base, plusieurs déclinaisons. Comparez la structure, migrez de l’une à l’autre, synchronisez des lignes.

Production Recette Développement
En savoir plus →

Un historique qui n’oublie personne

Capturé par déclencheur dans la transaction même : même une écriture faite en SQL direct est tracée, avec ses valeurs d’avant. Ctrl+Z annule une modification, une ligne supprimée se restaure.

Une personneUn jeton d’APIUn agent MCPUn formulaire publicDu SQL direct
En savoir plus →

Option IA sur un champ

Un interrupteur « IA » fait remplir un champ par un modèle, à partir des autres colonnes. OpenAI, Anthropic ou Mistral, avec votre clé.

Résume {{Notes}} en une phrase

Copilote

Demandez un filtre, une requête, des colonnes : chaque proposition arrive en carte, et s’applique d’un clic.

Relations

De vraies clés étrangères entre tables, ou des relations multiples ; une valeur d’affichage lisible, des filtres qui traversent la relation.

Formules et champs calculés

Des formules en français, calculées par PostgreSQL ; des recherches, cumuls et décomptes à travers les relations.

ARRONDI([Montant HT] * (1 + [Taux de TVA]); 2)

Vues partagées

Une vue en lecture seule par un lien, intégrable à un autre site ; un calendrier devient un flux pour votre agenda.

Tables synchronisées

Une table tenue à jour depuis un CSV en ligne, un agenda, ou la vue partagée d’un autre basedb.

Modèles de base

Dix modèles prêts à l’emploi, une base décrite en une phrase à l’IA, et la vôtre enregistrée comme modèle.

Fichiers et images

Sur le disque de l’hôte ou dans un stockage compatible S3 : AWS, Scaleway, OVH, Cloudflare R2, Garage, MinIO…

Import CSV et JSON

Glissez un fichier : l’import devine les types, crée la table ou complète une table existante, et dit ligne par ligne ce qui est refusé.

Connexion unique (OIDC)

Mot de passe ou fournisseur d’identité OpenID Connect ; sessions révocables, élévation pour l’administration.

Webhooks

Chaque écriture peut prévenir un autre système : charges signées, livrées dans l’ordre, réessayées.

Console SQL

Écrivez du SQL dans l’interface, sur les vrais noms, avec la même grille pour lire le résultat.

Auto-hébergé

Vos données restent chez vous.

basedb est un logiciel libre (AGPL-3.0) : une seule image, une base PostgreSQL, et c’est tout — ni service tiers imposé, ni télémétrie. Sauvegardez-le avec pg_dump, lisez-le avec n’importe quel client PostgreSQL.

  • db PostgreSQL 16, vos données
  • basedb L’interface, l’API REST et le serveur MCP, sur un seul port
  • proxy Caddy, HTTPS automatique (option)
  1. 1

    Récupérer basedb

    git clone https://github.com/eodia/basedb.git
    cd basedb && cp .env.example .env
  2. 2

    Deux secrets dans .env

    POSTGRES_PASSWORD=un-mot-de-passe-solide
    # openssl rand -base64 32
    BASEDB_ENCRYPTION_KEY=…
  3. 3

    Démarrer

    docker compose up -d
    # puis http://localhost:3000 : créez votre compte
Questions fréquentes

Ce qu’on nous demande souvent.

Une autre question ? La documentation y répond sûrement.

En quoi basedb diffère-t-il des autres bases collaboratives ?

Par l’endroit où vivent les données. Là où d’autres rangent vos lignes dans un modèle générique (colonnes numérotées, documents JSON), basedb crée une vraie table PostgreSQL par table, une vraie colonne typée par champ, avec des noms lisibles. Vos données restent exploitables sans basedb.

Puis-je écrire directement en SQL dans les tables ?

Oui. Les contraintes (types, obligatoire, listes de choix, clés étrangères) sont tenues par PostgreSQL lui-même, et un déclencheur historise même les écritures faites en SQL direct, avec la session qui les a faites. La console SQL de l’interface et psql lisent les mêmes tables.

Qu’est-ce qui part chez un fournisseur d’IA ?

Rien tant que vous n’avez pas configuré de fournisseur. Ensuite, pour les brouillons de structure et le copilote, seules la structure et votre phrase partent par défaut ; la lecture de données par le copilote est une case à cocher, par conversation. Un modèle de base demandé à l’IA n’envoie que votre phrase. Un champ IA envoie les colonnes que sa consigne cite, après un consentement explicite.

Peut-on travailler à plusieurs sur la même table ?

Oui. Les écritures des autres s’affichent sans recharger, avec leur visage sur la table ou la ligne qu’ils regardent. On commente une ligne, on mentionne quelqu’un avec @, la cloche prévient. Et Ctrl+Z n’annule que vos propres écritures : il refuse plutôt que d’écraser ce qu’un autre a changé depuis.

Comment un agent IA se connecte-t-il ?

Par le serveur MCP, avec un jeton d’intégration limité à une base, en lecture seule par défaut. Un agent lit, crée et modifie des lignes selon ses droits ; il ne supprime rien et ne change pas la structure : il la propose, et une personne approuve.

Quelle version de PostgreSQL faut-il ?

PostgreSQL 16 ou plus récent, avec les extensions pg_trgm et unaccent (disponibles dans l’image officielle). Le docker-compose fourni démarre un PostgreSQL 16 ; vous pouvez aussi pointer DATABASE_URL vers votre propre serveur.

Est-ce prêt pour la production ?

basedb est en développement actif : le noyau, l’API, le serveur MCP et l’interface fonctionnent et sont couverts par plus de mille tests, mais certaines fonctions restent à venir (voir la feuille de route). Essayez-le, et sauvegardez votre base comme toute base PostgreSQL.

Sous quelle licence ?

AGPL-3.0-or-later. Vous pouvez l’utiliser, le modifier et l’héberger librement ; si vous proposez une version modifiée comme service, vous en partagez les sources.

Vos données méritent de vraies tables.

Installez basedb en quelques minutes, invitez votre équipe, et gardez la main sur chaque ligne.