Component: tokenfactory-portal · Formerly: MOAD, "the Mother Of All
Dashboards" (repo amazeeio/moad, local: ~/git/amazeeio/moad) · Runs
as: my.amazee.io · Status: ✅ production
The workspace-based customer portal for the NeoCloud edition. Users manage AI
keys, spend, budgets, teams, and regions here.
TypeScript on Node 22 (ESM) · Hono server + GraphQL BFF ·
React 19 + TanStack Router/Query + Zustand + Tailwind 4 · Effect-ts
service layers (Live/Mock variants) · Drizzle ORM on MariaDB · Redis sessions ·
Stripe SDK · OTel → Jaeger · Storybook/Playwright/cucumber testing · Lagoon
deployment.
The browser speaks only GraphQL to the Portal's own server (persisted
queries); the Portal's resolvers call the backends server-side: the
Control Plane via a generated
OpenAPI client with a service token (per-user authorization enforced in
the Portal's resolvers), Identity for
profile/roles, Stripe for billing, and Polydock for app deployment (out of
Token Factory scope). Login is Keycloak OIDC Authorization Code + PKCE, fully
server-side, with sessions in Redis and only a session cookie in the browser.
Central domain object: Workspace — holds amazeeai_team_id,
ai_region_id, stripe_customer_id, membership roles, and monthly budgets.
amz_...) for programmatic GraphQL.| Edition | Usage |
|---|---|
| Enterprise MVP | Ships in the umbrella chart (ADR-005 resolved): its shipped key self-service is the MVP's "My Keys" surface. Packaging it self-contained is the work. |
| Enterprise | The self-service portal, packaged for customer infrastructure. |
| NeoCloud | The portal, as-is — white-labeling/theming per operator is the main new work. |