Skip to content

Product Surface IA and Role Model v1

Status: - Draft design input for the next full product/admin redesign pass. - Complements, not replaces: - doc/product/Product_UI_System_Redesign_v1.md - doc/product/Unified_Product_UX_Model_v1.md - doc/product/Admin_Ops_and_User_IA_v1.md - doc/product/IAM_UX_Information_Architecture_v1.md - doc/product/UX_Intent_Flow_Audit.md

Purpose: - Define the full product information architecture before page-by-page admin and ops redesign work continues. - Make role, intent, and scope first-class so the redesign does not collapse back into route dumps or entity dumps. - Provide one system-level artifact for review and feedback.

0. Canonical Decisions

This is the canonical IA document for the current redesign pass.

When this document disagrees with: - Product_UI_System_Redesign_v1.md - Unified_Product_UX_Model_v1.md - Admin_Ops_and_User_IA_v1.md - IAM_UX_Information_Architecture_v1.md

this document wins for: - shell/navigation structure; - role and mode boundaries; - admin vs ops vs telemetry boundaries; - primary workload nouns; - landing-page ownership.

0.1 Global shell groups

For the authenticated product shell, the canonical top-level groups are: - Workloads - Compute - Apps - Storage - Access - Account - Platform

Rules: - Platform is the top-level home for platform-admin, infra, SRE, telemetry, audit, and other privileged operator flows. - Access is the durable group for project/tenant/platform IAM surfaces. - Storage is the durable workbench for buckets, mounts, datasets, checkpoints, artifacts, retention, and workload data attachments. - public/developer portal is a separate surface family, not an eighth internal left-nav group.

0.2 Admin vs ops vs telemetry

Decision: - Platform is the authenticated top-level shell group. - Inside Platform, Ops, Fleet, Governance, Finance, and Evidence are peer local-navigation families.

Implication: - ops is not a child of admin as a top-level product concept; - admin and ops are peer operating families inside the broader Platform surface; - telemetry is a peer investigation/evidence capability, not the same thing as admin or ops.

0.3 Workload noun hierarchy

Decision: - workload is the primary product noun for active/runnable things users and operators care about. - allocation remains the compute substrate and billing/runtime record. - app instance is treated as a workload subtype rather than a permanently separate top-level mental model.

Implication: - /workloads is the primary user/operator runtime workbench. - allocation surfaces remain valid, but more infrastructure-oriented. - app-instance routes may remain temporarily, but should converge toward the workload model instead of competing with it.

0.4 Mode entry

Decision: - mode is explicit in the shell. - users with more than one role enter mode through a top-bar mode switcher.

Canonical modes: - User - Tenant Admin - Project Admin - Platform Admin - Ops

Rules: - mode selection changes default landing page and primary navigation emphasis; - it does not bypass backend authorization; - route access still remains permission-gated.

0.5 Wizard and task decisions

Decision: - major launch flows use a full-page wizard; - simple dependency-create flows may use modal/drawer shells, but must reuse the same wizard primitives and language; - row overflow uses visible Open plus labeled More on desktop; - long-running operations get a routed task detail at /tasks/:task_id, with embedded summaries allowed on detail pages.

These are no longer open questions for the mock pass.

0.6 Top-bar context model

Decision: - the top bar always contains: - mode switcher - workspace/project selector - region selector - notifications entry - session menu - balance is always visible in user, tenant-admin, and project-admin modes where spend is directly relevant; - in platform-admin and ops modes, balance may collapse into a finance/status entry instead of remaining a primary chip.

Rules: - project/workspace context remains globally visible, but platform-wide pages do not silently filter themselves to one project unless the page is explicitly scoped that way; - platform surfaces should show when they are in fleet-wide vs project/tenant context.

Decision: - the shell should include a global search / command entry point as part of the redesign target.

Initial scope may be limited, but the mock should include it because the product already crosses allocations, workloads, users, nodes, and docs.

0.8 Notifications

Decision: - notifications remain a top-bar shell capability with an inbox/panel model. - the redesign does not require a full dedicated notifications workspace immediately, but the shell mock should assume a stable bell/inbox entry.

0.9 Mode-switcher behavior

Decision: - persistent shell with emphasis: the same seven top-level groups remain visible across all modes; - mode changes: - the default landing route; - which left-rail group is highlighted as the home group; - which actions are visible vs gated. - mode does not swap left-rail content. Groups the user cannot use remain visible but disabled, with reason text on hover.

Rationale: - a stable shell is easier to learn than a shape-shifting one; - users with multiple roles can switch modes without losing visual orientation; - access still flows from backend authorization, not shell visibility.

