Skip to content

Commit 14f287c

Browse files
authored
Merge pull request #19 from VibeEngineeringAI/feat/frontend-dataset-management
feat(frontend): create, configure and delete datasets
2 parents 2334244 + e05b45e commit 14f287c

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)