Aller au contenu

n8n

Le paquet n8n-nodes-basedb ajoute trois nœuds à n8n :

NœudRôle
basedblire et écrire les lignes d’une table, commenter une ligne ; utilisable comme outil par un agent IA de n8n
basedb Triggerlancer un workflow pour chaque ligne créée — ou créée ou modifiée — depuis la dernière relève
basedb Webhook Triggerlancer un workflow à l’instant où une ligne est créée, modifiée ou supprimée

Dans n8n : Settings › Community Nodes › Install, puis n8n-nodes-basedb.

Sans l’interface — mode file d’attente, image Docker montée d’avance — : npm install n8n-nodes-basedb dans le dossier ~/.n8n/nodes, puis redémarrez n8n.

Créez dans n8n un identifiant basedb API :

ChampValeur
Instance URLl’adresse où vous ouvrez basedb : https://basedb.exemple.fr
Workspacela référence de l’espace, celle des adresses de l’API (/api/v1/<espace>/…) : t4z56fq, sauf si l’instance fixe BASEDB_TENANT
Tokenun jeton d’intégration : menu ⋯ de la base → API et agents → Jetons API et MCP…
Environmentfacultatif : l’environnement de la base où travailler — recette, production… Vide : la production

Un jeton ouvre une base — tous ses environnements, ou un seul s’il a été limité à sa création. Il lit ses lignes, les écrit s’il a été créé en écriture, et n’a jamais plus de droits que la personne qui l’a créé. À l’enregistrement, n8n essaie la connexion et dit si le jeton est refusé.

Pour travailler sur la production et sur la recette, créez deux identifiants avec le même jeton, l’un avec Environment vide, l’autre avec recette. Sans environnement choisi, la liste des bases du nœud montre chaque environnement, son nom entre parenthèses.

OpérationCe qu’elle fait
Row › Createajoute une ligne
Row › Create or Updatemodifie la ligne dont les champs choisis portent ces valeurs, ou l’ajoute si aucune ne les porte
Row › Getlit une ligne par son _id
Row › Get Manylit les lignes d’un filtre, dans l’ordre demandé, jusqu’à une limite ou toutes, page après page
Row › Updatemodifie une ligne, trouvée par son _id ou par d’autres champs
Comment › Createcommente une ligne ; une @mention prévient la personne

La base et la table se choisissent dans des listes, celles que le jeton ouvre. Les champs à écrire s’affichent avec leur nom dans basedb, une liste de choix avec ses options, un champ Personne avec les membres de l’espace ; un champ calculé — formule, recherche, cumul, numéro automatique — n’y figure pas, puisque basedb l’écrit lui-même. Une valeur que le champ refuse arrête le nœud sur le code de basedb et ce qu’il veut dire.

  • Le filtre et le tri emploient les noms techniques des champs, ceux du SQL : statut eq "gagne" and montant gte 10000, -montant,nom. La grammaire est celle de l’API REST.
  • Les nombres arrivent en texte décimal ("1250.50"), pour ne perdre aucun chiffre ; l’option Numbers as Numbers les convertit en nombres.
  • Une relation se lit { "id": …, "display": … } et s’écrit par l’_id de la ligne liée.
  • Create or Update ne modifie jamais plusieurs lignes : si plusieurs portent les valeurs, le nœud s’arrête plutôt que de deviner.
  • Pas d’opération Delete : pour retirer des lignes, marquez-les (un statut « Archivé »), confiez la suppression à une automatisation, ou appelez l’API REST avec un jeton créé pour supprimer.

Le nœud demande à basedb, au rythme choisi (toutes les minutes, toutes les heures…), les lignes créées — ou créées ou modifiées — depuis la dernière fois, un filtre en plus si besoin. Il marche partout, même quand basedb ne peut pas joindre n8n. À sa première relève, il note où en est la table et n’émet rien ; un essai depuis l’éditeur rend la dernière ligne, pour avoir de quoi relier les nœuds suivants.

Chaque ligne créée, modifiée ou supprimée — même par du SQL écrit directement dans PostgreSQL — lance le workflow aussitôt :

  1. Ajoutez le nœud et copiez son Production URL.
  2. Dans basedb, menu ⋯ de la base → API et agents → Webhooks… : créez un webhook vers cette adresse, choisissez ses tables et ses événements.
  3. basedb affiche une fois le secret de signature : placez-le dans un identifiant basedb Webhook de n8n.
  4. Activez le workflow.

Chaque événement devient un élément : son type (record.created, record.updated, record.deleted), la table, la ligne avant et après, et les champs changés (changed). Le nœud vérifie la signature de chaque livraison et répond 401 à celle qui n’en a pas, qui en a une fausse, ou qui date de plus de cinq minutes. basedb livre au moins une fois : dédoublonnez sur l’id de l’événement si le workflow ne doit pas le traiter deux fois.

Le nœud HTTP Request de n8n parle aussi à basedb : en-tête Authorization: Bearer <jeton>, JSON à l’aller et au retour, pagination par meta.next_cursor passé en after ({{ $response.body.meta.next_cursor }}), et reprise après une panne par un filtre sur _updated_at et par …/<table>/deleted?since=.

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