Files
ottyl/tickets/034-params-declaration-ui.md
T
2026-09-05 16:17:18 +01:00

42 lines
1.9 KiB
Markdown

# 034 — Params declaration UI
## Summary
`POST /api/params` (ticket 004) already lets a param be declared — name,
`message_match_regex`, `capture_group`, `kind` — and `GET /api/params`
(`fetchParams`, `webapp/src/lib/api.ts:245`) already feeds LogPreview's
"Columns" picker (`webapp/src/components/LogPreview.tsx:63`) so a declared
param can be shown as a log table column. But nothing in the webapp can
*create* one — the only way to declare a param today is a raw `POST
/api/params` call. Add a UI for it, following the same declare-then-list
pattern `Metrics` already uses for `POST /api/metrics`
(`webapp/src/components/Metrics.tsx`).
## Scope
- A "Params" section in the primary UI (alongside Log viewer / Metrics /
Dashboards in `App.tsx`), listing currently-declared params (name, regex,
capture group, kind) via `fetchParams`.
- A declare form: name, `message_match_regex`, `capture_group`, kind
(string/number/timestamp — mirror `MetricPrimitiveKind`), submitting via a
new `declareParam` call to `POST /api/params`.
- Surface `400` validation errors from the backend (bad regex, unknown
capture group) inline on the form, matching how `Metrics`' declare form
reports its own validation errors.
- After a successful declare, refresh the params list so it (and
LogPreview's Columns picker) immediately reflects the new param without a
page reload.
- Contextual "?" help icon on the section, matching [021](021-docs-contextual-help.md)'s pattern.
## Acceptance criteria
- A param can be declared from the UI and immediately appears in LogPreview's
Columns picker without a page reload.
- An invalid regex or unknown capture group shows the backend's error message
on the form instead of failing silently.
- The declared-params list matches `GET /api/params` after a page reload.
## Depends on
- [021 — Docs contextual help](021-docs-contextual-help.md)