Nouveau : automatisations en flux, tableaux de bord et vues SQL

La base collaborativeoù chaque table estune 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.
  • Des requêtes et des vues SQL dans l’interface : des requêtes enregistrées sous les tables, pour soi ou pour l’équipe, et de vraies vues PostgreSQL rangées parmi elles, que psql lit aussi.
  • 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
Automatiser

Des automatisations en flux, l’IA à chaque étape.

Quand une ligne change, à heure fixe ou d’un clic : un éditeur en graphe enchaîne les étapes, et chaque exécution se relit sur le flux.

  • Un flux lisible : le déclencheur, puis chaque étape en carte ; un + sur un trait ajoute une étape à cet endroit.
  • Chercher, décider, écrire : trouver une ligne, prendre un chemin ou un autre selon des conditions, modifier, créer, prévenir, appeler un webhook, écrire sur Slack.
  • Demander à l’IA dans une étape : une consigne qui cite la ligne, une réponse lue comme texte, nombre, date ou choix, que les étapes suivantes réutilisent.
  • Le Copilot propose une automatisation entière à partir d’une phrase, ou explique pourquoi une exécution a échoué — rien ne s’enregistre sans vous.
  • Avec les droits de qui l’a écrite, et dans l’historique comme toute autre écriture.
basedb — l’automatisation « Projet livré » dans l’éditeur en flux : quand une tâche est faite, noter l’heure, chercher ce qui reste du projet, prendre le chemin « Sinon », demander à l’IA le mot de bilan, puis livrer le projet ; à droite, ses dernières exécutions, étape par étape.
Analyser

Des tableaux de bord sans quitter vos tables.

Des questions posées à la souris ou en SQL, quinze visualisations, des filtres communs — chacun les lit avec ses propres droits.

  • Des questions : une table, ses jointures, des filtres et des mesures par jour, semaine, mois ou année — ou du SQL en lecture seule.
  • Quinze visualisations : chiffre, tendance, objectif, jauge, barres, courbes, secteurs, entonnoir, tableau croisé, carte…
  • Explorer d’un clic : un point ouvre ses lignes, ou une période plus fine.
  • Des filtres communs qui pilotent une, plusieurs ou toutes les cartes.
  • Partager par un lien, public ou réservé aux membres, et intégrer à un autre site.
basedb — un tableau de bord : tendance du mois, objectif d’encaissement, chiffre d’affaires par mois, sentiment des avis, sous des filtres de période et de client.
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.
  • Même le SQL suit vos droits : dans l’interface, une requête ne voit que les tables et les champs qui vous sont ouverts — c’est PostgreSQL qui l’applique.
  • 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.
AdministrateursCommerciauxSupport
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
API REST · MCP · webhooks

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

Le serveur MCP donne quinze 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 pour toute la base, production et recette comprises, en lecture seule par défaut, jamais plus de droits que la personne qui l’a créé.
  • Un agent ne supprime qu’avec votre accord, une ligne à la fois, 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.

Dix 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.

GrilleKanbanCalendrierChronologieGalerieListeCarteFormulaireQuestionnaireQuiz

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.

ProductionRecetteDéveloppement
En savoir plus →

Travailler à plusieurs

Les écritures des autres arrivent en temps réel, on voit qui regarde quelle ligne, et on en discute là où elle se trouve : commentaires, mentions, notifications. Ctrl+Z annule la dernière écriture, et refuse plutôt que d’écraser le travail d’un autre.

Temps réelPrésenceCommentairesMentionsCtrl+Z
En savoir plus →

L’IA dans la grille

Un champ rempli par un modèle à partir des autres colonnes, et un Copilot qui propose filtres, requêtes et colonnes, appliqués d’un clic. OpenAI, Anthropic, Mistral, ou un modèle servi sur votre propre machine.

Résume {{Notes}} en une phrase

Relations et formules

De vraies clés étrangères, des formules en français ou en anglais calculées par PostgreSQL, et des recherches, cumuls et décomptes à travers les relations.

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

Texte riche et variables

Un éditeur visuel pour le texte mis en forme, assaini à l’écriture ; et dans tout texte long, {{Ville}} se lit avec la valeur de la ligne.

Livraison le {{Date}} à {{Ville}}

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 Excel, 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é.

Comptes et invitations

Chacun crée son compte et ses projets, et invite par un lien en Lecture, Édition ou Gestion ; connexion par mot de passe, Google, Microsoft ou tout fournisseur OpenID Connect.

Webhooks

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

Paramètres personnels

Votre langue, votre thème, l’ordre des dates, vos notifications, vos sessions et vos jetons, au même endroit.

Dans votre langue

L’interface prend la langue du navigateur, parmi vingt ; chacun peut la changer dans ses paramètres.

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 ; dans l’interface, chacun écrit du SQL avec ses propres droits, enregistre ses requêtes et, s’il gère la base, en fait de vraies vues PostgreSQL.

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.

Dans quelles langues ?

Vingt : français, anglais, allemand, espagnol, italien, portugais du Brésil, néerlandais, polonais, tchèque, suédois, danois, norvégien, finnois, roumain, hongrois, turc, ukrainien, japonais, chinois simplifié et coréen. L’interface prend la langue du navigateur, et chacun la change dans ses paramètres ; ce site et la documentation existent dans les mêmes langues.

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 — et en supprime, une à la fois, si son jeton a été créé pour cela ; il 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.