組織単位で各機能の利用可否(ON/OFF)を切り替える機能フラグの仕組み。システム管理者が組織詳細ページで設定する。
同じ機能でも「使える組織」と「使えない組織」を分けられるよう、 組織(Organization)ごとに機能のON/OFFを保持する。 システム管理者がシステム管理画面(system-manager)の組織詳細ページでトグルし、 その結果は各アプリ(user / organization-manager)のナビ表示やページのガードに反映される。
Organization.featureFlags(JSONカラム feature_flags、既定 {})。/organizations/[organizationId] でフラグごとにトグル。featureFlagsSchema.parse(...) でフラグを読み、ナビ表示やページガードを制御。| フラグキー | 対象機能 | 既定値 | 型 |
|---|---|---|---|
isSolidFloorPlanAvailable |
3D間取り(user 側 /v/solid-floor-plans) |
OFF(オプトイン) | boolean / default(false) |
isUserManagementAvailable |
ユーザー管理(organization-manager 側 /users)
本機能で追加予定
|
ON(オプトアウト) | boolean / default(true) |
※ オプトイン型(既定OFF)は明示的にONにした組織だけが使える。 オプトアウト型(既定ON)は明示的にOFFにした組織だけが使えなくなる。 ユーザー管理は既存の全組織が日常的に使う基本機能のため、既定ONのオプトアウト型を採る。
Organization.featureFlags
prisma/schema/organization.prisma
featureFlags Json @default("{}")featureFlagsSchema(Zod)
packages/database/lib/organization/feature-flags.ts
isSolidFloorPlanAvailable : default(false)isUserManagementAvailable : default(true)| アプリ | 画面 | 役割 |
|---|---|---|
| system-manager | 組織詳細 /organizations/[organizationId] |
各機能フラグのトグル(設定) |
| user | /v/solid-floor-plans ほか |
3D間取りのナビ表示・利用可否(反映) |
| organization-manager | /users 配下 |
ユーザー管理のナビ表示・利用可否(反映) |