0.10 Mode-switcher visual and persistence

Visual: - label + chevron dropdown in the top bar; - compact label format: Mode: <Name>; - single-role users see the dropdown disabled or hidden, with their mode shown as a static label.

Persistence: - mode is sticky across sessions per user; - first login defaults to the highest-relevance non-platform mode in the order User → Tenant Admin → Project Admin, unless the user has explicitly previously selected another mode.

0.11 Platform local navigation shape

Decision: - /platform lands on a card-grid family overview; - each family page (/platform/ops, /platform/lifecycle, /platform/config, /platform/evidence, /platform/finance, /platform/iam) uses local subnav or tabs as needed; - a permanent secondary left rail inside the shell is not added in this redesign pass.

0.12 Account vs Access split

Access (project / tenant / platform IAM): - projects; - team / memberships; - service accounts; - policies / entitlements / platform roles.

Account (personal): - profile; - billing; - SSH keys; - personal sessions / settings.

Rationale: - separates "who can do what across scopes" (Access) from "things about me" (Account).

0.13 Tenant-admin and project-admin landing primary questions

Both landings should answer: 1. Who has access? 2. What needs governance attention? 3. What is the current spend / usage posture? 4. What recent changes happened? 5. What needs action now?

These five questions drive the section structure of /tenant/overview and /project/overview. Project admin landing scopes everything to the active project; tenant admin landing aggregates across projects in the tenant.

0.14 App-platform visual elevation

Decision: - Apps remains a peer of Compute in the shell — no top-level IA split in this pass. - visual elevation in the shell and landings is allowed and encouraged: distinct icon weight, hero treatment in user-mode landings, prominent default-action surface in the app catalog.

Rationale: - the app platform is a strategic differentiator (per §17.1) but is not yet a separate product surface; - elevating it visually preserves IA simplicity while making the differentiator legible.

0.15 Storage as a peer shell group

Decision: - Storage is a top-level authenticated shell group. - Storage owns bucket and data-substrate management after creation. - Launch flows may still create buckets inline when storage is a dependency.

Rationale: - buckets can outlive workloads and remain valuable after the producing workload is released; - workload-to-bucket relationships are many-to-many over time, so storage should not be modeled as a child of one workload; - storage has its own operational vocabulary: quota, unattached buckets, failed mounts, retention, encryption, lifecycle, access drift, and scheduled deletes; - storage appears in multiple launch paths, including notebooks, training datasets, checkpoints, artifacts, and persistence for app services.

Rules: - workload details should link attached buckets to their storage detail pages; - bucket details should link active and historical workload attachments back to workload details; - inline bucket creation in launch flows must produce the same bucket object that later appears in the Storage workbench; - do not bury persistent storage management under Apps, Workloads, Access, or Account.

0.16 Backend read-model readiness

Decision: - v3 implementation should not wire major pages directly to ad hoc domain queries. - each major shell group needs an explicit read-model/API map before migration from mock data to live data. - Redis-backed read-model caching is part of the v3 backend foundation, but cache entries are never sources of truth.

Required implementation input: - doc/architecture/UI_Read_Model_Cache_Architecture_v1.md - endpoint-by-endpoint read-model map for Workloads, Apps, Storage, Access, Account, and Platform before broad page migration.

Rules: - pages may launch behind feature flags with partial data only if missing read-model fields are visibly non-blocking; - admin/operator surfaces must not require direct SQL table edits or direct DB inspection for normal operation; - cache keys must include tenant/project/user scope where authorization depends on that scope.

1. Why This Document Exists

Current redesign documents already establish: - shared page families; - workflow-oriented admin direction; - IAM separation principles; - user and operator intent audits.

What is still missing is one explicit map for the whole product: - public vs authenticated surfaces; - user vs tenant/project admin vs platform admin vs ops; - admin vs ops vs telemetry boundaries; - infra-ops vs SRE-ops intent boundaries; - how dense admin pages should decompose into summary, operations, diagnostics, history, and advanced detail.

This document fills that gap.

2. Core Design Rule

Do not design the product around backend entities or current route prefixes.

Design around: - role - intent - scope - control plane

The same entity may appear in multiple surfaces, but with different framing, actions, and urgency.

Examples: - allocations appear in user, project-admin, platform-admin, and ops flows; - nodes appear in platform-admin, infra-ops, and SRE flows; - billing appears in user, tenant-admin, and platform-admin flows; - IAM spans user, project, tenant, platform, and future app/integration layers.

3. Product Surface Families

The product should be treated as several related surfaces, not one giant navigation tree.

