Skip to content

Commit e05b45e

Browse files
VibeSWEclaude
andcommitted
feat(frontend): create, configure and delete datasets
The Datasets page was read-only, so creating or deleting a dataset or changing its retention still needed the classic UI, which the switch-over plan removes. - Create dataset: name (checked against the server's rules), telemetry type and an optional custom partition. There is no time partition field, because create_update_stream discards it. - A Manage sheet replaces View schema. It shows information and ingestion/storage statistics and the schema, sets or clears retention, configures the hot tier when the server enables it, and deletes the dataset after the name is typed. - A 403 is explained in the section that received it. - The demo client keeps datasets in memory, so the default browser suite covers every action. - A live spec creates, configures and deletes a dataset on a real server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent a746508 commit e05b45e

21 files changed

Lines changed: 2108 additions & 93 deletions

‎frontend/.gitignore‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,7 @@ test-results/
1010
# The repository's data* rule is for backend data, not this source directory.
1111
!src/features/datasets/
1212
!src/features/datasets/**
13+
!src/lib/datasetsContract.ts
14+
!src/lib/datasetsClient.test.ts
15+
!e2e/datasets.spec.ts
16+
!e2e-live/datasets.spec.ts

‎frontend/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ This creates `build.zip` with a top-level `dist/` directory, including `dist/ind
6060
- SQL: dataset explorer, CodeMirror editor, Ctrl/Cmd+Enter execution, time range, query errors, shared sortable/wrappable results, column selection, and JSON/CSV export.
6161
- Metrics: OTLP metrics dataset discovery, PromQL editor and label browser, up to five queries, Range/Instant/Both execution, automatic or explicit step, time range and refresh, line chart with legend, sortable instant and range-summary tables, JSON/CSV export, dataset history, and shareable URLs. PromQL availability follows the server capability.
6262
- Alerts: searchable, sortable lists with tag filters and 25-row pagination; PromQL and SQL threshold creation/editing, query previews without notifications, hold duration, runtime instances and delivery errors, evaluate/enable/mute/duplicate/delete actions, and Slack/Webhook/Alertmanager targets with masked secrets. PromQL creation requires explicit server capability; existing builder rules are read-only.
63-
- Datasets: search, schema inspection, explorer navigation.
63+
- Datasets: search, create logs/metrics/traces with an optional custom partition, manage information and ingestion/storage statistics, inspect schema, explore, set/clear retention, configure/disable hot tier when the server enables it, and delete with typed name confirmation. Time partitions cannot be set at creation. Static schema upload, tags/labels, existing partition editing and index management are not supported.
6464
- Dashboards: server-backed lists and detail routes, search/tags/favourites/sort/pagination, ownership, full-document saves with conflict resolution, SQL and PromQL tiles, six variable types, URL time ranges and selections, classic import/export, and explicit migration of old browser-local dashboards. Demo dashboards use independent in-memory state per client.
6565
- Team: native users and one-time passwords, role and privilege management, default OIDC role configuration, provider group mappings and role provenance, and API key creation/copy/deletion. Search and 25-row pagination apply to every tab; authorization stays with the backend.
6666
- Component gallery at `/components`, plus isolated Storybook stories for UI, PromQL and chart components.
@@ -114,7 +114,7 @@ PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium \
114114
npm run test:live
115115
```
116116

117-
Set `PARSEABLE_LIVE_USERNAME`, `PARSEABLE_LIVE_PASSWORD` and `PARSEABLE_LIVE_DATASET` for a disposable server; defaults are `frontend-smoke`, `local-smoke-password` and `frontend_smoke`. Page paths are at the root, as on a server built with `NEXT_ASSETS_PATH`; set `PARSEABLE_LIVE_BASE=/next` for a server started with `P_UI_ROOT=classic`. API calls always go to the origin root. Omitting `PARSEABLE_LIVE_URL` skips the live tests. Add `PARSEABLE_LIVE_OIDC=true` only with the local fixture provider configured, or `PARSEABLE_LIVE_NO_OIDC=true` with a provider-free server to exercise the real missing-provider route. `npm run check` excludes this suite. The completed default check passed **946 unit tests in 41 files, 224 app browser tests and 46 Storybook browser tests** (2026-10-10), including **51 dashboard browser cases**. The earlier Alerts validation (2026-10-09) also recorded a **60/60** repeated dark axe run and three passing live tests. The Team live tests create uniquely named users, roles and API keys, remove them afterwards and restore the server's previous default OIDC role. Metrics, Alerts and Dashboards live tests ingest unique OTLP datasets and delete them afterwards. See [the live runbook and recorded results](docs/validation-review.md) for setup, exact commands, scope and limitations.
117+
Set `PARSEABLE_LIVE_USERNAME`, `PARSEABLE_LIVE_PASSWORD` and `PARSEABLE_LIVE_DATASET` for a disposable server; defaults are `frontend-smoke`, `local-smoke-password` and `frontend_smoke`. Page paths are at the root, as on a server built with `NEXT_ASSETS_PATH`; set `PARSEABLE_LIVE_BASE=/next` for a server started with `P_UI_ROOT=classic`. API calls always go to the origin root. Omitting `PARSEABLE_LIVE_URL` skips the live tests. Add `PARSEABLE_LIVE_OIDC=true` only with the local fixture provider configured, or `PARSEABLE_LIVE_NO_OIDC=true` with a provider-free server to exercise the real missing-provider route. `npm run check` excludes this suite. The completed default check passed **1263 unit tests in 45 files, 265 app browser tests, 16 production-build browser tests and 47 Storybook browser tests** (2026-10-11). The earlier Alerts validation (2026-10-09) also recorded a **60/60** repeated dark axe run and three passing live tests. The Team live tests create uniquely named users, roles and API keys, remove them afterwards and restore the server's previous default OIDC role. Metrics, Alerts and Dashboards live tests ingest unique OTLP datasets and delete them afterwards. The Datasets live test creates a uniquely named dataset through the UI and deletes it through typed confirmation. See [the live runbook and recorded results](docs/validation-review.md) for setup, exact commands, scope and limitations.
118118

119119
The Alerts live spec (`e2e-live/alerts.spec.ts`) creates a unique OTLP dataset, webhook target and PromQL rule, checks preview values and mutations against the API, and cleans up all three in `afterAll`, including after failures. Run it only against a disposable server. Set `TMPDIR` to a disk-backed directory when `/tmp` is small. The current Alerts checks and counts are recorded in [validation-review.md](docs/validation-review.md).
120120

0 commit comments

Comments
 (0)