0005. System module for tenant-level administration¶
- Status: Accepted
- Date: 2026-10-01
Context¶
Tenant admins need to manage their own workspace: company profile, general settings, and reference data such as lists and numbering. None of the existing modules fits. iam is about identity, roles, and users; tenancy is the platform's tenant registry and databases; admin is the internal operator portal and never runs inside a tenant workspace.
Options considered¶
- Put workspace settings in
iam: keeps the module count low, but mixes identity with unrelated configuration. - Put them in
tenancy: mixes platform control-plane concerns with data owned by the tenant. - A separate
systemmodule for tenant-level administration.
Decision¶
Add a system module (libs/api/system, @bizos/api-system) for administration that tenant admins do inside their workspace. It stores its data in the tenant database.
Consequences¶
- Clear owner and boundary for workspace settings and reference data.
- Other modules read settings through the
systempublic API, never from its tables. - Platform-wide settings stay out of
system; they belong to the admin portal's platform configuration part.