コンテンツ
情報の形づくり。
バリアント
レコード全体、単一のフィールド、またはprose内の単一のエントリーをオーディエンスごとに変えられます。バリアントは、再利用可能で優先順位のあるターゲティングルールから、サーバー上で選択されます。
オーディエンスとセグメント
デバイス、プラットフォーム、ロケール、サインイン状態といったコンテキストディメンションと、リクエストごとにサーバーが評価するルールベースのセグメントから、オーディエンスを作成します。
コンテンツAPIは、アプリケーションに必要なもののごく一部です。ここでは、その残りを紹介します。
情報の形づくり。
レコード全体、単一のフィールド、またはprose内の単一のエントリーをオーディエンスごとに変えられます。バリアントは、再利用可能で優先順位のあるターゲティングルールから、サーバー上で選択されます。
デバイス、プラットフォーム、ロケール、サインイン状態といったコンテキストディメンションと、リクエストごとにサーバーが評価するルールベースのセグメントから、オーディエンスを作成します。
公開し、そして元に戻す。
バージョン管理されたモデルでは、保存のたびに番号付きのバージョンとなり、プランで決まる期間保持されます。復元すると新しいバージョンが追加され、ドライランで先に影響を確認できます。
ロールアウトは、名前を付けたレコードバージョンのまとまりを、予約した1つの時点で公開します。失敗した項目はスキップされてリトライでき、まとまり全体をロールバックすることもできます。
アプリケーションに届く仕組み。
FóirはモデルからGraphQLスキーマを生成します。本番では公開済みのスキーマを配信し、コミット済みの型がプロジェクトより古くなっているとCLIのチェックがビルドを失敗させます。
WebSocketでサブスクライブし、レコードの変更を受け取ります。イベントには変更されたもののIDが含まれ、SDKのliveモジュールがそれをクエリキャッシュに反映します。
アプリケーション向けのGraphQLを書いてくれる型付きクライアントで、型はキーごとに生成されます。コンテンツ、スキーマ、公開、設定を扱うCLIは、スクリプト向けにJSONで出力できます。
リクエストレートはプランに応じてキーごとに設定され、クエリの深さ、フィールド数、エイリアスはクエリの実行前に上限が適用されます。レスポンスのヘッダーに制限値が含まれます。
誰が何を見て、何をできるか。
確認済みのログインドメイン上でFóirがユーザー向けにホストするサインインページ。プロジェクトの名前、ロゴ、色を反映し、パスワード、メールで送るコード、プロバイダーによるサインインに対応します。
ユーザーは、OpenID Connectのディスカバリードキュメントを公開している任意のIDプロバイダーでサインインできます。ディスカバリーURLとクライアント認証情報を指定すれば、Fóirがやり取りを実行します。
コンソールには、カスタムログインドメインでユーザーが保持するセッションがサインインアプリごとに一覧表示され、任意の1件を取り消せます。それ以外のサインインは、トークンの取り消しまたは有効期限で終了します。
データをほかの誰のものとも分離する仕組み。
アクセスルールはPostgresの行レベルセキュリティにコンパイルされるため、リクエストが読み取れるものはデータベースが絞り込み、アプリケーションコードでのチェック漏れがあっても行が露出しません。
各プロジェクトには、独自のコンテンツ、ユーザー、ファイル、キー、シークレット、サインインドメインがあります。APIキーは必ず1つのプロジェクトに属し、別のプロジェクトに向け直すことはできません。
Fóirのスタッフが支援のためにワークスペースの内部を確認する必要があるときは、その管理者の1人がワンタイムコードでリクエストを承認します。アクセスは1時間続き、記録されます。
制作会社向け、そして独自のテナントを持つ製品向け。
各クライアントには、独自のコンテンツ、キー、ユーザー、サインインを持つプロジェクトが用意されます。1つのワークスペースですべてを管理でき、招待したクライアントは自分のプロジェクトにしか到達できません。
1つの設定ファイルでステージングと本番を名前付きプロジェクトとして宣言し、CLIは1回の実行につき一方へプッシュします。宣言した宛先以外は同一に保たれ、差異は報告されます。
プロジェクトは、確認済みのドメインからAPIを配信でき、サインインアプリは、ホスト型サインインページをドメインから配信できます。どちらも任意で、TLSは自動的に発行されます。
ファイルと、それに対してできること。
人手を介さずに進む作業。
クォータは、オペレーションを実行できる頻度にローリングウィンドウで上限を設けます。サインイン中のユーザーごと、またはより広いプール全体に適用でき、自分で書いたメッセージを返します。
人と、エージェント。
サインイン済みのユーザーは、レコードについてのノートを書き、チームからの返信を読めます。Reactウィジェットがノートを登録し、プロジェクトは訪問者からのフィードバックを受け付けることもできます。
出口と、拡張。
1つのコマンドで、プロジェクトを、モデルから生成された型付きのPostgresテーブルとしてエクスポートします。外部キー、公開済みコンテンツ、ファイルのダウンロードリンクが含まれます。
エクスポートのバンドルには、各ユーザーが読み取れる行を定めるPostgresの行レベルセキュリティが含まれます。適用は利用者が行います。フィールドの権限、APIスコープ、書き込みルールは含まれません。
Fóirはコードをホストしません。自分でホストする関数をオペレーションとして登録すると、Fóirは署名付きでスコープを限定したトークンでそれを呼び出し、失敗をリトライし、各実行を記録します。
モデル、APIキー、フック、サインインプロバイダーなど、プロジェクトの設定を、コミットする1つのファイルにまとめます。プッシュすると下書きがステージングされ、リリースで公開されます。