3.1 Public / Developer Portal

Purpose: - onboarding, docs, SDKs, API references, examples, integration guides

Audience: - prospective users - developers - external integration owners

Examples: - docs - Swagger / Redoc - downloads - integration guides

Rules: - do not mix this surface into internal admin/ops left navigation; - may share brand/system components, but not the same workspace IA.

3.2 User Workspace

Purpose: - allocate, connect, operate, and understand resources owned by the current user/project context

Audience: - end users - project members

Examples: - marketplace - allocations - workloads - storage - billing - SSH keys

Rules: - speak in allocation/project terms, not host/guest/internal implementation terms; - show only the operational truth the user needs.

3.3 Tenant / Project Administration

Purpose: - administer access, policy, project structure, and usage at tenant/project scope

Audience: - tenant admins - project admins

Examples: - team and memberships - projects - service accounts - app entitlements - quotas and usage posture at scoped levels

Rules: - not the same as platform admin; - scope and blast radius must remain obvious in both copy and action design.

3.4 Platform Operations / Administration

Purpose: - run the platform safely across fleet, workflows, policy, incidents, and privileged actions

Audience: - platform admins - infra operators - SRE/operators

Examples: - nodes - allocations - onboarding/decommission flows - ops overview - audit - payment operations - platform IAM

Rules: - this surface is workflow- and incident-oriented, not an entity inventory dump; - deep diagnostics are allowed, but only after summary and safe actions.

4. Role Model

These roles may touch overlapping entities, but they do not have the same workflow.

4.1 User

Intent: - get capacity - connect to it - understand runtime health and spend

Scope: - self - current project resources visible to the user

4.2 Tenant Admin

Intent: - govern tenant-scoped users, projects, policy, usage posture

Scope: - tenant

4.3 Project Admin

Intent: - manage one project’s members, identities, entitlements, runtime posture

Scope: - project

4.4 Platform Admin

Intent: - privileged platform control, policy, enrollment, audit, recovery

Scope: - platform / fleet

4.5 Infra Operator

Intent: - node readiness - capacity health - onboarding / decommission - networking / fabric / image correctness

Scope: - nodes, sites, capacity pools, fleet readiness

4.6 SRE / Ops Operator

Intent: - incident detection - failure correlation - degraded workflow recovery - observability-guided remediation

Scope: - services, workflows, fleet signals, critical runtime health

4.7 App Developer / Integration Owner

Intent: - app lifecycle - artifacts - integration contracts - external system behavior and troubleshooting

Scope: - project, app, or integration boundary depending product maturity

Note: - this may partially overlap with SRE today, but should not be forced into the same IA bucket without an explicit decision.

4.8 Persona-To-Landing-Page Table

This table is the minimum shell contract for the mock pass.

Persona / mode Default landing route Top 3 surfaces Mode entry
User /v3-prod/workloads when workloads exist, otherwise /v3-prod/compute Workloads, Compute, Storage top-bar mode switcher or default session mode
Tenant Admin /v3-prod/tenant/overview Access, Billing/usage posture, Storage posture top-bar mode switcher
Project Admin /v3-prod/project/overview Access, Workloads, Storage top-bar mode switcher
Platform Admin /v3-prod/platform/overview Fleet, Governance, Finance top-bar mode switcher
Ops /v3-prod/platform/ops Ops, Telemetry, Fleet top-bar mode switcher

Notes: - tenant-admin and project-admin home surfaces now exist in /v3-prod as first-cutover production surfaces backed by existing read models; - richer dedicated tenant/project read models are still expected before these landings become final governance dashboards.

5. Intent Model

The same role may operate in different intents. Top-level IA should support these rather than hiding them inside entity tables.

Primary intents: - provision - manage - monitor - recover - govern - integrate - investigate

Design implication: - pages must be built around the question the actor is trying to answer, not just around the record being displayed.

6. Scope Model

Scope is the simplest way to keep similar verbs from collapsing into one messy UI.

Scopes: - self - project - tenant - node - fleet - platform - public

Examples: - users provision at project/self scope; - project admins manage access at project scope; - tenant admins govern membership and spend at tenant scope; - infra operators manage node readiness at node/fleet scope; - platform admins govern policy at platform scope.

7. Control Planes

The redesign should explicitly separate these control planes.

7.1 Workloads

Focus: - allocations - app runtimes - workload lifecycle - user-facing and operator-facing runtime views

7.1a Storage

Focus: - buckets - workload mounts and attachments - datasets - checkpoints - artifacts - object lifecycle and retention - encryption and storage access drift

