n8n
n8n-nodes-basedbパッケージは、n8nに3つのノードを追加します:
| ノード | 役割 |
|---|---|
| basedb | テーブルの行を読み書きし、行にコメントします。n8nのAIエージェントからツールとしても使えます |
| basedb Trigger | 直前の確認以降に作成された行——または作成または変更された行——ごとにワークフローを起動します |
| basedb Webhook Trigger | 行が作成、変更、削除された瞬間にワークフローを起動します |
インストール
Section titled “インストール”n8nで:Settings › Community Nodes › Install、続けてn8n-nodes-basedb。
インターフェースなし——キュー方式、あらかじめ組み込んだDockerイメージ——の場合:~/.n8n/nodesフォルダーでnpm install n8n-nodes-basedbを実行し、n8nを再起動してください。
n8nでbasedb APIの認証情報を作成します:
| フィールド | 値 |
|---|---|
| Instance URL | basedbを開くアドレス: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にします。環境を選んでいない場合、ノードのデータベース一覧には各環境が、その名前を括弧に入れて表示されます。
読み書き:basedbノード
Section titled “読み書き:basedbノード”| 操作 | 内容 |
|---|---|
| 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を呼び出してください。
ワークフローを起動する
Section titled “ワークフローを起動する”定期確認ごとに:basedb Trigger
Section titled “定期確認ごとに:basedb Trigger”このノードは、選んだ間隔(毎分、毎時…)でbasedbに、前回以降に作成された——または作成または変更された——行を尋ねます。必要ならフィルターも追加できます。basedbがn8nに到達できないときでも動作します。最初の確認では、テーブルの現在位置を記録するだけで、何も出力しません。エディターからの試行では、後続のノードをつなげられるように最後の行を返します。
その瞬間に:basedb Webhook Trigger
Section titled “その瞬間に:basedb Webhook Trigger”行が作成、変更、削除されるたび——直接PostgreSQLに書かれたSQLによる場合も含めて——、ワークフローがすぐに起動します:
- ノードを追加し、そのProduction URLをコピーします。
- basedbで、データベースの ⋯ メニュー → APIとエージェント → Webhook…:このアドレス宛てのWebhookを作成し、対象のテーブルとイベントを選びます。
- basedbは署名シークレットを一度だけ表示します:n8nのbasedb Webhook認証情報に設定してください。
- ワークフローを有効化します。
各イベントは1つの要素になります:そのtype(record.created、record.updated、record.deleted)、テーブル、行の変更前と変更後、そして変更されたフィールド(changed)。ノードは各配信の署名を検証し、署名がない、誤っている、または5分より古いものには401を返します。basedbは少なくとも1回届けます:ワークフローが同じイベントを2回処理してはならない場合は、イベントのidで重複を除いてください。
ノードを使わない場合
Section titled “ノードを使わない場合”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が開発するフリーソフトウェアです。