外部 NocoBase
概要
外部 NocoBase データソースを使用すると、別の NocoBase アプリを現在のアプリに接続し、リモートアプリで設定済みのデータテーブル、フィールドインターフェース、タイトル、リレーションフィールドなどのメタデータを保持できます。
外部データベースデータソースと比べて、外部 NocoBase を接続した場合は、通常、フィールドインターフェースを再設定したり、リレーションフィールドを手動で作成したりする必要はありません。レコードの表示、作成、編集、削除に加えて、ファイルのアップロードとプレビュー、インポート・エクスポート、チャートクエリ、および一部のワークフローにも対応しています。
データソースの追加
プラグインを有効化した後、「データソース管理」で外部 NocoBase データソースを追加し、リ モートアプリのアクセス情報を入力します。
データソースを有効にすると、システムがリモートアプリのデータテーブルを読み込みます。

権限について
外部 NocoBase データソースは、現在のアプリとリモートアプリの両方の権限の影響を受けます。
- 現在のアプリでは、他の外部データソースと同様に、テーブルやフィールドごとに異なるアクセス権限を設定できます。
- リモートアプリでは、設定された API key の権限に基づいて、対応するデータの読み取りや操作を行います。
外部 NocoBase データソースは、フロントエンドでボタンの表示状態を細かく制御するための権限メタデータを返 しません。そのため、一部のボタンはメインデータソースのように権限に応じて自動的に非表示にならない場合があります。ボタンの表示・非表示にかかわらず、送信操作時には現在のアプリのサーバー側で権限チェックが行われ、権限のない操作は拒否されます。
外部 NocoBase データソース専用の API key を用意し、必要なデータテーブルと操作権限のみを付与することを推奨します。現在のアプリでは権限があるのに操作に失敗する場合は、リモート API key の権限を確認してください。
データテーブルの使用
データテーブルの読み込みに成功したら、ページ設定、ブロック設定、チャート、またはワークフローでこのデータソースを選択して、リモートアプリのデータテーブルを使用できます。
リモートアプリのデータテーブル構造を変更した場合は、現在のアプリでデータテーブルを再読み込みする必要があります。
機能について
外部 NocoBase データソースは、主に現在のアプリでリモートアプリのデータテーブルとデータを使用するためのものです。データテーブルの構造、フィールド設定、実際のデータは、引き続きリモートアプリで管理されます。
データテーブルとフィールド
現在のアプリは、リモートアプリのデータテーブル、フィールドインターフェース、タイトル、リレーションフィールドなどのメタデータを読み込みます。外部データベースデータソースと比べて、通常、現在のアプリでフィールドインターフェースを再設定したり、リレーションフィールドを手動で作成したりする必要はありません。
現在のアプリでは、外部 NocoBase データソースのフィールドを直接設定することはできません。フィールドの追加、フィールドタイプの調整、リレーションフィールドの変更が必要な場合は、リモートアプリで行った後、現在のアプリに戻ってデータテーブルを再読み込みしてください。
レコードと関連データ
外部 NocoBase データソースでは、ページブロック内でレコードの表示、作成、編集、削除を行えるほか、関連データの表示と管理にも対応しています。操作は現在のアプリから開始され、設定された API key を使用してリモートアプリにリクエストが送信されます。
ファイルと添付ファイル
ファイルはリモートアプリで使用されているストレージにアップロードされます。現在のアプリはアップロード、プレビュー、ダウンロードのリクエストを開始しますが、ファイル自体が現在のアプリに保存されることはありません。
Origin は主に、 リモートアプリのローカルストレージにあるファイルのプレビューアドレスを処理するために使用されます。リモートから相対パスが返された場合、現在のアプリは Origin を使用してファイルアクセスアドレスを補完します。Origin には、リモート NocoBase アプリの公開アクセスアドレスを指定してください。例:
API アドレスを Origin に指定しないでください。
インポート・エクスポート
インポートとエクスポートは、外部ファイルを介してデータソースのデータを読み書きする操作であり、いずれもリモートアプリにプロキシされて実行されます。現在のアプリはユーザー操作の受け付け、リクエストの転送、ダウンロード結果の返却を担当し、実際のデータの読み書きはリモートアプリで行われます。
- レコードのインポート:現在のアプリがアップロードされたインポートファイルを受け取り、リモートアプリにプロキシしてインポートを実行します。
- レコードのエクスポート:現在のアプリがリモートアプリにレコードのエクスポートをプロキシします。同期モードでは、リモートから返されたレコードファイルのストリームをブラウザーに返してダウンロードします。非同期モードでは、ローカルの非同期タスクを作成し、リモートアプリでレコードのエクスポートを開始して進捗を同期します。ダウンロード結果を取得する際に、リモートアプリからレコードファイルをストリーミングで取得します。
- 添付ファイルのエクスポート:現在のアプリがリモートアプリに添付ファイルのエクスポートをプロキシします。同期モードでは、リモートから返された添付ファイルパッケージのストリームをブラウザーに返してダウンロードします。非同期モードでは、ローカルの非同期タスクを作成し、リモートアプリで添付ファイルのエクスポートを開始して進捗を同期します。ダウンロード結果を取得する際に、リモートアプリから添付ファイルパッケージをストリーミングで取得します。
テンプレート印刷
テンプレート印刷では、外部 NocoBase データソースのレコードを使用できます。印刷テンプレートと印刷アクションの設定は現在のアプリに保存されます。印刷時には、現在のアプリがリモートのレコードと関連データを読み込み、現在のアプリで印刷ファイルを生成します。
チャート
クエリパネル
外部 NocoBase データソースは、チャートのクエリパネルに使用できます。現在のアプリは、ローカルで設定されたチャート、データソース、データテーブル、フィールドの権限に基づいてクエリパラメーターを処理し、その後リモートアプリにリクエストして結果を取得します。
リモート API key にも、対応するデータへのアクセス権限が必要です。権限がない場合、クエリは失敗します。
SQL パネル
SQL パネルはチャートの SQL クエリモードに該当し、クエリのみに使用されます。現在のアプリは SQL 設定の保存と呼び出しの開始を担当し、SQL はリモートアプリにプロキシされて実行されます。
SQL パネルを使用する場合、ローカルユーザーは現在のアプリで UI 設定権限を持っている必要があり、リモート API key もリモートアプリで UI 設定権限を持っている必要があります。SQL はクエリパネルのようにデータテーブルやフィールドの権限に基づいてクエリパラメーターを分解しないため、ローカルユーザーと対応する API key に UI 設定権限を付与する際は注意してください。
ワークフロー
外部 NocoBase データソースでは、現在のアプリとリモートアプリの2つのワークフローが関係する場合があります。現在のアプリは、ローカルページ、ボタン、API リクエストのフローにおけるイベントに応答します。リモートアプリは、プロキシされたリクエストを受信した後、リモートアプリ独自のワークフロー設定に従って処理します。
注意すべき点として、現在のアプリはリモートデータテーブル内部で発生した作成、更新、削除イベントを監視しません。リモートデータテーブルのイベントは、リモートアプリでのみトリガーされます。
トリガー
次の表は、対応するワークフローが有効になっている場合に、外部 NocoBase データソースの影響を受けるトリガーが、現在のアプリとリモートアプリでどのようにトリガーされるかを示します。
データソースに依存しないトリガーは、現在のアプリとリモートアプリでそれぞれの設定に従ってトリガーされます。
現在のアプリで外部 NocoBase のデータを操作するフローを構成する場合は、リクエスト前イベント、リクエスト後イベント、またはカスタムアクションイベントの使用を推奨します。リモートアプリに既に存在するワークフローは、リモートアプリで独立して実行されます。
ノード
次の表には、データソースに関連するノードのみを示します。条件、計算、ループ、JSON 処理などの汎用ノードはデータソースの種類に依存しないため、通常のワークフローと同じように使用できます。