7.2 Fleet / Infrastructure

Focus: - nodes - slot readiness - networking - fabric - images - enrollment and decommission

7.3 Operations

Focus: - incidents - stuck workflows - degraded services - recovery actions - runbooks

7.4 Governance

Focus: - users - roles - projects - tenant/platform policies - audit

7.5 Financial

Focus: - spend - accounting - budgets - refunds - payment operations - usage attribution

7.6 Developer / Integration

Focus: - docs - SDKs - APIs - artifact publishing - integration contracts

8. Admin vs Ops vs Telemetry

This boundary needs to be explicit.

8.1 Admin

Admin is for: - governance - privileged control - durable platform configuration - enrollment/lifecycle authority - audit and finance controls

Admin should answer: - what is the correct platform state? - who can do what? - what policy or lifecycle action is safe?

8.2 Ops

Ops is for: - live intervention - incident handling - degraded workflows - recovery actions

Ops should answer: - what needs action now? - what is broken or risky? - what is the next safe recovery step?

8.3 Fleet Telemetry

Fleet telemetry is for: - aggregate observability - trends - hotspots - saturation - cross-node evidence

Fleet telemetry should answer: - where is pressure or degradation emerging across the fleet? - what signals correlate with current incidents?

Rules: - telemetry is not where primary lifecycle mutations should live; - admin is not where cross-fleet observability should be dumped by default; - ops may link into both admin and telemetry, but should remain action-oriented.

9. Infra-Ops vs SRE-Ops

“Ops” is not one homogeneous audience.

9.1 Infra / Capacity Intent

Questions: - are nodes correctly provisioned? - are slice slots schedulable? - is networking/fabric/storage ready? - is image/bootstrap state consistent?

Primary surfaces: - fleet / nodes - onboarding - slot readiness - image and provisioning views

9.2 SRE / Live Operations Intent

Questions: - what is degraded right now? - which service or workflow is failing? - how do I correlate and recover?

Primary surfaces: - ops overview - attention views - workflow health - telemetry - runbooks

Design implication: - do not assume one single ops landing page can serve both intents equally well.

10. IAM Growth Model

IAM is already multi-layered and should be designed as such.

Layers: - platform IAM - tenant IAM - project IAM - user identity and credentials - service accounts - app entitlements - future external integration identities

Design implications: - IAM should not be treated as one simple admin table; - platform and scoped IAM must remain clearly separated; - future growth should not require a top-level IA rewrite.

11. Billing Growth Model

Billing is bigger than current allocation accounting.

Current product reality: - allocation accounting - balances - payment sessions

Expected growth: - tenant/project spend views - budgets and quota posture - credits/refunds - invoices/financial evidence - usage attribution across products and runtimes - policy-driven financial controls

Design implications: - billing should be treated as its own durable control plane; - do not bury it as a small detail inside one or two admin pages.

12. Dense Page Decomposition Rules

Some current admin pages contain enough material for several pages.

That is a signal to split by function, not add more sections to the same page.

When a page mixes: - summary - operations - diagnostics - history - raw metadata

it should be decomposed into one or more of:

  1. Overview
  2. summary
  3. key state
  4. top risks
  5. primary actions

  6. Operations

  7. live controls
  8. intervention actions
  9. workbench/table

  10. Metrics / Diagnostics

  11. charts
  12. telemetry
  13. linked debug tools such as Netdata

  14. History / Audit

  15. lifecycle timeline
  16. audit trail
  17. financial or provisioning evidence

  18. Advanced / Raw

  19. raw IDs
  20. low-frequency technical detail
  21. copy/debug material

Rules: - list pages should not become detail pages; - detail pages should not default to raw metadata dumps; - advanced/debug information should be available, but not dominant.

13. Navigation Decision Model

The redesign should be validated at the full-shell level, not page by page.

Before broad UI implementation, produce a mock showing: - full left navigation; - top-level groups; - local navigation inside each major surface; - handoff points between admin, ops, telemetry, and developer surfaces.

Questions the shell must answer: - where does a tenant admin start? - where does an infra operator start? - where does an SRE start? - where does a developer go for docs and integration material? - which duplicated current pages collapse into one owner?

14. Proposed Review Checklist

Use this checklist when reviewing the next IA mock or redesign deck.

  1. Are public/developer, user workspace, scoped administration, and platform operations clearly separated?
  2. Are admin, ops, and telemetry distinct in purpose?
  3. Are infra and SRE intents distinguishable?
  4. Are tenant admin and project admin first-class in the model?
  5. Does IAM account for platform/tenant/project/service-account growth?
  6. Does billing account for future financial scope beyond allocation accounting?
  7. Are dense pages explicitly decomposed instead of “cleaned up in place”?
  8. Can the left nav be explained in terms of user goals, not route dumps?
  9. Do shared entities keep different framing where scope and risk differ?
  10. Does the design leave room for app developer / integration-owner surfaces?

