Asset Admin — Superadmin (Platform Console)¶
Version: 1.0.0
Date: 2026-05-17
Site Key: asset-admin-superadmin
Site Family: CRUD-Sites (legacy CRA stack)
Implementation Repo: webapp-asset-admin-superadmin
Typical URL: Internal / admin host (Material Dashboard shell under /admin)
Extends: all-sites.md
Site Purpose¶
Internal SUPER_ADMIN console for Omnivoltaic platform operations. It is the configuration and CRUD layer for identity, clients, PayGo accounts, thing catalog (SKUs, batches, fleets, items, firmware), avatar shadow records, events, and support tooling.
It is not the primary live fleet map / device monitoring experience. Cross-tenant telemetry dashboards live in Asset Admin — Distributor (webapp-asset-admin-distributor-v2, /dashboards), where SUPER_ADMIN signs in for map-centric fleet health.
Roles and Access¶
JWT roleName from login (OVS_TOKEN_KEY / preferences). Route definitions in src/routes/routes.ts are overwhelmingly SUPER_ADMIN only.
Role (JWT roleName) |
Typical use of this app |
|---|---|
SUPER_ADMIN |
Primary operator — full /admin menu |
DISTRIBUTOR, DISTRIBUTOR_STAFF, GENERAL AGENT, SERVICER, SALES |
Declared in auth constants; not the main operational UI for distributors/agents (they use distributor v2) |
Sidebar visibility filters routes where item.permissions includes the user’s roleName or subrole name (src/layouts/Admin.tsx).
Navigation — Admin Sidebar¶
Base path: /admin/*. Auth: /auth/* (src/routes/index.tsx).
| Section | Representative paths | Purpose |
|---|---|---|
| My Settings | /admin/settings/profile, workspace, security |
User profile placeholders |
| Identity | /admin/organizations, /admin/users, /admin/roles |
Orgs, users, roles (client/auth services) |
| Client | /admin/distributors, /admin/suppliers, /admin/admin-customers, /admin/servicer, /admin/client-service |
Distributor and partner CRUD |
| Accounts | /admin/thing-fleet/client-fleet, /admin/asset-accounts, message groups/templates |
PayGo accounts; client-scoped fleet list |
| Thing | /admin/dashboard, /admin/sku, /admin/batch, /admin/thing-fleet, /admin/firmware, /admin/item, /admin/codegen, /admin/thing-broker, /admin/avatar, check-in routes |
Catalog, batches, fleets, items, codegen, avatar admin |
| Event | /admin/events-events, events-items, events-signal, events-broker, events-publisher |
Platform event streams |
| Support | /admin/apps, /admin/tigstack |
Support apps / Tigstack |
Fleet in superadmin = admin CRUD (create fleets, assign/reassign items and batches, code-gen settings), not v2 Device Monitoring.
Data Sources¶
| Source | Default endpoint pattern | Used for |
|---|---|---|
| Federated GraphQL | federated-graphql-api.omnivoltaic.com/graphql |
Most entity CRUD, avatar CSV export, accounts |
| Thing GraphQL | thing-use-microservice-prod.omnivoltaic.com/graphql |
Thing-make simulator / uploads (THING_MAKE_API) |
| Ecommerce GraphQL | Configured in src/config.ts |
Ecommerce admin slices |
| REST / proxies | api.omnivoltaic.com, Grafana proxy constants |
Tickets, external links |
Apollo clients: src/utils/client.ts, clientSimulator.ts, thingMakeSimulator.ts.
Apps are organized by microservice under src/apps/ (things, accounts, clientService, events, support, ecommerce) — see src/apps/README.md.
Avatar Module (/admin/avatar)¶
Distinct from distributor v2’s read-only device snapshot viewer.
| Concern | Superadmin | Distributor v2 |
|---|---|---|
| Purpose | CRUD on Avatar entities |
Live telemetry view for operators |
| UI | List / add / edit / activate / deactivate / delete | Device Details GATT tabs |
| Attributes | Structured att, cmd, sts, dta, dia arrays |
getDeviceSnapshotWithGattMeta |
| Export | Batch avatar att CSV via federated API | Per-item export on /thing/item |
Shadow linkage: each avatar maps 1:1 to an Item (shadow). Telemetry fields such as opid (device serial) and ccid (SIM ICCID) are stored under att when devices report them.
Fleet Administration (src/apps/things/app/fleet)¶
- Create/update/delete ItemFleet
- Assign items and batches to fleets; holding-fleet reassignment flows
- Fleet-linked code generation settings (
CodeGenSettings.tsx,FleetProvidercontext) - Menu duplicates: Accounts → “Fleets” (
client-fleet) and Thing → “Item Fleet” (thing-fleet)
No equivalent to v2 FleetOverviewTab, Last Seen histogram, or historical route playback.
SUPER_ADMIN vs Distributor v2 (cross-app)¶
| Capability | Superadmin (this app) | Distributor v2 |
|---|---|---|
| PayGo / customers / unlock codes | Global asset accounts, templates | Client-scoped accounts & workflows |
| Live fleet map & health | No | Yes — /dashboards |
| Item/fleet assignment | Full batch/fleet tooling | Items list, agent assignment |
| User / org / distributor admin | Full identity + distributors | Staff & agents only |
| Avatar entity editing | Yes | Read-only snapshot + CSV export |
| Thing subgraph (map pins) | Via federation / thingMake | Direct Thing GraphQL for SUPER_ADMIN map |
Implementation Notes¶
- Stack: Create React App, React Router, Material UI (Mosaic-derived admin template).
- Not the Next.js Mosaic v2 app; scaffold target for new CRUD sites is
dirac-uxi-crudaligned with distributor v2. - Legacy Overview Dashboard at
/admin/dashboardis separate from v2 Assets Dashboard.
Related Documentation¶
- Asset Admin — Distributor (webapp v2) — operational portal and telemetry dashboards
- CRUD-Sites family
Change Log¶
v1.0.0 — 2026-05-17¶
- Initial superadmin site spec aligned with
webapp-asset-admin-superadmin - Documented split of responsibilities vs distributor v2 for SUPER_ADMIN fleet/avatar work