マルチ組織
ひとつのセルフマネージドデプロイメント上の複数の組織。フレームワークではオープンソースで、ObjectOS Enterprise ではライセンスとサポートが付きます。体制、Enterprise イメージに必要なライセンス、起動時の拒否、そして ObjectOS Cloud のほうが適する場合を説明します。
セルフマネージドの ObjectOS デプロイメントは、それ以上を求めない限りひとつの組織にサービスを提供します。ひとつのデプロイメント、ひとつのデータベースで複数の組織を実行するランタイムは、バージョン 17.4 から ObjectStack フレームワークでオープンソースになっています。ObjectOS でそれを提供するイメージは ObjectOS Enterprise です。すべての Enterprise ライセンスがマルチ組織を許可し、私たちのサポートが付きます。ライセンスがない場合、Enterprise イメージは壁のある体制での起動を拒否します。
どのエディションが適するか
| 求めるもの | 使うもの |
|---|---|
| 自社のインフラストラクチャ上でひとつの組織 | ObjectOS Community、または任意の Enterprise ライセンス。これがデフォルトです。 |
| 自社のインフラストラクチャ上で、ひとつのデータベースに複数の組織 | ObjectOS Enterprise。ライセンスとサポートが付きます。ランタイムはオープンソースなので、ライセンスなしで自分のランタイムに組み込むこともできます(後述)。 |
| デプロイメントを運用せずに、少数の組織 | ObjectOS Cloud。各組織がそれぞれのプランでサインアップし、分離は私たちが運用します。プランと AI シートを参照してください。 |
| データベースを共有してはならない組織 | 組織ごとにひとつのデプロイメント。どのエディションでも構いません |
体制
OS_TENANCY_POSTURE は、組織どうしが壁で隔てられているかどうかを示します。
| 体制 | 意味 |
|---|---|
single | ひとつの組織がデプロイメントを所有します。隔てるものはありません。 |
group | 複数の組織がひとつのデータセットを共有し、グループのメンバーは組織をまたいで読み取ります。 |
isolated | 強固な壁です。ある組織のメンバーは、別の組織が存在することを知ることができません。 |
group と isolated が壁のある体制です。設定そのものについて 2 つの点があります。
- 未設定は、何も知らせずに
singleになります。 体制を一度も設定しないデプロイメントはひとつの組織を実行し、何の異常も報告しません。ランタイムから見れば何も問題がないからです。求める体制を書いてください。 - 綴りを誤った値は起動を拒否します。 壁のない体制にフォールバックすることはありません。
ライセンス
Enterprise イメージでは、壁のある体制には multiOrg を許可するライセンスが必要です。契約で機能が明示的に列挙されていない限り、すべての Enterprise ライセンスがそれを許可します。旧 business エディションとして発行されたライセンスは許可しません。起動バナーの features の行に、あなたのライセンスが許可するものが表示されます(ライセンス)。
それがない場合、ランタイムは起動を拒否し、最初の行で理由を示します。
✖ FATAL: tenancy posture 'isolated' requires an Enterprise license.
Multi-organization isolation is a LICENSED Enterprise capability (ADR-0022,
cloud#766). This runtime is not licensed for it, so the organization wall
cannot be activated — and a deployment that asked for isolation must never
serve traffic pretending to have it. Refusing to boot.これはライセンスの失敗であり、パッケージの欠落ではありません。メッセージもそう述べています。示される修正は 2 つです。マルチ組織を許可するライセンスか、OS_TENANCY_POSTURE=single です。OS_ALLOW_DEGRADED_TENANCY はこれには適用されません。この拒否はアーティファクト固定の形態を含むすべての実行形態で同じで、アーティファクト固定の形態ではコード MULTI_ORG_NOT_LICENSED が付きます。
ライセンスが終了したときも同じです。壁のあるデプロイメントは、単一組織のデプロイメントのように Community に戻ることはありません。次の起動時に、有効なライセンスがインストールされるまで起動を拒否し、データはそのまま残ります。.env が壁のある体制を求めている場合、デプロイバンドルの license-check.sh がその拒否を事前に報告します。永続ライセンスがあれば、壁のあるデプロイメントは、そのライセンスが対象とするイメージで動作し続けます。詳細はライセンスにあります。
Community イメージの場合
公開されている Community イメージは、ひとつの組織を実行します。マルチ組織のランタイムを含んでいないため、そこでは壁のある体制は起動を拒否し、@objectstack/organizations を読み込めなかったと示します。この拒否は回避策として OS_ALLOW_DEGRADED_TENANCY=1 を示します。それを使うと壁が無効のまま起動し、組織の境界は強制されません。複数の組織を実行するために使わないでください。
マルチ組織のランタイム自体は、ObjectStack フレームワークでオープンソースです(@objectstack/organizations、Apache-2.0、17.4 以降)。ObjectOS で、ひとつのセルフマネージドデプロイメント上で複数の組織を、ライセンスと私たちのサポート付きで実行するエディションは Enterprise です。
実行形態
| 形態 | 複数の組織 |
|---|---|
| 設定で記述(イメージ自身のアプリ、Compose のデフォルト) | サポートされます。壁のある体制と、それを許可するライセンスが必要です |
| 合成(公開済みのアプリと、このイメージのエンタープライズプラグイン) | サポートされ、そのために作られた形態です。エアギャップライセンスのみで、OS_CLOUD_URL=off が必要です。どちらも起動時に強制されます(エアギャップ)。 |
アーティファクト固定(OS_ARTIFACT_URL) | ライセンスの方法は同じですが、イメージの設定は実行されません。AI ガバナンスも AI シートもなく、AI の構築エージェントを閉じることもできません。代わりに合成の形態を使ってください。 |
構築エージェントが重要な理由:メタデータのスコープは組織ではなくデプロイメントです。共有データベースでは、ある組織の AI Builder の 1 回の操作が、ほかのすべての組織が動作しているスキーマを書き換えます。合成の形態では、OS_AI_STUDIO_AGENTS=ask がそれを閉じます。
壁のあるデプロイメントが宣言しなければならない決定
壁のある体制では、さらに 3 つのことを決めるまでランタイムは起動を拒否します。利用可能な値であれば、どれを宣言しても受け入れられます。決めないことは受け入れられません。
| 変数 | 決めること |
|---|---|
OS_AUTH_MEMBERSHIP_POLICY | 新しくサインアップした人が何に参加するか。メンバーシップそのものがテナントの境界である場合、通常の答えは invite-only です。 |
OS_AI_STUDIO_AGENTS | どの AI エージェントをマウントするか:ask、build、またはその両方。上の理由から、通常の答えは ask です。 |
OS_PLATFORM_OWNER_EMAIL | プラットフォーム管理者が誰か。壁のある体制では、これがその立場の唯一の情報源です。 |
それぞれの詳細は環境変数にあります。単一組織のデプロイメントには、これらのチェックはありません。
壁が隔てるもの
壁が隔てるのは、組織のデータとメンバーシップです。デプロイメントに属するメタデータは隔てません。壁より強い分離はデプロイメントの分離です。自分のデータベースを持たなければならない組織には、専用のデプロイメントを用意します。
壁のあるデプロイメントでは、2 つの Enterprise の保護が組織ごとに適用されます。
- Enterprise イメージでは、SSO のドメイン検証がデフォルトで有効です。組織が登録した ID プロバイダーは、プラットフォーム管理者が DNS の TXT レコードでその組織がドメインを管理していることを証明するまで、誰もサインインさせません。これがないと、ある組織のプロバイダーが、主張する任意のメールアドレス(別の組織のドメインを含む)でアカウントを作成できてしまいます。
OS_SSO_DOMAIN_VERIFICATION=falseで無効にできます。このデフォルトは設定で記述する形態と合成の形態に適用され、アーティファクト固定の形態には適用されません。4.3.1 より新しい Enterprise のリリースに含まれます。 - 顧客管理の鍵は設定で記述する形態と合成の形態で動作するため、壁のあるデプロイメントは自社の KMS キーでシークレットを封印できます(ライセンス)。
次へ
- ライセンス:このページが前提とするライセンスの取得、検証、更新。
- トラブルシューティング:起動時の拒否を見分けます。
- 本番環境への準備:本番稼働チェックリストのうち、壁のある体制に関する項目。