Module Registry Service
Component Detail
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.
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.
-
docs/source/likeperson.md · line 174-177Module = 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
-
docs/source/likeperson.md · line 180Admin 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[]
Related Data Entities (5)
Data entities managed by this component