Skip to content

EMQXエージェントをSupabaseに接続する ​

Supabaseコネクターを使用すると、EMQXエージェントがデータベーステーブルのクエリ実行、SQLの実行、テーブルスキーマの確認、エッジ関数の一覧表示および呼び出しを行えます。これにより、アプリケーションデータやサーバレス関数をEMQXエージェントのワークフローと組み合わせて利用できます。

よくあるユースケース ​

  • MQTTデバイスイベントに関連するアプリケーションレコードの読み取り。
  • クエリ生成前にテーブルスキーマを確認。
  • SQLを通じてワークフローの結果をデータベーステーブルに書き込む。
  • エージェントがイベントを検証した後にエッジ関数を呼び出す。

チャットプロンプトの例:

text
app-supabaseコネクターを使って利用可能なテーブルを一覧表示し、device_alertsのスキーマを確認し、直近の5件の重大なアラートをクエリしてください。

前提条件 ​

コネクターを追加する前に、以下を準備してください:

  • 必要な組織およびプロジェクトにアクセスできるSupabaseアカウント、または認証時にそれらを作成する権限。
  • データベースおよびエッジ関数操作の認可権限。
  • ワークフローで必要なテーブルおよびSQL操作に対するデータベース権限。

Supabaseコネクターの追加方法 ​

  1. 左側のナビゲーションメニューで Connectors をクリックします。
  2. Available タブで Supabase を見つけて Add をクリックします。
  3. 説明的なコネクター名を入力します。
  4. Confirm をクリックすると、Supabaseの認証フローがダイアログで開きます。
  5. Base URL は、セルフホスト型Supabaseを使用しない限り、デフォルトの https://api.supabase.com のままにします。
  6. Connect Account をクリックします。
  7. Supabaseにサインインします。GitHub、SSO、メールとパスワードなどの利用可能なサインイン方法を選択してください。Supabaseアカウントをお持ちでない場合は、Sign up をクリックして作成してください。
  8. GitHubでサインインした場合は、アクセス要求を確認し、Authorize supabase をクリックします。

すでにSupabaseの組織とプロジェクトをお持ちの場合は、Composioの認可に進んでください。そうでない場合は、認可を完了する前に作成してください。

必要に応じてSupabaseの組織とプロジェクトを作成する ​

  1. Supabaseが利用可能な組織がないと報告した場合は、Create an organization をクリックします。
  2. Create a new organization ページで、組織の Name を入力し、Type と Plan を選択して、Create organization をクリックします。
  3. Create a new project ページで組織を選択します。必要に応じてGitHubを接続します。
  4. Project name と強力な Database password を入力します。
  5. Region を選択します。
  6. Enable Data API、Automatically expose new tables、Enable automatic RLS などのセキュリティ設定を確認します。
  7. Create new project をクリックします。

Composioの認可 ​

  1. Authorize Composio ページに戻り、接続する組織を選択します。
  2. 選択した組織に対する読み取りおよび書き込みアクセス(データベース、シークレット、認証、エッジ関数、環境、プロジェクト、ドメイン、PostgREST、分析、ストレージなど)を確認します。
  3. Authorize Composio をクリックします。
  4. 成功メッセージが表示されるまで待ち、EMQXエージェントに戻ります。
  5. Added タブでコネクターのステータスが Authorized であることを確認します。

サポートされるツール ​

データベース ​

ツールアクセス説明
SUPABASE_BETA_RUN_SQL_QUERY書き込みSupabaseプロジェクトのデータベースでSQLクエリを実行します。
SUPABASE_RUN_READ_ONLY_QUERY読み取り読み取り専用のSQLクエリを実行します。
SUPABASE_SELECT_FROM_TABLE読み取り選択したデータベーステーブルから行をクエリします。
SUPABASE_GET_TABLE_SCHEMAS読み取りデータベーステーブルのスキーマを取得します。
SUPABASE_LIST_TABLES読み取りデータベース内のテーブルを一覧表示します。

エッジ関数 ​

ツールアクセス説明
SUPABASE_GET_FUNCTION読み取りエッジ関数の詳細を取得します。
SUPABASE_INVOKE_EDGE_FUNCTION書き込みエッジ関数を呼び出します。
SUPABASE_LIST_FUNCTIONS読み取りプロジェクト内のエッジ関数を一覧表示します。

重要なお知らせ

書き込み可能なSQLツールは、認可されたロールが許可する場合、データベースのデータを変更または削除する可能性があります。書き込みを必要としないワークフローには、読み取り専用クエリと最小権限のデータベースアクセスを使用してください。

チャットでのコネクターの使用方法 ​

  1. チャット入力欄でコネクターアイコンをクリックします。
  2. 認可済みの Supabase コネクターを選択します。
  3. プロンプトに、エージェントが使用すべき外部リソースと操作を指定します。
  4. 生成されたエージェント定義を確認し、必要なツールのみが含まれていることを確認します。

権限とデータアクセス ​

コネクターは認可されたSupabase組織およびアカウントの権限を使用します。データベースロール、Row Level Securityポリシー、テーブル権限、エッジ関数の認可がアクセス可能なデータおよび操作を決定します。

チャットプロンプトやエージェント指示に外部サービスの認証情報やアクセストークンを含めないでください。

制限事項 ​

  • SupabaseのAPIおよびデータベースの制限が適用されます。
  • Row Level Securityによりクエリ結果や書き込み操作が制限される場合があります。
  • エッジ関数の利用可能性および動作は、選択したプロジェクトと関数の設定に依存します。

トラブルシューティング ​

症状解決策
コネクターが Unauthorized のままになる。認可を再試行し、Base URL を確認し、Supabaseにサインインして組織を選択し、Authorize Composio をクリックしてください。
認可ページで利用可能な組織がないと報告される。Create an organization をクリックし、必要に応じてプロジェクトを作成してから認可ページに戻ってください。
ツールが権限エラーを返す。認可されたアカウントが選択した組織、対象プロジェクト、リソース、操作にアクセスできるか確認してください。
必要なツールが利用できない。ツールがこのコネクターでサポートおよび承認されているか確認し、チャットで再度コネクターを選択してください。
リクエストが断続的に拒否される。外部サービスのステータス、APIクォータ、レート制限、アカウントプランを確認してください。

関連リンク ​