コンテンツにスキップ

n8n

n8n-nodes-basedbパッケージは、n8nに3つのノードを追加します:

ノード役割
basedbテーブルの行を読み書きし、行にコメントします。n8nのAIエージェントからツールとしても使えます
basedb Trigger直前の確認以降に作成された行——または作成または変更された行——ごとにワークフローを起動します
basedb Webhook Trigger行が作成、変更、削除された瞬間にワークフローを起動します

n8nで:Settings › Community Nodes › Install、続けてn8n-nodes-basedb。

インターフェースなし——キュー方式、あらかじめ組み込んだDockerイメージ——の場合:~/.n8n/nodesフォルダーでnpm install n8n-nodes-basedbを実行し、n8nを再起動してください。

n8nでbasedb APIの認証情報を作成します:

フィールド値
Instance URLbasedbを開くアドレス:https://basedb.exemple.fr
Workspaceワークスペースの識別子。APIのアドレスに使われるもの(/api/v1/<espace>/…):t4z56fq——インスタンスがBASEDB_TENANTを設定していない限り
Token連携トークン:データベースの ⋯ メニュー → APIとエージェント → APIとMCPのトークン…
Environment任意:作業するデータベースの環境——recette、production…。空欄なら本番

トークンは1つのデータベースを開きます——そのすべての環境、または作成時に限定されていれば1つの環境だけです。その行を読み取り、書き込み用に作成されていれば書き込みますが、作成した人を超える権限を持つことはありません。保存時、n8nは接続を試み、トークンが拒否された場合はその旨を伝えます。

本番とステージングの両方で作業するには、同じトークンで2つの認証情報を作成します。1つはEnvironmentを空欄に、もう1つはrecetteにします。環境を選んでいない場合、ノードのデータベース一覧には各環境が、その名前を括弧に入れて表示されます。

操作内容
Row › Create行を追加します
Row › Create or Update選んだフィールドがその値を持つ行を変更するか、なければ追加します
Row › Get_idで行を1件読み取ります
Row › Get Manyフィルターに合う行を、指定した順序で、上限まで、またはすべてをページ単位で読み取ります
Row › Update_idまたは他のフィールドで見つけた行を変更します
Comment › Create行にコメントします。@メンションはその人に通知します

データベースとテーブルは、トークンが開くものの一覧から選びます。書き込むフィールドは、basedbでの名前で表示され、単一選択はその選択肢とともに、メンバーフィールドはワークスペースのメンバーとともに表示されます。計算フィールド——数式、ルックアップ、ロールアップ、自動採番——は、basedb自身が書き込むため表示されません。フィールドが拒否する値は、basedbのコードとその意味とともにノードを停止させます。

  • フィルターと並べ替えは、フィールドのSQL上の技術名を使います:statut eq "gagne" and montant gte 10000、-montant,nom。文法はREST APIと同じです。
  • 数値は小数点付きのテキストで届きます("1250.50")。数字を1つも失わないためです。Numbers as Numbersオプションで数値に変換できます。
  • リレーションは{ "id": …, "display": … }として読み取られ、リンクされた行の_idで書き込まれます。
  • Create or Updateは、複数の行を変更することは決してありません:複数の行がその値を持つ場合、ノードは推測せずに停止します。
  • Delete操作はありません:行を取り除くには、印を付けるか(「Archivé」のようなステータス)、削除をオートメーションに任せるか、削除用に作成されたトークンでREST APIを呼び出してください。

このノードは、選んだ間隔(毎分、毎時…)でbasedbに、前回以降に作成された——または作成または変更された——行を尋ねます。必要ならフィルターも追加できます。basedbがn8nに到達できないときでも動作します。最初の確認では、テーブルの現在位置を記録するだけで、何も出力しません。エディターからの試行では、後続のノードをつなげられるように最後の行を返します。

行が作成、変更、削除されるたび——直接PostgreSQLに書かれたSQLによる場合も含めて——、ワークフローがすぐに起動します:

  1. ノードを追加し、そのProduction URLをコピーします。
  2. basedbで、データベースの ⋯ メニュー → APIとエージェント → Webhook…:このアドレス宛てのWebhookを作成し、対象のテーブルとイベントを選びます。
  3. basedbは署名シークレットを一度だけ表示します:n8nのbasedb Webhook認証情報に設定してください。
  4. ワークフローを有効化します。

各イベントは1つの要素になります:そのtype(record.created、record.updated、record.deleted)、テーブル、行の変更前と変更後、そして変更されたフィールド(changed)。ノードは各配信の署名を検証し、署名がない、誤っている、または5分より古いものには401を返します。basedbは少なくとも1回届けます:ワークフローが同じイベントを2回処理してはならない場合は、イベントのidで重複を除いてください。

n8nのHTTP Requestノードもbasedbと話せます:Authorization: Bearer <jeton>ヘッダー、往復ともJSON、afterに渡すmeta.next_cursorによるページング({{ $response.body.meta.next_cursor }})、そして障害後の再開は_updated_atによるフィルターと…/<table>/deleted?since=で行います。

basedbは、AIネイティブなソフトウェアスタジオEodiaが開発するフリーソフトウェアです。