機能
@nocobase/app-plugin-database-explorer は、設定された接続、コレクション、フィールド、物理的なスキーマを調べます。開発と診断に役立ち、テーブルの編集や業務レコードの編集の操作は公開しません。
プラグインは照会の API とクライアントを提供し、ブラウザーの画面はアプリが組み立てます。
シナリオと例
例:注文のテーブルを調べる
- 注文が使う接続を選びます。
- コレクションのフィールド、リレーション、警告を調べます。
- その物理的なスキーマを開き、列とインデックスを調べます。
- 必要な変更は マイグレーション で行います。
ページ分けされた一覧では pageToken をたどります。DatabaseExplorerClient.allCollections() は、アプリ側の検索のためにページをたどり、たどる上限に達すると truncated を報告します。
開発用のプロンプト(アプリのディレクトリで作業するコーディングエージェント向け):
Database Explorer を使って、管理者向けのスキーマの閲覧ページを追加してください。
接続、コレクション、必要に応じた物理的なスキーマには DatabaseExplorerClient と
DATABASE_EXPLORER_ACCESS を再利用してください。ページネーションに対応し、切り詰めを表示してください。
スキーマやレコードの編集は追加しないでください。アクセスの拒否、利用できない接続、
存在しないコレクションをテストしてください。完了の条件認可された管理者が論理的なスキーマと物理的なスキーマを調べられ、拒否されたユーザーは API を照会できないこと。
主な仕組みと実装
以下は、この例での組み込みの領域と、想定される画面の変化です。開発作業を記述したもので、実際のファイル構成はアプリに合わせてください。
| 組み込みの領域 | コードまたは設定の変更 | 画面と動作の変化 |
|---|---|---|
| クライアントのルートとブラウザーのページ | 接続、コレクション、物理的なスキーマのリクエストを組み立てる | 必要に応じたスキーマの閲覧を追加する |
| ページの認可 | DATABASE_EXPLORER_ACCESS を再利用する | ナビゲーションと API のアクセスをそろえる |
| ページネーションとエラーの状態 | pageToken、truncated、失敗を扱う | 部分的な結果や失敗した結果を完全なものとして表示しない |
組み込み
両方のランタイムを Authentication と Authorization のあとに登録します。アプリは DatabaseExplorerClient を使ってページを作ります。プラグインは API を提供するだけで、ページや業務のテーブルのマイグレーションはありません。
ページと API は page:database-explorer/access を共有します。クライアントでは、エクスポートされた DATABASE_EXPLORER_ACCESS を再利用します。
構造を閲覧する
| 照会 | エンドポイント |
|---|---|
| 接続 | GET /api/databaseExplorer/connections |
| コレクション | GET /api/databaseExplorer/connections/:connection/collections |
| 定義とフィールド | GET /api/databaseExplorer/connections/:connection/collections/:collection |
| 物理的な列、インデックス、制約 | コレクションのエンドポイントに /physicalSchema を付ける |
接続の概要には、名前、ダイアレクト、管理のモードが含まれ、パスワード、ホスト、データベースのファイルのパスは含まれません。定義と物理的なスキーマは別々のリクエストです。
AI 開発の制約と検証
プラグイン固有の開発の制約
- スキーマの閲覧は読み取り専用に保ってください。スキーマの変更には引き続きマイグレーションを使います。
- 接続の概要に、ホスト、パスワード、データベースのパスの開示を追加しないでください。
- 最初のページをすべてのコレクションとして扱うのではなく、ページをまたぐ検索、たどる上限、アクセスの拒否をテストしてください。
境界
プラグインには書き込みのエンドポイントがありませんが、データベースのフレームワークが、管理対象の接続のコレクションを初めて読み取るときに、内部のメタデータとキャッシュのバージョンのテーブルを初期化することがあります。業務のテーブルと行は変わりません。外部の接続は、ディレクトリに置いたメタデータを使います。
認可されたアクセスと拒否されたアクセス、利用できない接続、存在しないコレクション、ページネーションを検証します。エラーの取り決めは、動作中のアプリの API ドキュメントを参照してください。
関連:データベースの接続、権限管理、プラグインを管理する。
これらはあなたの組み込みの検収の要件であり、実機での検証が完了したことを示すものではありません。実際の変更、実行したチェック、未検証の項目をエージェントに報告させてください。プロジェクトのガイダンス、スキル、共通のチェックについては アプリの開発を続ける と テスト を参照してください。
出典:公開のプラグインの入口と実装。