Service Layer medium complexity backend
0
Dependencies
0
Dependents
5
Entities
0
Integrations

Description

Backend service that owns the canonical list of toggleable modules, their dependency graph, and per-organization enabled state. Resolves cascade-enable operations and validates disable requests against dependent modules.

Feature: Feature Toggles

module-registry-service

Sources & reasoning

§170-186 describes module toggles as the platform's core multi-tenancy mechanism; §180 explicitly names admin-organization as the host for the Feature Toggles UI. Must be MVP because the always-on admin areas need this surface from day one to differentiate tenants.

  • Module = Area. The canonical areas defined in the area taxonomy (section 8) are the unit of toggling. Each area ID (e.g. `expense-reimbursement`, `encrypted-assignments`, `certification-training`) is a module
  • Admin Web Portal: `admin-dashboard`, `admin-user-management`, `admin-organization`, `admin-security`. `admin-organization` is always-on because it hosts the Feature Toggles UI itself

Responsibilities

  • Maintain the registry of available modules and their declared dependencies
  • Resolve the enabled-module set for a given organization
  • Validate toggle operations and compute cascade-enable side effects
  • Reject disable operations that would leave dependent modules orphaned
  • Expose the resolved module set as the source of truth for client navigation

Interfaces

listModules(orgId): ModuleState[]
enableModule(orgId, moduleId): CascadeResult
disableModule(orgId, moduleId): DisableResult
resolveEnabledModules(orgId): ModuleId[]