アプリ

アプリを使うと、独自のツールをコンソール内の、作業対象のコンテンツの隣に置けます。インターフェースは自分でホストするWebページで、アプリケーションが使うのと同じGraphQL APIを通じて読み書きします。

4つのプレースメント

アプリのページは、コンソールにiframeとして埋め込まれ、4か所のいずれかに置かれます。ナビゲーションのフルページ、レコードエディターのタブ、レコードエディターのサイドバーパネル、1つのフィールドの既定の入力を置き換えるフィールドエディターです。タブとサイドバーはモデルに紐づけられ、対応するモデルのレコードを開いているときに表示されます。

レコードとの連携

エディターのプレースメントは、@foir/sdkのEditor SDKを通じてコンソールとやり取りします。これにはReact 18以降が必要です。コンソールはページの読み込み時にレコードの値、スキーマ、テーマを送り、保存、公開、バージョン管理は引き続きコンソールが担います。フルページは、表示しているチームメンバーとして動作し、そのプレースメントが宣言し、かつその人も持っているスコープだけを使います。トークンは一度に5分間有効で、サインアウトすると終了します。

1つのマニフェスト

アプリは、自分で選んだhttps URLにあるJSONマニフェストで記述され、必須なのはnameとversionだけです。ページのほかに、アプリは認証情報、オペレーション、ライフサイクルフック、インストール時に自分のモデルに対応づけられるデータ形状を提供できます。アプリがモデルを所有することはありません。

インストールとマーケットプレイス

アプリは、マーケットプレイスからか、マニフェストのURLを貼り付けてインストールします。マーケットプレイスはキュレーションされており、掲載されていないアプリはURLからインストールできます。どちらの場合も、インストールのプレビューには、アプリの各オペレーションが読み書きできる内容が正確に示されます。

1つのプロジェクト向けのツール

1つのプロジェクトのタブやサイドバーは、foir.config.tsに直接宣言してプッシュできます。ツールを複数のプロジェクトで再利用する場合は、アプリを作成します。提供するページは、コンソールをフレームの祖先として許可する必要があり、許可しないとブラウザーに空白で表示されます。SDKはそのためのplacementFrameAncestorsを提供しています。

詳細を読む

アプリのガイドでは、マニフェスト、各プレースメント、アプリが提供できるもの、インストールと更新の仕組みを説明しています。