15. Immediate Next Step

Use this document with the v3 mock work to produce: - one full-shell IA mock; - one boundary map for admin vs ops vs telemetry; - one decomposition plan for the densest existing admin pages.

That should happen before broad admin page implementation resumes.

16. Additional Current Inputs To Carry Into Redesign

These are active product and operator pain points that should inform the next IA/mock pass.

16.1 Brokered identity continuity

Observed problem: - repeated Hugging Face logins can create what appears to be a new user/login footprint each time when testing with fresh sessions/incognito.

Design implication: - identity UX must distinguish: - first-time broker signup, - returning login, - account linking, - duplicate-identity conflict resolution.

This is not only an auth/backend problem. It also affects: - how users understand identity continuity, - whether account linking needs UI, - how admin/IAM surfaces explain brokered identities.

16.2 Audit log surface parity

Observed problem: - user audit logs and admin audit logs do not currently present with the same product/page grammar.

Design implication: - audit/evidence surfaces should share the same v3 family model where possible, even when scope differs. - scope can differ; page language and evidence framing should not drift without reason.

16.3 Inline dependency creation inside launch flows

Observed problem: - launch flows can discover missing prerequisites such as SSH keys. - upcoming launch inputs will likely include storage, network, firewall, and similar dependencies.

Design implication: - wizards should not eject users into unrelated pages to satisfy missing prerequisites. - dependency creation/selection should be inline or in-context wherever safe.

This applies to: - compute launch wizard; - app launch wizard; - future storage/network/firewall steps.

16.4 App launch wizard parity

Observed problem: - app launch flows need the same v3 system treatment as compute launch.

Design implication: - compute and app launch should be treated as one shared wizard system with mode-specific branches, not separate design languages.

16.5 Tenant-admin quota model

Open question: - can tenant admins set quotas for projects and/or users, and how should that authority be scoped?

Design implication: - quota UX cannot remain only a platform-admin configuration surface if scoped delegation is intended. - tenant/project administration boundaries must explicitly include quota governance decisions.

16.6 Billing as a separate redesign epic

Billing requires a separate effort and should not be treated as a small sidebar to current allocation accounting.

Known future billing scope includes: - pricing modes such as on-demand, spot, and reserved duration; - idle policy selection at launch; - invoice generation and payment timing; - support for usage models beyond simple allocation duration; - tenant budgets and alerts; - usage attribution by user, SKU, and app; - data ingress/egress accounting; - standard delinquency handling.

Design implication: - billing remains a first-class control plane and should be reviewed as its own epic with its own UX and domain model pass.

17. External Review Inputs Relevant To UI

This section captures the UI/product-relevant points from doc/governance/External_Architectural_Review_2026-04.md so the redesign can use them directly without mixing in the broader backend action list.

17.1 Reinforced design directions

The external review reinforces these redesign choices:

  • admin should move away from entity and action dumps toward workflow-first operator surfaces;
  • the app platform is one of the strongest and most original parts of the product, so the product IA should expose it more clearly instead of treating it as a sidecar to infrastructure;
  • developer/docs/download/API-reference surfaces deserve explicit treatment as a real product surface, not an afterthought inside internal navigation;
  • audit, evidence, and investigation flows are important enough to be their own deliberate page family;
  • billing is too large to remain a small subpage under current product assumptions and should remain a separate redesign/epic.

17.2 UI-specific tensions to account for

The review also highlights tensions that the redesign should consciously handle:

  • the product is infrastructure-shaped in some places and workload/app-platform shaped in others;
  • app/runtime workflows are more valuable than the current information hierarchy suggests;
  • public/developer-facing extension and integration stories are under-expressed in the current product surface;
  • operational evidence and debug flows matter, but should not dominate default navigation for normal user workflows.

17.3 Explicitly deferred to post-UI backend work

The external review also names important backend and architecture issues, but they should be handled after the UI/IA review rather than folded into the current redesign pass. Examples:

  • cross-cutting middleware enforcement gaps;
  • idempotency and optimistic locking;
  • DLQ recovery;
  • metering producers;
  • terminal compliance/security follow-up;
  • large-file/backend decomposition work such as cmd/api/routes.go.

These should inform later implementation planning, but they are not blockers for completing the IA/mock review package first.