組織機能フラグ(Organization Feature Flag)

組織単位で各機能の利用可否(ON/OFF)を切り替える機能フラグの仕組み。システム管理者が組織詳細ページで設定する。

概要

同じ機能でも「使える組織」と「使えない組織」を分けられるよう、 組織(Organization)ごとに機能のON/OFFを保持する。 システム管理者がシステム管理画面(system-manager)の組織詳細ページでトグルし、 その結果は各アプリ(user / organization-manager)のナビ表示やページのガードに反映される。

機能フラグ一覧

フラグキー 対象機能 既定値
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("{}")
  • → 機能フラグを1つのJSONにまとめて保持

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 配下 ユーザー管理のナビ表示・利用可否(反映)

開発セッション履歴