DAS & NAS Storage Solution: Admin Flows

Product Design · Enterprise Storage · B2B

PROMISE Technology — WebPAM 5.0

Redesigning admin workflows, from three legacy GUIs to a modular design system and guided failure recovery.

Role

R&D UI/UX Engineer

Duration

Oct 2025 – present · both lines shipped

Products

Pegasus DAS · VTrak NAS

Stack

Vue 3 · TypeScript · ECharts · Redfish and REST APIs

Team

Product Manager · Frontend Engineer · Backend Engineer · Firmware Engineer

WebPAM 5.0 on a Pegasus5 R12 with one drive offline.

Dashboard cards

Dashboard cards

Each large card has two views, switched with the arrows in its header: the summary first, then the detail. The health card was designed for one abnormal drive and for many.

The capacity card in its two views, and the System Health card with one abnormal drive and with a scrolling list of many

Left: the capacity card’s two views. Right: the health card with one abnormal drive, and with many under a fixed heading. From the DAS design file.

The Problem

The Problem

One web interface for two different storage systems.

The DAS and NAS specs had to solve three problems.

01

Some actions can’t be undone. A small mistake can delete data or misconfigure an array.

02

What’s safe depends on the hardware’s state, so admins need to see that state first.

03

Two product lines share one web interface. Shared parts must behave the same on both, while storage and connection pages follow each product’s hardware.

Line drawing of a Pegasus DAS enclosure

Pegasus DAS

Direct-attached storage for one Mac or PC.

Storage

Drives

↓

Disk array

↓

Logical drive

Connection

Thunderbolt or USB

Shared WebPAM

The same in both interfaces.

Navigation structure

Component library

Action availability

Input validation

Typed confirmation

Loading and result states

Line drawing of a VTrak NAS enclosure

VTrak NAS

Network storage serving many hosts.

Storage

Drives

↓

Pool

↓

Volume

Connection

iSCSI, Fibre Channel or RDMA

Controllers

Can have two controllers

Two products with different storage models and connections, and the parts of WebPAM 5.0 they share. Product drawings from the WebPAM design files.

Who uses it

Who uses it

Three customer segments run these systems.

Studio IT

Media & Entertainment

Deliver on tight deadlines, so a lost or locked file stops the work.

Site reliability

Internet Services

Keep a public service running around the clock, where one slow drive slows every request.

Research IT

Research & HPC

Keep data from long experiments that cannot be run again.

All three need to read the system’s state quickly and must not lose data by mistake. The action rules below are written for those two needs.

Action Rules

Four rules decide what an admin can do, and when, on both product lines.

I wrote them as notes beside each flow in Figma, so engineers read each rule next to the screen it applies to. Below, they follow the order of an action.

  1. 01 · Before the actionAction availabilityHide an action that doesn’t apply. Disable one that’s blocked.
    Design file. A row in Transport Ready keeps its actions, disabled.
    Design fileA row in Transport Ready keeps its actions, disabled.
    Pegasus · DASDisk Array: Add Spare Drive is greyed out in the array’s menu.
    VTrak · NASiSCSI Target Settings: each CHAP mode shows only its own fields.
  2. 02 · Before the actionInput validationOffer only the choices that will work. Check typed values at the field.
    Design system. Text field: default, focus, and an error under the field.
    Design systemText field: default, focus, and an error under the field.
    Pegasus · DASCreate Disk Array: an empty Array Name is marked This field is required; typing a name clears it.
    VTrak · NASMap LUN: Add with no LUN picked marks the field, This field is required.
  3. 03 · At an irreversible actionTyped confirmationIf the data can’t come back, the admin types confirm.
    Design system. Dialog: one click when it can be undone; type confirm when it can’t.
    Design systemDialog: one click when it can be undone; type confirm when it can’t.
    Pegasus · DASDelete Disk Array: Confirm stays disabled until confirm is typed.
    VTrak · NASRemove RDMA: the volume stays, so one click confirms it.
  4. 04 · During and afterLoading and result statesEvery action follows the same loading, success and error handling.
    Design system. Snackbar: loading, success, error.
    Design systemSnackbar: loading, success, error.
    Pegasus · DASSetup wizard: being created, then Successfully Created and the toast.
    VTrak · NASAdd FC LUN fails: the toast gives the reason and the error code.

The component from the PROMISE design system (01 from the WebPAM design file); the products as recorded in WebPAM 5.0, each clip cropped to where the rule happens. Label, Value and Content are the system’s own placeholders.

Failure Recovery

Offline. One drive pulled, recorded live.

Offline. One drive pulled, recorded live.

Recovery depends on what the drive reports.

An offline, degraded or predictive-failure drive doesn’t lead to the same next step. WebPAM first shows the condition, then guides the admin toward the steps for that status.

Pegasus DAS, one drive pulled, recorded in WebPAM 5.0. Waits play at 4×.

The recording shows one failure. On the Abnormal Drive page each drive status gets its own hint, so the guidance and the available actions depend on the reported state.

Drive state

