What’s new

What changed in basedb

The details of every change are in the repository history. What comes next: the roadmap.

  1. Hosting

    An AI provider behind an internal certificate

    • BASEDB_AI_PROVIDER_SSL_VERIFY=false reaches an AI gateway with a self-signed certificate, or one behind a proxy that re-signs the traffic, without switching off verification of the instance’s other calls. Azure, a gateway, a local model
  2. New

    One token for the whole base, the environment of your choice

    • A single token opens the production, the staging and the future environments of a base; it can also be limited to a single one when it is created. Existing tokens keep their environment. Through the API, the SDK and MCP
    • The environment is chosen on each call: the REST API’s X-Basedb-Environment header, the SDK’s db.environment(), n8n’s Environment field, the …/mcp?environment=recette address or the environment argument of an MCP tool. Choose the environment
    • An agent without a relay: the tokens window gives Claude Code’s HTTP configuration and the .mcp.json file, one server per environment on the same token, the token staying in an environment variable.
  3. New

    Colors and icons through the API and MCP

    • An agent dresses up what it proposes: the color and icon of a table in propose_create_table, of each choice in propose_add_field, and the new propose_update_look tool for an existing table. A person approves, as for any schema change. Colors and icons
    • Through the API, a table is created with its color and icon; describe_base, describe_table and /meta return them. Colors and icons
  4. New

    Agents that delete, if you allow it

    • A third token level, “Read, write and delete”: a program deletes through the REST API, an agent through the new delete_record tool — one row at a time, returned in the response. Deleting rows
    • Undoing it: restore_record brings a deleted row back under its identifier; a deletion that a cascading relation would extend to other rows remains reserved for the interface.
  5. New

    Tokens for whoever manages a base

    • The Manage level is enough: given on a base or on its project, it lets you create the integration tokens of its bases, without being an administrator. A token
    • Says so clearly otherwise: to whoever reads or writes without managing the base, the tokens window says who to ask; to an account without a password, why it cannot create one yet.
  6. New

    Automations that wait, catch a failure and send PDFs

    • Four more triggers: a row is deleted; a row enters a filter — “an invoice becomes overdue”; a date arrives — three days before the due date, at 9 a.m.; another piece of software calls the automation’s secret address. A service that calls basedb
    • Wait three days, or until the date in a field, then resume by re-reading the row: “if it is still not accepted, follow up”. Wait
    • Generate a PDF and send it: the document of a row, stored in a File field or attached to an email — in rich text, with CC recipients and a reply-to address, to each one or one to everyone. A PDF and an email
    • Delete a row, count and add up, run another automation; a condition can also test a value — the AI’s answer, a total —, and a search that finds nothing has its own branch.
    • Try: steps, and others if one of them fails; a webhook retries on its own, a loop continues despite a row that failed. Try
    • Every step within reach: the + opens a window arranged by category, with a search, instead of a menu that could get cut off.
  7. New

    PDF documents in your colors

    • Five starting points — invoice, quote, record sheet, certificate, blank page —, built with your table’s columns: number, date, amounts, photo, linked rows. Create a template
    • Your logo and your colors: a header with logo and contact details, a footer with legal notices and page numbers, an accent color, serif or sans-serif fonts, a border around the page. Header and footer
    • New blocks: a title on a band, an image, two or three columns, a net / gross summary, a table with a colored header, a separator. They can be dragged to reorder, and the preview follows every change. The blocks
  8. Hosting

    A dropped connection no longer stops basedb

    • No more stopping on a dropped connection: when PostgreSQL closes a connection — a restart, a network outage, a transaction left idle — only the query that held it fails; basedb keeps going, and its log says which job was holding it.
    • Less waiting on a busy database: a table page no longer keeps a transaction open while it reads linked rows, and a query that doesn’t get a connection within 15 seconds gets an error instead of waiting forever.
    • AI headers read the way they’re written: BASEDB_AI_HEADERS also accepts the form Ansible rewrites it into, {'api-key': '…'}, and one header per line; with them, openai_compatible can do without a key.
  9. New

    For applications that rely on basedb

    • A base created from a template in one call: the server applies the whole template — tables, relations, rows, views, automations — or nothing if a step fails. The gallery uses it, an application that installs itself too. Creating a base from a template
    • Checking a token: an application handed a person’s token asks basedb whether it is still valid, and for whom — their account, their groups. Checking a token
    • Your internal servers: webhooks and automations reach the ones you name in BASEDB_WEBHOOK_ALLOW, HTTP included; a program can also follow a table in real time with an integration token. Following a table
    • Under a path, behind a gateway: basedb is published at an address like https://passerelle.example.com/basedb/, whether the gateway keeps the path or strips it. Behind a gateway
    • One webhook, all tables at once: check or uncheck an event for every table, or every event of one table, in a single click.
  10. New

    Automations that loop through your rows and talk to APIs

    • For each row: a step that repeats its own steps on each row of a table that matches a filter — every Monday, follow up on every unpaid invoice, not just the first one. For each row
    • A webhook that talks to any API: the method, an address that cites the row, headers, a body in JSON, form or text, composed with the row’s values. Call a service
    • An API key stays secret: encrypted, it is never shown again — not on screen, not by the API, not to Copilot — and is only sent to the host you gave it for.
  11. New

    The map, and addresses that can be found

    • A tenth view, the map: each row placed at its location, by its address or by its latitude and longitude. A pin takes the color of a status and opens its row details with a click. The map
    • An address is located once and for all, by OpenStreetMap’s service or the one you choose: pins arrive as the responses come in, then right away. An address that cannot be found is counted, never dropped silently.
    • The Address format for a short text: a click opens it on the map, and in the row details, Find address offers the matching full addresses. Formats
  12. New

    PDFs from your rows

    • A quote, an invoice, a sheet as a PDF, from a row’s menu: the printable sheet with nothing to set up, or a template — texts that cite fields, the row’s fields, the table of linked rows with its total, page breaks. The documents
    • Everyone with their own permissions: a field hidden from you does not appear in your PDF. All twenty languages are written correctly there, Chinese, Japanese and Korean included, and the API renders the same document.
  13. New

    Permissions down to the row, default values, Excel import

    • Everyone their own rows: a group sees only the rows of a filter — “Salesperson is me”, “Region is North” —, in the interface, the API, the MCP server as in SQL, where PostgreSQL enforces the same rule. Down to the row
    • Default values: a fixed value, today’s date, the moment of creation or the person creating the row, prefilled on screen and applied everywhere else. Default values
    • Drag in an Excel workbook: choose the sheet, dates, amounts and checkboxes arrive as they are, and a formula gives its value. Getting started
  14. New

    Emails

    • A “Send an email” step in automations: to a member, to the person of a field, to a client’s address, with the row’s values in the subject and the text. Automations
    • Email notifications when you have not read them, grouped, to choose one by one in your settings; and a forgotten password is reset by a link. By email
    • Just tell the instance your mail’s sending server. Variables
  15. New

    n8n and a TypeScript SDK

    • n8n nodes: read and write a table’s rows from a workflow, and trigger one for every row created, updated or deleted — by polling or by a signed webhook. n8n
    • A TypeScript SDK, with your tables’ types generated from your instance: a table or a field that does not exist is an error before execution even starts. The SDK
  16. New

    The quiz: questions that count points

    • A new view, the quiz: a survey whose every question can have its right answer and its points — a choice, several, yes or no, a number, a date, or the accepted texts, ignoring case and accents. The quiz
    • Feedback the way you want it: after each question — in green, or in red with the right answer, the score growing at the top of the screen —, at the end, or never. A pass threshold makes it say “Passed!” or “Not this time…”.
    • The score at the end, in a ring that fills up, then the feedback for each question. It is written into a number field of the table: sort the grid on it, and there is the leaderboard.
    • Shared by a link, no cheating: the page never receives any right answer — the server is the one that checks and counts. A shared quiz
    • Create a view, at the bottom of the view selector, sorts the nine kinds into two families — those that show rows, those that collect answers —, each with its own colored icon.
  17. New

    Forms worth filling in

    • The survey fills the whole screen: one question at a time, sliding in, big cards for choices, stars for a rating, and everything from the keyboard — Enter, the letters A, B, C…, Y or N, digits. A single choice moves on to the next by itself. Form and survey
    • An appearance of its own: eight themes, from Light to Night by way of Paper, a color, a font, an alignment — a shared link’s page wears it too.
    • Ask only if…: a question is only asked if an earlier answer calls for it; a hidden question is neither required nor saved.
    • Nothing to set up to start: a new form asks what a person answers, not the status the team fills in afterwards, wears its table’s color and shows an example in every field. And sending it is celebrated, confetti included.
  18. New

    Formulas in French or English

    • Type a formula in French or English, on any screen, even mixing the two: SI or IF, ARRONDI or ROUND, JOURS or DAYS… Arguments are separated by ; or by ,. Formulas
    • It reads back in the screen’s language: in French on a French screen, in English in the other nineteen languages — existing formulas and the “Functions” panel included. The API renders a formula in whatever language you ask for, in English otherwise.
    • Official templates, served in a language other than French, arrive with their formulas in English. Nothing changes in the database: same columns, same SQL, no migration.
  19. New

    Find everything: Ctrl+K

    • One field for everything — Ctrl+K, or the field at the center of the top bar: tables, views, questions, dashboards, automations, columns, and the rows themselves, read with your permissions; on a large screen, a preview of the selected result. Search
    • Type the way you think: no accents or capitals needed, by initials — nc for “New client” —, a typo forgiven, clients lyon to search for “lyon” in the clients table; what you open often rises to the top.
    • Every command, from the keyboard: create, go to, close, undo, switch theme, copy the page’s link. > searches only commands, # objects, / rows; Tab searches within a table or a base.
    • Got a question? Type it: Ask the Copilot asks it for you, on the open base.
  20. New

    Questions of your own, figures in text

    • Everyone saves their own questions, without the Manage level: personal, only you see them; whoever manages the base shares them with the whole base or with groups, like queries. Dashboards
    • A question in a tab, next to the tables: New question and New SQL question, at the + of the tab bar and in the base’s menu; the tab keeps what you left in it. Save a copy makes yours a question you can’t edit.
    • Figures in text: a dashboard text, now formatted, cites a value — {{chiffre_affaires}} — pulled from a card, a question or a filter, computed with the reader’s permissions, even in a dashboard shared through a link. Figures in text
    • Queries, SQL views and questions can also be deleted from their menu, with a right-click.
  21. New

    An address for every screen

    • The address follows the screen: a table, a view, a row’s details, a dashboard, an automation, a question, your settings — /bases/ventes/tables/opportunites?ligne=…. Bookmark it, paste it into a message: everyone lands in the same place, with their own permissions. A link to every screen
    • The browser’s back and forward buttons take you back where you were; an address that leads nowhere shows “This page doesn’t exist”.
  22. New

    A demo to try, in your language

    • The demo, at demo.basedb.eodia.com: the account is pre-filled in your browser’s language, with a base in that language. You can read everything and edit what exists; creating, deleting and AI are disabled there, and the base returns to its starting state every night.
    • Your own demo: BASEDB_DEMO=1 opens an instance to everyone, with a shared account per language, prepared in advance. Variables
    • One language per link: ?lang=de at the end of a basedb address shows the sign-in screen or a shared page in German; the site leads to the demo in the page’s language this way. Your settings
  23. New

    Templates in your language

    • Official templates are created in the screen’s language: tables, fields, choices, views, dashboards, automations, AI instructions — and sample rows from a world adapted to each language: the “Boulangerie Martin” from Lyon becomes “Martin’s Bakery” in Portland. Templates
    • The site’s gallery shows every template in the page’s language.
    • One template, many dictionaries: a template is written once, in French; each language only translates its texts, and basedb itself follows every label wherever it is cited. A dictionary that would break the template isn’t served. Publishing a template
  24. And also

    • A template without its sample rows: “Load sample data”, unchecked, creates empty tables, ready for your data. Starting from a template
    • The API and MCP documentation for every base is written in your screen’s language. The generated documentation
    • Tooltips in the application’s theme, everywhere the browser used to show its own; the “Delete” entries in menus, now in red; the full date when hovering a comment’s time.
  25. New

    Automations as flows

    • A graph editor: the trigger, then each step as a card; a + on a line adds a step right there. A simple automation still fits in two cards. Automations
    • Find a row — an order’s client, the latest unpaid invoice — then update it, cite it, or link it to a newly created row.
    • Conditions with several branches: the first one whose condition is met is taken, “Otherwise” when none is; the branches then join up again.
    • Data flows from one step to the next: {{e2.client}} cites what a step found or created, {{e3.reponse.numero}} what a webhook replied; each text’s menu only offers what has certainly happened before.
    • Every run, step by step: laid over the flow, it traces the branch taken and tells, for each step, what it did and how long it took.
    • The automations Copilot: describe what the base should do on its own, or ask why a run failed; it proposes a whole automation, which you apply to the flow in one click, review, then save — nothing is saved without you. Copilot
    • Ask AI in a step, as in an AI field: a prompt that cites the row and the previous steps, an answer read as text, number, yes or no, date or choice from a list, which the following steps write or send. Ask AI
  26. New

    Dashboards: questions, charts, filters

    • Questions asked with the mouse — a table, its joins, filters, measures by day, week, month or year — or written in SQL, read-only and with your own permissions, variables included. Dashboards
    • Fifteen visualizations: number, trend against the previous period, progress toward a goal, gauge, histogram, bars, line, area, combo, pie, funnel, scatter plot, table, pivot table, map of France or of the world.
    • Explore in one click: a point opens its rows, a finer period, another breakdown.
    • Dashboards on a grid: cards moved and resized with the mouse, tabs, section headings, texts, embedded pages.
    • Shared filters — period, category, text, number, date grouping — that drive one, several or all of the cards, with a default value.
    • Charts your way: the color and name of each series or slice, donut, half circle or rose, stacking with totals, smooth or stepped lines, axes, ticks, logarithmic scale; tables with renamed columns, with bars and colors by value.
    • The dashboards Copilot: a conversation that suggests questions, changes to the dashboard — which can be undone — and values for its filters, applied in one click. Only the schema goes to the provider, unless you allow it to read the results. Copilot
    • Share a dashboard through a link, public or restricted to members — to specific groups if needed — and embed it in another site: cards and filters, read-only, read with the permissions of whoever published it. Sharing
    • “Interfaces” are now called Dashboards; existing ones open as they were, on the new grid.
  27. New

    Saved queries and SQL views

    • SQL for everyone: without the Manage level, an SQL tab runs read-only, with your own permissions, applied by PostgreSQL itself — a closed table doesn’t exist, a hidden field is refused. The “Your permissions” badge is there as a reminder. SQL queries and views
    • Saved queries, filed under the tables in the “Queries” section: personal, for the whole base or for groups. Sharing a query shares its text, never what its author can read; opened from the sidebar, it runs at once, read-only.
    • SQL views: real PostgreSQL views, filed among the tables with a color, an icon and a small eye, also readable from psql and your tools. Everyone reads them with their own permissions, and the sidebar only shows them to those who can read all of what they contain.
    • Views follow the schema: a rename doesn’t break them, a changed formula removes them for a moment and then puts them back; one that no longer holds is left to fix, its definition kept.
  28. New

    Your choice of AI, down to your own machine

    • A fourth AI provider: any server that speaks OpenAI’s API — Azure, a company gateway, a model served on your own machine —, declared in the .env. The call log says where the data went. AI in basedb
    • The sign-in screen now shows, after the grid and SQL, a dashboard that follows a filter and an automation running, AI step included.
  29. New

    Your settings

    • Settings, in the profile menu: your name, your address and the identity providers linked to your account; your password and your open sessions. Accounts and sign-in
    • Appearance: the theme, the date order — 25/09/2026 or 2026-09-25 — and the first day of the week for calendars; the last two follow you from one computer to another.
    • Notifications: turn off the ones you no longer want, one kind at a time. Tokens: the ones you created, across all your bases, their last use, and revoking them.
  30. New

    Rich text, variables, a more readable kanban

    • Rich text: a new field type, formatted in a visual editor — headings, lists, quotes, links —, sanitized on write and guarded by a constraint against direct SQL. Rich text and variables
    • Variables: a long text cites a column of its row — {{Ville}} — and reads everywhere with its value: grid, row details, API, MCP server, shared views, automations. The column keeps the citation, which is what psql reads.
    • A more readable kanban: roomier cards, a cover image, and a description that cites the row’s values — “Delivery on {{Date}} for {{Client}}”. Views
    • Renaming in one step: a single dialog for a base, a table or a field; the label always changes, and an administrator can also rename in the database, backed by an impact analysis. Changing the schema
    • Twenty languages: the interface, this site and the documentation in French, English, German, Spanish, Italian, Portuguese (Brazil), Dutch, Polish, Czech, Swedish, Danish, Norwegian, Finnish, Romanian, Hungarian, Turkish, Ukrainian, Japanese, Simplified Chinese and Korean. basedb uses the browser’s language; Settings › Appearance › Language sets another one, which follows you from one computer to another. Numbers and dates follow the language. Your settings
  31. New

    Version 0.2.0: your own account, projects and invitations

    • First sign-in: on a fresh instance, the first page creates the administrator account, with your address and your password — no more default account, no more password to dig out of the logs. Installation
    • Account creation: everyone creates their own account, then their own projects, which they manage. Administration can close it or restrict it to certain domains. Accounts and sign-in
    • Share a project or a base: whoever has the Manage level invites others through a link, with Read, Edit or Manage; sees who has access, changes a level, removes it. Never more than what they manage.
    • Privacy: everyone now only sees the people they share a project with, and a project name already taken by someone else can no longer be guessed.
    • Sign in with Google, Microsoft and any OpenID Connect provider (Keycloak, GitLab…), declared in the .env; a first sign-in creates the account if account creation allows it. Configure
    • New sign-in screen, in the application’s theme, light or dark, with restrained animation; illustrated empty states throughout the application.
    • Updates without loss: basedb updates its catalog by itself at startup, 0.1 installations included, and refuses to start on a database that a more recent version has already updated. Updating
  32. Hosting

    A single Docker image

    • basedb fits in a single image, eodia/basedb on Docker Hub, for amd64 and arm64: the interface, the API under /api and the MCP server under /mcp, on a single port. Installation
    • Two files are enough — docker-compose.yml and .env — without cloning the repository or building anything; updating is a docker compose pull.
    • Behind a domain, the HTTPS proxy no longer has any routing to do: everything goes to port 3000.
  33. New

    Automations, interfaces, formulas, collaboration

    • Formulas written in French — SI, ARRONDI, JOURS… — that become columns generated by PostgreSQL; lookups, rollups and counts across relations. Fields
    • New types: multiple relation, person, email, autonumber, button; and formats chosen like types — currency, percent, duration, star rating, phone, barcode.
    • Eight views: the gallery and the list join the other six; personal views for every reader, locked views, manual ordering, dependencies in the timeline. Views
    • The grid: quick search, grouping, per-column summary over the whole filter, colors by rules, row height.
    • Shared views, read-only, embeddable in another site; a calendar becomes an iCalendar feed for Google Calendar, Outlook or Apple Calendar. Sharing
    • Collaboration: comments and mentions, notifications, other people’s writes in real time, presence on the table and on the row. Working together
    • Ctrl+Z undoes the last write — a cell, a moved card, an entire import — and refuses rather than overwrite what someone else has changed since.
    • Automations: when a row is created or updated, at a set time or at the click of a button — update, create, notify, call a webhook, post to Slack. Automate
    • Interfaces: dashboards — numbers, charts, lists, texts — read with each person’s own permissions. Dashboards
    • Integrations: a Slack channel, and synced tables from an online CSV, a calendar or another basedb’s view. Integrations
    • Base templates: a gallery of ten templates, a base described to the AI in one sentence, and any base can be saved as a template. The gallery
    • Permissions: the Schema screen becomes view-only for anyone without the Manage level.
    • New identity: a logo, a palette, and a redesigned sign-in screen.
  34. A simpler interface

    • The sidebar now lists only the bases and their tables; the open base’s screens — Schema, History, Interfaces, Automations — are grouped in one block, just above the profile.
    • The profile menu holds what isn’t data: the API and MCP documentation, integrations, users and permissions.
    • An SQL query opens from the “+” in the tab bar or from the base’s menu, with no duplicate in the sidebar.
    • New base offers templates and AI right in the dialog; the demo base goes through the same gallery.
    • The screen no longer offers what would be refused: no schema buttons without Manage, no “Delete” without permission to delete; and a reader creates their own views instead of running into an error message.
    • System columns are filed under “System information” instead of being offered on every table.
    • A row’s details gain its comments, a button to email or call, and a rating set in one click.
    • The sign-in screen drops its animated 3D background for a lightweight screen that respects the “reduce motion” preference.
  35. Environments, shared forms, views

    • Environments: production, staging and development for the same base; side-by-side comparison, migration plan, row sync.
    • Schema history: every creation or change of a table or field, captured by a trigger on the catalog.
    • Shared forms: a public or members-only link, closing by date or by number of responses, responses attributed in the history.
    • Six views: grid, kanban, calendar, timeline, form, survey.
    • Data history: undo a change, restore a deleted row.
    • AI: the AI option on any field, and Copilot.
    • Relation and URL: two distinct types; long text is written in Markdown.
    • Webhooks, signed and ordered; agent proposals to approve.
    • Docker: a Dockerfile with three targets, a complete docker-compose, an optional HTTPS proxy.
  36. Projects, permissions, MCP server

    • Projects above bases, and permissions by groups on four levels: No access, Read, Edit, Manage.
    • Accounts: temporary password, changed at first sign-in, elevation for administration.
    • MCP server and stdio relay; integration tokens shared by the REST API and MCP.
    • Generated “API and MCP” documentation for every base.
  37. Fields, single selects, import

    • Edit a field and the options of a single select.
    • Import CSV and JSON files.
    • The table menu: rename, describe, delete.
  38. First commit

    • The monorepo: naming, error code registry, catalog extracted from the architecture document, core, API, interface.