Skip to content

Management

The Management service is an internal-facing system used by Monozu operators to provision tenants, manage licenses, and control access to the Cloud platform. End customers never interact with it directly.

ComponentPathPurpose
Management BackendManagement/management-backend/Go API for tenant and license management
Management FrontendManagement/management-frontend/React SPA for operators
  • Tenant provisioning — Create tenants in both the Management DB and link them to Cloud by cloud_tenant_id
  • License management — Assign plan, features, and expiry. Activate via webhook to Cloud.
  • Staff authentication — Operators log in with Microsoft Entra ID (per-management app registration)
  • Edge fleet — List devices via internal APIs; claim assign is POST /internal/devices/assign on Cloud Backend (Management UI for assign is not shipped yet)
  • M2M with Cloud Backend — Two-way communication for license sync and device APIs
flowchart LR
    MgmtBE[Management Backend] -->|POST /internal/license/refresh HMAC| CloudBE[Cloud Backend]
    MgmtBE -->|"Bearer CLOUD_INTERNAL_API_TOKEN"| CloudBE
    MgmtBE --> MgmtDB[(Management DB)]
    CloudBE --> CloudDB[(Cloud DB)]

Cloud exposes /internal/* for Management (license refresh, tenants, device-claims, devices/assign, …). See Backend/internal/app/register_internal.go.

Management is the source of truth for all tenant licenses. Cloud does not self-service license activation. The flow is always:

  1. Operator activates license in Management Frontend
  2. Management Backend calls Cloud Backend webhook
  3. Cloud stores license state locally in tenant_licenses + tenant_features
  4. Until activation, Cloud tenants are in pending status and cannot log in

See License Flow for the detailed sequence.