Files

161 lines
5.4 KiB
Markdown
Raw Permalink Normal View History

# Design
## 1. Product intent
OME Cockpit is a **mission-control surface**, not a generic admin table. The first viewport must read as one composition: brand + live fleet fabric + actionable chrome.
Primary users: ATC admins who need to **see**, **triage**, **connect**, and **handoff** quickly during demos and live ops.
---
## 2. Visual language
### Brand
- Dell mark (`dell.png`) is a first-class signal in the top bar and modal headers
- Brand click returns to cockpit home (`/`), never external dell.com
### Palette (CSS variables in `styles.css`)
| Token | Role |
|-------|------|
| Dell blue / bright | Primary actions, brand accents |
| Cyan | Live/connected signals, KPI values |
| Amber | Warning / offline emphasis |
| Red | Critical |
| Deep navy panels | Rails, drawers, modals over dark stage |
### Typography
- **IBM Plex Sans** — UI chrome, headings
- **IBM Plex Mono** — IPs, KPIs, telemetry, terminal-adjacent metadata
### Motion
Intentional, not decorative noise:
1. Link pulse packets on connected OME edges
2. Node lerp when layouts/filters change
3. Notification cards slide in for new devices
Pulse can be disabled (**Animate link pulse**) for calm viewing.
---
## 3. Spatial layout
```
┌──────────────────────────────────────────────────────────────┐
│ TOPBAR: brand | KPI strip | Reset / OME / Ops / Chat │
├──────────┬───────────────────────────────┬───────────────────┤
│ LEFT │ STAGE │ RIGHT │
│ RAIL │ ctx-bar │ INSPECTOR │
│ viz │ canvas topology │ │
│ filters │ live feed (dockable) │ │
│ color │ legend / hints │ │
│ gpu │ │ │
│ alerts │ │ │
│ nets… │ │ │
├──────────┴───────────────────────────────┴───────────────────┤
│ TICKER: OME · pulse · watts · connected · alerts · visible │
└──────────────────────────────────────────────────────────────┘
```
Drawers (chat, ops, AI iframe) slide from the right over a scrim. Modals center for connect / SSH / triage / KPI context / tickets.
---
## 4. Interaction model
### Everything clickable
| Surface | Click behavior |
|---------|----------------|
| KPI tiles | Open **Fleet context** popup (list + detail + actions) |
| Topology node | Inspector; double-click → Quick Connect |
| Alerts / feed items | Triage modal / focus device |
| Ticker chips | Focus modes / triage |
| SSH actions | In-app terminal login (no hardcoded `root@`) |
### Filters (include semantics)
- **Servers** / **iDRACs** are include toggles
- **Both off ⇒ empty map** with on-canvas guidance (never silently show all)
- **Reset filters** restores defaults (Servers on, pulse on)
- **Reset view** re-layouts and fits camera to visible nodes
### Inspector inventory
Button **Load full inventory + app landscape** fetches OME inventory types and renders:
- OS, firmware landscape, software/components, management agents, licenses
- Hardware sections (CPU, memory, disks, RAID, NIC, PSU, FRU, location, health, …)
Inventory is **cached per device** and survives soft fleet refreshes (`softRefreshInspector`).
---
## 5. Topology design
### Layouts
| Mode | Idea |
|------|------|
| Orbit | Hub + concentric subnet rings |
| Galaxy | Spiral arms per subnet |
| Clusters | Subnet islands around OME |
| Lanes | Horizontal subnet highways |
| Helix | Depth coil sorted by connectivity/power |
### Color modes
Status · Power (W) · Connection · Model · Subnet
### Camera
Pan (drag), zoom (wheel), fit (`Reset view` / auto-fit on filter & layout changes).
---
## 6. Modals & drawers (design contracts)
### KPI Fleet context
- Summary pills (counts, watts, subnets)
- Search + sort
- Left list / right detail
- Actions: Focus, SSH, Quick Connect, Inventory, Chat, iDRAC Web
- Apply / clear map filter
### SSH terminal
- Login form first (host prefilled from fleet IP, username/password user-owned)
- Then xterm session
- Host must be in current OME fleet allowlist
### Ops desk
- Acting-as identity (Jody / Laurens)
- Ticket list filters, accept/assign/status/notes/delete
### Notifications
New/removed server or iDRAC → toast + stacked notify cards (click focuses device).
---
## 7. Accessibility & ops UX notes
- Modals use `aria-hidden` and Escape-to-close
- Scrim closes the active overlay mode (`kpi`, `ssh`, `connect`, drawers, …)
- Orange accent is reserved for **SSH / iDRAC connection affordances** (`.conn-link`), not general chrome
- Index served with `Cache-Control: no-store` to reduce stale-UI issues after deploys
---
## 8. Non-goals (design)
- Not a full CMDB or change-management suite
- Not a replacement for the OME HTML console (linked out)
- Not multi-region HA UI (single lab instance)