Platform Management
Overview
Platform Management is a cross-tenant administration panel for the team that operates Nuve. Unlike the Admin Panel it is not limited to a single organization — it manages, across all customers, which organization has purchased which modules, whether they are active or suspended, and who holds platform administrator rights. Access is protected by a flag independent of the user's role (is_platform_admin); an ordinary organization admin cannot enter this panel.
Key Concepts
- Organization (tenant) — each customer company; represented by a name, an address (slug), an active state, the list of purchased modules and a user count.
- Module entitlement (
enabled_modules) — the set of products an organization has purchased (bom_master,pdm_vault,dpp,nuve_recipeand so on); access to a module outside this list is refused with a 403 regardless of the user's role. - Platform administrator (
is_platform_admin) — a cross-tenant access axis entirely separate from the in-organization role (admin,plm_configetc.); at least one platform administrator must always remain — the last one's rights cannot be removed. - Suspension (
is_active) — when an organization is suspended, none of its users can log in (login returns 403); reactivating it restores login immediately. - Per-organization audit log — every platform-panel action (module change, suspension, granting rights) is written both to the general audit stream and to the relevant organization's own audit tab, stamped with its
tenant_id.
Typical Workflow
- Open Platform Management from the left-hand menu (only platform administrators see it); the organization table shows every customer (name, address, status, creation date, module badges, user count).
- Create a new customer with + New Organization by entering the company name, address (slug), first administrator user details and the initial modules — the address is suggested with a live availability check.
- Click an organization row to open the detail panel: change the module checkboxes and update the purchased modules with Save.
- Suspend or activate the organization if needed.
- Grant or remove platform administrator rights for a user from the user list (removing the last remaining administrator is blocked).
- Review the organization's own audit queue to verify the most recent operations performed for that customer.
Feature Reference
- Organization listing and creation: name, address (slug), first admin user, initial module set
- Module entitlement update (
PATCH /organizations/{id}/modules) — an invalid module name is rejected with a 400 - Activate/suspend (
PATCH /organizations/{id}/status) — the users of a suspended organization can no longer log in, immediately - Granting/removing platform administrator rights (
PATCH /organizations/{id}/users/{user_id}/platform-admin) — the last platform administrator is protected - Organization detail: user list plus the organization-specific audit log (
GET /organizations/{id}) - Audit log querying, globally or filtered by organization (
GET /audit?tenant_id=) - Every endpoint sits behind
require_platform_admin; unauthenticated access returns 401, unauthorised access returns 403
Constraints / Known Limits
- There is no organization delete or archive function yet — only the active/suspended state can be changed.
- The first platform administrator is assigned automatically to the system's first
adminuser only (bootstrapseed_admin()); subsequent platform administrators must be granted manually through the panel. - Billing, usage metering and self-service plan upgrades are out of scope for this panel — module entitlement is currently managed manually by a platform administrator.