From the Abnormal Drive hints in the DAS spec, one hint per drive status. The NAS spec uses the same steps. Tap a path to bring it forward.

Product Differences

What depends on the hardware is designed per product; everything else follows the same rules.

Both products use the WebPAM 5.0 component library and the same action rules. VTrak NAS has its own storage model, connection setup and controllers, so those pages were designed for it. The menus and recordings below are from the shipped interfaces.

Navigation

DAS · Pegasus
DAS · Pegasus menu
Shipped, from the recording
NAS · VTrak
NAS · VTrak menu
Shipped, from the recording
Choose one to outline it on both menus. Choose it again to clear.

Same task

Pegasus calls it a disk array and a logical drive, VTrak a pool and a volume; the three steps are the same.

Pegasus DAS and VTrak NAS, recorded in WebPAM 5.0. Waits play at 4×.

Shared and changed

Stayed shared

Everything under Shared WebPAM in The Problem

Recovery steps

Event severity levels

Changed with the hardware

Disk arrays and logical drives became pools and volumes

A Connection menu, only on NAS

One mapping page per protocol

Second-controller fields, shown only when the API reports one

Settings that turn read-only when IPv4 is off

NAS-only: Connection

The Connection menu holds iSCSI, Fibre Channel, RDMA and network settings. iSCSI and Fibre Channel share one LUN mapping API, but a teammate and I gave each protocol its own mapping page: iSCSI hosts are identified by IQN, Fibre Channel hosts by WWPN, and an admin sets up one network at a time.

Recorded in the shipped VTrak NAS interface: Connection opens to RDMA, iSCSI, Fibre Channel and Network, and iSCSI and Fibre Channel each have their own pages.

More of WebPAM

A few more views across storage, monitoring and device management, from the DAS design file.

Disk Arrays. Disk arrays, with one row’s action menu open.
Disk ArraysDisk arrays, with one row’s action menu open.

Handoff

Each flow included the details engineering needed to build it.

In the Figma spec, each flow had these four kinds of notes beside its screens, under a status header. I also built part of the front end in Vue and TypeScript.

Action rules

Field behavior

API mapping

Implementation notes

Status header

Draft

→

Ready to dev

Handoff — Flow spec

Abnormal Drive in the DAS spec, status Ready to dev: a hint for each drive status, the Reuse confirmation, and notes for engineers.

153 flows reached Ready to dev across the two specs: 83 for DAS and 70 for NAS. Ready to dev is the handoff status in the spec, not a release.

Choose a note to see where it sits in the spec.

The Abnormal Drive flow in the DAS spec: one hint per drive status, the Reuse confirmation, and notes for engineers
Open the full spec image

Handoff — API to UI

A drive comes back from the backend with more fields than an admin needs. The IA lists the fields the UI shows and the label for each; where the API returns nothing, the UI shows N/A.

One physical drive as the NAS CLI reports it with phydrv -v: 26 fields, the model and serial number masked
Fields from the Physical Drive API and the UI labels they map to

Top: one physical drive as the NAS CLI reports it, 26 fields, with the model and serial number masked. Bottom: the fields the IA maps to labels in the UI.

Handoff — IA

The NAS IA lists every page with its menu level and the phase it ships in. DAS pages that NAS does not use, such as Disk Array and Logical Drive, stay in the list in purple, marked N/A; their NAS counterparts, Pool and Volume, sit under Pool Management.

The Home, Storage and Connection rows of the WebPAM 502 IA: each page with its menu level and phase; DAS-only pages in purple, marked N/A

The Home, Storage and Connection rows of the NAS IA (WebPAM 502), from the original spreadsheet. Click it to enlarge.

Handoff — Spec to shipped

Spec · Dashboard tooltip

Displayed IOPS are affected by the array’s chunk size. When the chunk size is smaller than your application’s IO size, the displayed IOPS will be higher.

→

Shipped

The shipped IO Rate tooltip on the WebPAM dashboard

The wording shipped almost unchanged; IOPS was renamed to IO Rate.

Result & Impact

Both product lines shipped on the same design system and rules.

Each number maps to one of the three problems above.

Pegasus DAS

Q2 2026

VTrak NAS

Shipped

01 · Can’t be undone

15

IRREVERSIBLE FLOWS USE TYPED CONFIRMATION

9 DAS, 6 NAS

02 · State first

748

ANNOTATIONS ACROSS 350 DAS SCREENS

Each state, limit and message written beside the screen it applies to

03 · One design system

153

FLOWS REACHED READY TO DEV

83 DAS, 70 NAS

What I Learned

What I’d take into the next interface.

01

Write each rule beside its screen. Engineers read the rule where they build the screen, and a rule written once covers both specs wherever the behaviour is the same.

02

Start from what the API returns. The loading overlay waits for the API to return, and a field the API leaves empty shows N/A.

03

Decide early what is shared and what follows the hardware. Once the action rules were settled, the NAS work could go into what its hardware needs: storage, Connection and the controllers.

© 2026 Sam Wang