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 を入力し、TypePlan を選択して、Create organization をクリックします。
  3. Create a new project ページで組織を選択します。必要に応じてGitHubを接続します。
  4. Project name と強力な Database password を入力します。
  5. Region を選択します。
  6. Enable Data APIAutomatically expose new tablesEnable 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クォータ、レート制限、アカウントプランを確認してください。

関連リンク