組織の分離
Fóirで構築するプロダクトに独自の顧客がいる場合、その顧客はそれぞれ、プロジェクト内の組織になります。データは、ワークスペースやプロジェクトを分けるのと同じ仕組みで分離されます。
データベースによる付与と固定
SDKのどの呼び出しも、組織の引数を取りません。組織は認証情報から決まり、行が書き込まれるとき、データベースのトリガーが呼び出し元自身のクレームから組織を付与します。2つ目のトリガーは、ある組織内の呼び出し元が行を別の組織に移すことを防ぎます。
読み取りも同じ方法でフィルターされます。呼び出し元には、プロジェクト全体で共有されている行、自分の組織の行、その配下の組織の行が見えます。
派生データも対象
組織レベルのポリシーは、レコード、ファイル、ユーザー、ノート、通知、イベント、およびそこから派生したデータに適用されます。派生データとは、インデックスされたフィールド値、ルックアップキー、リレーションシップ、ジオメトリ、エンベディング、アクセス付与です。レコードは見られないが、そのインデックス値やエンベディングは見られる読み取り側は、締め出されていないことになります。そのため、これらのテーブルも対象に含めています。検索は呼び出し元自身のポリシーで実行されるので、読み取れなかったはずのレコードの結果が返ることはありません。
組織に立つ認証情報
キーは作成時に1つの組織に限定でき、後から変更できません。そのキーは自分の組織、その配下の組織、共有の階層を読み取り、書き込めるのは自分の組織だけです。プロジェクトのキーはリクエストごとに組織を指定でき、そのプロジェクトの有効な組織でないものは拒否されます。
組織に立たない認証情報が読み取るもの
どの組織にも立たない認証情報は、プロジェクト全体で共有されている行を読み取り、組織に属するものは何も読み取りません。すべての組織を一度に読み取ることは、別の読み取り専用の権限であり、公開キーは持てません。
キャッシュ
キャッシュされたレスポンスは、プロジェクトごとだけでなく組織ごとにも保存されるため、1つの組織に限定されたキー、または組織を指定するキーについては、2つの組織の回答が同じエントリを共有することはありません。
詳細を読む
組織のガイドでは、生成されるポリシーと、リクエストが組織に立つそれぞれの方法を順に説明しています。