Ga naar inhoud

n8n

Het pakket n8n-nodes-basedb voegt drie nodes toe aan n8n:

NodeRol
basedbde rijen van een tabel lezen en schrijven, een rij becommentariëren; te gebruiken als tool door een AI-agent van n8n
basedb Triggereen workflow starten voor elke rij die is aangemaakt — of aangemaakt of gewijzigd — sinds de laatste peiling
basedb Webhook Triggereen workflow starten op het moment dat een rij wordt aangemaakt, gewijzigd of verwijderd

In n8n: Settings › Community Nodes › Install, dan n8n-nodes-basedb.

Zonder de interface — wachtrijmodus, vooraf gebouwde Docker-image — : npm install n8n-nodes-basedb in de map ~/.n8n/nodes, en herstart daarna n8n.

Maak in n8n een identiteitsgegeven basedb API aan:

VeldWaarde
Instance URLhet adres waarop je basedb opent: https://basedb.exemple.fr
Workspacede referentie van de werkruimte, die van de API-adressen (/api/v1/<werkruimte>/…): t4z56fq, tenzij de instantie BASEDB_TENANT instelt
Tokeneen integratietoken: menu ⋯ van de database → API en agents → API- en MCP-tokens…
Environmentoptioneel: de omgeving van de database waarin je werkt — recette, production… Leeg: productie

Een token opent één database — alle omgevingen ervan, of slechts één als het bij het aanmaken is beperkt. Het leest haar rijen, schrijft ze als het met schrijfrechten is aangemaakt, en heeft nooit meer rechten dan de persoon die het heeft aangemaakt. Bij het opslaan probeert n8n de verbinding en meldt het of het token wordt geweigerd.

Om op productie en op acceptatie te werken, maak je twee identiteitsgegevens met hetzelfde token, het ene met Environment leeg, het andere met recette. Zonder gekozen omgeving toont de lijst met databases van de node elke omgeving, met haar naam tussen haakjes.

BewerkingWat ze doet
Row › Createvoegt een rij toe
Row › Create or Updatewijzigt de rij waarvan de gekozen velden deze waarden dragen, of voegt ze toe als geen enkele rij ze draagt
Row › Getleest een rij via haar _id
Row › Get Manyleest de rijen van een filter, in de gevraagde volgorde, tot een limiet of allemaal, pagina na pagina
Row › Updatewijzigt een rij, gevonden via haar _id of via andere velden
Comment › Createbecommentarieert een rij; een @vermelding stuurt de persoon een melding

De database en de tabel kies je uit lijsten, die welke het token opent. De velden om te schrijven worden getoond met hun naam in basedb, een enkele keuze met haar opties, een veld Persoon met de leden van de werkruimte; een berekend veld — formule, opzoekveld, aggregatie, automatisch nummer — komt er niet in voor, omdat basedb het zelf schrijft. Een waarde die het veld weigert, stopt de node op de code van basedb en wat die betekent.

  • Het filter en de sortering gebruiken de technische namen van de velden, die van SQL: statut eq "gagne" and montant gte 10000, -montant,nom. De grammatica is die van de REST-API.
  • Getallen komen aan als decimale tekst ("1250.50"), om geen enkel cijfer te verliezen; de optie Numbers as Numbers zet ze om in getallen.
  • Een relatie wordt gelezen als { "id": …, "display": … } en geschreven via de _id van de gekoppelde rij.
  • Create or Update wijzigt nooit meerdere rijen: als er meerdere de waarden dragen, stopt de node in plaats van te raden.
  • Geen bewerking Delete: om rijen te verwijderen, markeer je ze (een status “Archivé”), vertrouw je de verwijdering toe aan een automatisering, of roep je de REST-API aan met een token dat voor verwijderen is aangemaakt.

De node vraagt basedb, in het gekozen tempo (elke minuut, elk uur…), naar de rijen die aangemaakt — of aangemaakt of gewijzigd — zijn sinds de vorige keer, met eventueel een extra filter. Hij werkt overal, ook wanneer basedb n8n niet kan bereiken. Bij zijn eerste peiling noteert hij waar de tabel staat en geeft hij niets door; een test vanuit de editor levert de laatste rij op, zodat er iets is om de volgende nodes aan te koppelen.

Elke rij die wordt aangemaakt, gewijzigd of verwijderd — zelfs door SQL rechtstreeks in PostgreSQL geschreven — start de workflow onmiddellijk:

  1. Voeg de node toe en kopieer zijn Production URL.
  2. In basedb, menu ⋯ van de database → API en agents → Webhooks…: maak een webhook naar dit adres, kies zijn tabellen en zijn gebeurtenissen.
  3. basedb toont eenmalig het ondertekeningsgeheim: zet het in een identiteitsgegeven basedb Webhook van n8n.
  4. Activeer de workflow.

Elke gebeurtenis wordt een element: zijn type (record.created, record.updated, record.deleted), de tabel, de rij voor en na, en de gewijzigde velden (changed). De node controleert de handtekening van elke levering en antwoordt 401 op een levering zonder handtekening, met een onjuiste handtekening, of die meer dan vijf minuten oud is. basedb levert minstens één keer: ontdubbel op het id van de gebeurtenis als de workflow het niet twee keer mag verwerken.

De node HTTP Request van n8n praat ook met basedb: header Authorization: Bearer <token>, JSON heen en terug, paginering via meta.next_cursor doorgegeven als after ({{ $response.body.meta.next_cursor }}), en herstel na een storing via een filter op _updated_at en via …/<table>/deleted?since=.

basedb is vrije software van Eodia, een AI-native softwarestudio.