Skip to content

Configuration Console

UI ID: UI-CONFIG-001 (umbrella — individual screens get their own IDs as they are designed) Status: Draft — scaffolded alongside ADR-0066. Screens filled in under CVN-N008-EA stories. Introduced by: CVN-N008 / CVN-N008-EA (epic to be opened after Need committee PROCEED) Figma project: TBD — project to be created, structured per ADR-0066 §Alternatives rejected (7 canonical pages)


Purpose

The Configuration Console is the operator's primary write surface for every pipeline parameter (~50-70 CVN_* keys in ftf_config.base_env). It replaces the legacy Streamlit admin tool (see CVN-N008 §2.2). The Console is also the read surface for FTF run history, audit trail, and (in the Advanced increment) the real-time state of paper / live trading workers.

High-level information architecture

At the umbrella level the Console exposes four areas. Individual screens under each area get their own UI-CONFIG-<nnn> ID and their own MkDocs page.

flowchart LR
  Home[/"/"/] --> Config[/"/config/{env}"/]
  Home --> Runs[/"/runs"/]
  Home --> History[/"/history"/]
  Home --> Admin[/"/admin/catalog"/]
  Home --> Dashboard[/"/dashboard"/]
Route Purpose Epic Planned UI ID
/config/{env} Parameter editor (edit active configuration for an environment) EA UI-CONFIG-002
/runs FTF run history + PDF download EA UI-CONFIG-003
/history Audit trail + diff + restore EA UI-CONFIG-004
/admin/catalog Variable catalog administration (add, edit LoV, deprecate) EB UI-CONFIG-005
/dashboard Real-time worker status (per-worker config_version_id, lag, apply events) ED UI-CONFIG-006

Placeholder per-screen page — parameter editor (UI-CONFIG-002)

The template below is the canonical shape every screen page will take once CVN-N008-EA stories open. It is included here as a reference so the first story can fill in the blanks rather than invent the structure.

# Parameter Editor

**UI ID**: UI-CONFIG-002
**Status**: Draft
**Introduced by**: CVN-N008-EA-US2
**Figma frame**: <link>

## Purpose
Operator edits the active configuration of `CVN_*` parameters for a selected environment.

## User flow
See FLOW-CONFIG-001 in user-flows.md.

## Components
- CMP-CONFIG-001 — ConfigPanel (groups parameters by category)
- CMP-CONFIG-002 — ConfigSelect (type-aware input per parameter)
- CMP-CONFIG-003 — ValidationBanner (server errors)
- CMP-CONFIG-005 — DiffViewer (before/after preview on Save)
- CMP-CONFIG-006 — ApprovalDialog (only for critical parameters)

## Implementation
- Next.js route: `/config/{env}` (App Router) — **planned**, not yet on `main`
- Storybook stories: `ConfigPanel.stories.tsx`, `ConfigSelect.stories.tsx`, … — **placeholders** until the first EA story ships
- API contract: `/api/config/{env}` with Zod schemas shared client/server — **planned target**. The existing backend exposes a different surface (`api/routers/strategy.py`, keyed by symbol, Pydantic models); the migration to the environment-keyed Zod-validated contract is a CVN-N008-EA story, not the current state

## Acceptance criteria
- Mobile usable at `sm` viewport
- Client + server Zod validation on every input
- Save action disabled until diff is non-empty
- Critical-parameter Save routes through ApprovalDialog
- Audit trail entry written on every successful Save

Cross-references