コンテキストスタジオはデータベースと dbt のメタデータのみを読み取り、厳格な行数・バイト数・時間制限の下で承認済みの読み取り専用 SQL クエリテンプレートを実行します。
構造化データと dbt
コンテキストスタジオの構造化データタブ(/platform/context-graph?view=data)は、PostgreSQL と MySQL のソース接続およびレビュー済み dbt プロジェクトバージョンの構造をコンテキストグラフに取り込みます。スキーマ読み取り時に Bundata が読み取るのは メタデータのみ であり、テーブルの行データを保存またはログ記録するルートやジョブはありません。
データベーススキーマと dbt バンドルの読み取り
- データベーススキーマの読み取り(
POST /api/w/:wsId/structured-context/connections/:connectionId/read、structured:manageとconnection:useが必要): 25 秒・16 MiB の制限内で、pg_catalogまたはinformation_schemaからスキーマ、テーブル、ビュー、マテリアライズドビュー、外部テーブル、カラム(型、NULL 許容)、主キー・一意キー・外部キー、カタログコメントを取得します。構造の変化が検出されると新しい不変のスナップショットバージョン(structured_snapshots)が保存され、オブジェクト ID は維持されるため説明や用語リンクはそのまま引き継がれます。 - dbt メタデータの読み取り(
POST /api/w/:wsId/structured-context/dbt/:executionVersionId/read、structured:manageが必要): dbt をコンパイル・実行することなく、レビュー済み dbt バンドルからモデル、カラム、説明、宣言型、テスト、ref()依存関係を直接読み取ります。
オブジェクトと結合パスのキュレーション
オブジェクト一覧では、library:edit と connection:read を持つ編集者が次の操作を行えます。
- テーブル、ビュー、カラム、または dbt モデルに説明(最大 2,000 文字)を記入する。
- ライブラリの承認済みビジネス用語をリンクする(探索キャンバス上の
definesエッジ)。 - 外部キーが宣言されていない同一データベース内の 2 つのテーブル、ビュー、またはモデル間に結合パス(
joins_withエッジ)を記録する。
また、コンテキストエンリッチメントの実行では、AI モデルを呼ばずにデータベースコメント、dbt ドキュメント、relationships テスト、および <name>_id の命名規則からデータ説明、用語とデータのリンク、結合パスの提案を自動作成します。
読み取り専用 PostgreSQL クエリテンプレート
クエリテンプレートは ビジネスコンテキストライブラリ の 4 つ目の項目種別です。
- 契約: 1 つの PostgreSQL ソース接続の登録済みテーブルに対する読み取り専用
SELECT文 1 つ(位置パラメータ$1、$2… とのWHERE比較、ORDER BY、LIMITは任意)。 - 型付きパラメータと制限: パラメータ(
text、integer、numeric、boolean、uuid、date、timestamptz)、行数上限(1〜1,000)、時間上限(1〜30 秒)、および結果あたり1 MiBのサーバー上限。 - 承認前のテスト: 編集者がテスト実行(
POST /api/w/:wsId/structured-context/templates/:entryId/test)を行います。スチュワードがバージョンを承認できるのは、現在の接続リビジョンでテストに合格し、オーナーが設定されている場合のみです。 - 実行場所:
- ライブラリの項目シート。
- 探索チャットの
@sqlまたはキャンバスノードメニュー。 - 検証済みの回答に紐づくクエリレシピ(回答に保存された固定パラメータ値を使用)。
- エージェントの
run_query_template(MCP またはPOST /api/agent/v1/query-templates/run、queries:runと有効なコンテキストセットへの所属が必要。エージェントはパラメータ値のみを渡し、SQL は扱いません)。
テンプレートの実行は READ ONLY トランザクションで行われ、毎秒接続を再確認し、ワークスペースあたり最大 4 件の同時実行(超過時は TEMPLATE_RUNS_BUSY)に制限されます。パラメータ値や返却された行は一切保存・ログ記録されず、コンテンツを含まない実行記録(query_template_runs)のみが残ります。