Commit graph

1264 commits

Author SHA1 Message Date
github-actions[bot]
d1288cf67b
Release HyperDX (#1752)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-21 07:08:56 +01:00
Aaron Knudtson
4f1da03273
fix: local mode shouldnt send authorization header from browser challenge (#1771)
Closes HDX-3477
2026-02-20 20:38:37 +00:00
Elizabet Oliveira
e984e20e69
feat(app): theme-based branding in UI copy (#1768)
## Summary
Replace hardcoded "HyperDX" in user-facing UI with the current theme's display name so deployments using the ClickStack theme show "ClickStack" (e.g. "Welcome to ClickStack", "ClickStack Cloud") instead of "HyperDX".

Closes HDX-3463.

## Changes

### Theme
- **ThemeProvider**: Add `useBrandDisplayName()` hook that returns `theme.displayName` ("HyperDX" or "ClickStack") for use in copy.

### Pages & layout
- **Auth**: Login/register page title and brand label use `useBrandDisplayName()`.
- **AuthLoadingBlocker**: "Loading HyperDX" → "Loading {brandName}".
- **JoinTeamPage**: Document title uses brand name.
- **LandingHeader**: "HyperDX Cloud" → "{brandName} Cloud" (desktop and mobile). Active link color scheme updated for theme consistency.
- **Spotlights**: Cloud action label and description use brand name.
- **Page titles**: All `<Head><title>` now suffix with current brand (Dashboard, Search, Client Sessions, Chart Explorer, My Team, Create a Dashboard, Alerts, DBDashboardImportPage).

### Copy and errors
- **OnboardingModal**: Welcome title and demo server success/error messages use brand name.
- **DBSearchPageAlertModal**, **WebhooksSection**, **TeamMembersSection**, **WebhookForm**: "Please contact HyperDX team" → "Please contact {brandName} team".
- **SessionsPage**: Empty state and setup instructions ("HyperDX integration", "HyperDX Otel Collector", "HyperDX Browser Integration") use brand name.
- **TeamPage**: ClickHouse settings tooltip about windowed queries uses brand name.
- **DBChartPage**: AI Assistant alert text ("on the HyperDX server") and Chart Explorer title use brand name.
- **SourceForm**: All help text that referred to "HyperDX" (materialized view tooltip, correlated source labels, metrics "not yet fully supported") use brand name.
- **HDXMultiSeriesTableChart**: CSV export filename "HyperDX_table_results" → "{brandName}_table_results".

## Testing
- With default/HyperDX theme: all existing strings should still read "HyperDX".
- With ClickStack theme (e.g. `NEXT_PUBLIC_THEME=clickstack` or dev theme override): titles, welcome text, errors, and help text should show "ClickStack" where appropriate.

## Notes
- No changes to SDK imports, type names (e.g. `HyperDXEventType`), or theme definition files.
- Brand is deployment-configured via `NEXT_PUBLIC_THEME`; in dev, theme can be switched for verification.
2026-02-20 18:48:23 +00:00
Karl Power
38286f6766
fix: searching json number property error (#1767) 2026-02-20 19:04:23 +01:00
Aditya Pimpalkar
051276fc17
feat: add pie chart as dashboard tile (#1704)
Co-authored-by: Aaron Knudtson <87577305+knudtty@users.noreply.github.com>
2026-02-20 11:00:58 -05:00
Tom Alexander
185d4e4008
fix: Add option to display all events in search histogram bars (#1765)
Fixes: HDX-3456

Before:
<img width="215" height="254" alt="image" src="https://github.com/user-attachments/assets/54605b58-41d1-4851-b0eb-470076ad7f2e" />

After:
<img width="268" height="291" alt="image" src="https://github.com/user-attachments/assets/661a95f7-59a7-4ca5-afe4-9b4d20a9539a" />
2026-02-20 15:10:09 +00:00
Drew Davis
b676f268d9
feat: Add config property to external dashboard APIs. Deprecate series. (#1763) 2026-02-20 08:48:25 -05:00
Tom Alexander
90a733aab8
fix: allow claude PR review for all contributors (#1762)
Known limitation from the official workflow. See https://github.com/anthropics/claude-code-action/pull/614 for inspiration for this change.
2026-02-19 20:52:01 +00:00
Warren Lee
36da6ff4d8
chore: resolve collector CVE-2025-15467 (#1761) 2026-02-19 11:45:50 -08:00
Himanshu Kapoor
18e9690461
fix: update required fields in our spec (#1758)
1. `source` isn't actually required on an alert. It is non-nullable, but has a default value of `saved_search` if omitted.
2. `whereLanguage` is actually a required input.
2026-02-19 18:10:51 +00:00
Tom Alexander
ec54757e1d
feat: Add confirm dialog when closing tile editor w/ changes (#1746)
Fixes: HDX-3201

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-19 18:07:20 +00:00
Himanshu Kapoor
3c1511d6f6
Revert "fix: set min-height on charts to fix flex shrink issues" (#1759)
Reverts hyperdxio/hyperdx#1756
2026-02-19 18:02:48 +00:00
Aaron Knudtson
7d0282c188
fix: require checkout before env load (#1760) 2026-02-19 12:57:00 -05:00
Himanshu Kapoor
6465a67113
Add allowed_bots parameter to Claude review action (#1757)
So that claude code reviews work on PRs authored by Cursor
2026-02-19 16:32:25 +00:00
Himanshu Kapoor
454739a712
fix: set min-height on charts to fix flex shrink issues (#1756)
Fixes [HDX-3123](https://linear.app/clickhouse/issue/HDX-3123/notebook-tile-overflow-bug)
2026-02-19 15:14:23 +00:00
Drew Davis
5988850a64
fix: Prevent sampled events error when HAVING clause is specified (#1755)
Closes HDX-3442

# Summary

This PR fixes an error in the sampled events panel when a HAVING clause is specified. To fix the error, the HAVING clause is removed from the sampled events config, similar to how the GROUP BY is removed.

## Before

<img width="1498" height="1251" alt="Screenshot 2026-02-19 at 7 33 19 AM" src="https://github.com/user-attachments/assets/6f5ca4d3-7954-4e74-86cc-a335663ca299" />

## After

<img width="1496" height="1272" alt="Screenshot 2026-02-19 at 7 33 32 AM" src="https://github.com/user-attachments/assets/f05101a5-e88f-4a6f-966a-e387c79b96d0" />
2026-02-19 14:14:55 +00:00
Elizabet Oliveira
fa2424da75
refactor: update SVG structure and styling for ClickStack and HyperDX favicons (#1750)
- Simplified SVG markup for both favicons by removing redundant elements and improving readability.
- Updated clipPath definitions and ensured consistent styling for light and dark modes.
- Enhanced compatibility with modern SVG standards.
2026-02-19 12:06:46 +00:00
Warren Lee
4c42fdc3a4
fix(otel-collector): improve log level extraction with word boundaries in regex (#1747)
For a log line like 
```
x-amz-id-2: WxwS/N175wqLyRlzCXLpGZGszCEbQA0f63uFgdQN1qfcPr2IAmwE/P7HF2b1NdZLg18pNLF3ecTw5CrItXJid/uLe+fxh3jMBiJ7UlUxidw=
```
The level will be inferred as fatal because it contains `CrIt`, which is incorrect.

To fix this, we need to add a word boundary at the start

Ref: HDX-3439


CLAUDE: made a mistake.
```
 Test expects "ALERTING" to match "alert" keyword → "ALERTING" won't match with word boundary because "alert" is a substring, not at a word boundary. Expected should be "info",9,"ALERTING system engaged" not "fatal",21.
``` 
-> incorrect statement
2026-02-18 22:16:07 +00:00
github-actions[bot]
7679b80f13
Release HyperDX (#1718)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-18 14:06:08 -08:00
Nathan Perriolat
679b65d731
feat: allow disabling otel exporter (#1436) 2026-02-18 10:35:44 -08:00
Elizabet Oliveira
30f4dfdcb7
chore: update ClickStack favicons to be distinct across all CH apps/sites (#1749) 2026-02-18 17:20:49 +00:00
Warren Lee
18c2b37599
fix: Fallback to legacy schema when CH JSON feature gate is on (#1748)
Currently users will need to add an extra flag to enable it `HYPERDX_OTEL_EXPORTER_CREATE_LEGACY_SCHEMA`=true. Ideally the JSON schema should be created if feature gate is enable `OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'`

Ref: HDX-3428
2026-02-18 16:42:44 +00:00
Karl Power
161cdcc8d0
fix: error trace event pattern should have red color (#1743) 2026-02-17 17:07:17 +01:00
Tom Alexander
f8519d5185
fix: allow e2e tests to run from forks (#1741)
Previously it failed because GitHub gives the workflow a read-only GITHUB_TOKEN for forks. Writing a PR comment needs write access. This will skip the comment all together in the PR for forks,  but allow the job to finish its processing
2026-02-17 14:36:09 +00:00
Mike Shi
3171a5174d
feat: add option to filter blank values in column viewer (#1733)
Add Hide blank values toggle in HyperJsonMenu to filter out empty strings and null values from the Column Values tab. The option is persisted to localStorage and is off by default.

<img width="1176" height="478" alt="image" src="https://github.com/user-attachments/assets/2df852de-5fd2-4274-aaf3-c8458c01e7a8" />


Resolves #1732

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-17 08:00:02 +00:00
Himanshu Kapoor
9ab68432af
Minor fixes in the external API (#1744) 2026-02-16 22:41:33 +01:00
Alex Soffronow Pagonidis
fbeaf15202
fix: preserve quantile level in dashboard UI export (#1735)
Reorder RootValueExpressionSchema Zod union branches so the quantile/histogram branch (with required `level` field) is checked before the general branch. Previously, `aggFn: 'quantile'` matched the general branch first, causing `level` to be stripped during schema parsing.

Fixes #1734
2026-02-14 01:47:17 +00:00
Drew Davis
69f0b487fb
design: Make service map drill-down links more obvious (#1738)
# Summary

The buttons within the service map tooltips were hard to recognize as buttons/links. I've added an icon and give them a hover state.

## Before

<img width="277" height="124" alt="Screenshot 2026-02-13 at 2 28 14 PM" src="https://github.com/user-attachments/assets/256b0b7d-b6eb-44e6-8a69-c0bf2b15db17" />

## After

<img width="202" height="197" alt="Screenshot 2026-02-13 at 2 27 26 PM" src="https://github.com/user-attachments/assets/27e26ff9-b644-4d14-8217-cf4e7fd53d84" />
2026-02-13 20:48:22 +00:00
dependabot[bot]
35494dc032
build(deps): bump qs from 6.12.1 to 6.14.2 (#1736)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 20:13:21 +01:00
Rahul
b991e7bd37
fix: improve Docker Scout scores for clickstack images (#1731)
Updates base images and patches vulnerable dependencies:
- Node.js 22.16.0 -> 22.22-alpine
- Go 1.25 -> 1.26-alpine
- Express 4.19.2 -> 4.22.1
- Cookie, send, serve-static, and other npm packages
- Fix ENV format warnings in Dockerfile

Reduces vulnerabilities from 178 to 168 (9C, 52H, 98M, 9L). Tested: all services start correctly, health checks pass.
2026-02-13 18:21:19 +00:00
Tom Alexander
75ff28dd68
chore: Use local clickhouse instance for playwright tests (#1711)
TLDR: This PR changes playwright full-stack tests to run against a local clickhouse instance (with seeded data) instead of relying on the clickhouse demo server, which can be unpredictable at times. This workflow allows us to fully control the data to make tests more predictable.

This PR: 
* Adds local CH instance to the e2e dockerfile
* Adds a schema creation script
* Adds a data seeding script
* Updates playwright config 
* Updates various tests to change hardcoded fields, metrics, or areas relying on play demo data
* Updates github workflow to use the dockerfile instead of separate services
* Runs against a local clickhouse instead of the demo server

Fixes: HDX-3193
2026-02-13 15:43:12 +00:00
Elizabet Oliveira
cfba838ed3
feat: enhance confirmation dialogs with improved UI elements (#1729) 2026-02-13 12:36:46 +00:00
Aaron Knudtson
7e3d630b4b
fix: sidebar resizing (#1730)
Regression from https://github.com/hyperdxio/hyperdx/pull/1717
2026-02-12 19:46:08 +00:00
Himanshu Kapoor
d759d046fd
feat: support filters in dashboards external api (#1724)
Fixes HDX-3387

In the external api, I renamed `filters[...].source` to `sourceId` to match tiles which also need a `sourceId`.
2026-02-12 18:57:43 +00:00
Warren Lee
651bf99bd3
chore: deprecate Nextra and remove related code (#1728)
- Remove unused `nextra` and `nextra-theme-docs` dependencies from packages/app
  - No .mdx content pages existed — nextra was only wired up as configuration with no actual consumers
2026-02-12 18:32:15 +00:00
Aaron Knudtson
ce09b59b1d
feat: add build option for a ClickHouse bundled build (#1717)
References HDX-3265
Closes HDX-3389

Adds a build that we can use in ClickHouse. 

This build enables bundling HyperDX with ClickHouse https://github.com/ClickHouse/ClickHouse/pull/96597
2026-02-12 18:05:32 +00:00
Rahul
ebbfa2410e
fix: improve Docker Scout score for otel-collector image (#1727)
- Upgrade OTel collector-contrib and opampsupervisor from 0.136.0 to 0.145.0 to resolve Go stdlib CVEs from outdated binaries
- Pin Alpine base to 3.21 with fresh digest replacing stale alpine:latest pin
- Add HEALTHCHECK to both dev and prod stages using the health_check extension on port 13133
- Fix Makefile otel-collector build targets to use repo-root context with -f flag, matching the repo-root relative COPY paths

Followup from #1697 #1698
2026-02-11 20:50:22 +00:00
Drew Davis
27f478a699
feat: Add external GET /sources API (#1725)
HDX-3318

# Summary

This PR adds a `GET /sources` endpoint to the external API. This is intended to be a way for users to retrieve the list of available sources, so that they can use a correct source ID when creating or updating dashboards through the external API. Previously, the user had no easy way to view source IDs.

Create/Update/Delete source endpoints may be added in subsequent iterations.

There will be a related PR in control-plane to add this to the OpenAPI.

<img width="2126" height="1345" alt="Screenshot 2026-02-11 at 10 37 54 AM" src="https://github.com/user-attachments/assets/bd5ba25f-75df-495a-a25f-95b3a6a5cae2" />

```
curl --request GET \
  --url http://localhost:8000/api/v2/sources \
  --header 'authorization: Bearer <API Key>'
```
2026-02-11 16:18:01 +00:00
Tom Alexander
a8aa94b0d8
feat: add filters to saved searches (#1712)
Fixes: HDX-3351

Saves search filters with Saved Searches
2026-02-11 14:19:08 +00:00
Drew Davis
c3bc43add1
fix: Avoid using bodyExpression for trace sources (#1722)
Closes HDX-3361

# Summary

This PR prevents various query errors caused by references to `bodyExpression` on trace sources. The `bodyExpression` should not exist on trace sources, and cannot be edited in the source form. Despite that, the `bodyExpression` would be set on trace sources during source inference.

- The `getEventBody` helper function will now correctly use the `spanNameExpression` field instead for trace sources. A few direct references to `bodyExpression` have been updated to `getEventBody` calls.
- Source configuration inference will no longer populate the `bodyExpression` for trace sources, and the default trace source will not be created with a `bodyExpression`.
2026-02-11 13:01:12 +00:00
Himanshu Kapoor
a7e4912341
chore: minor cleanup of some schema definitions (#1723) 2026-02-11 13:57:17 +01:00
Tom Alexander
ba5da8691f
chore: Fix reporting of failures for E2E tests (#1713) 2026-02-10 18:06:49 +00:00
Warren Lee
629fb52edc
feat: introduce HYPERDX_OTEL_EXPORTER_TABLES_TTL (ClickStack OTel collector) (#1720)
- Users can configure table TTLs via `HYPERDX_OTEL_EXPORTER_TABLES_TTL`, which defaults to 720h.
- Add TTL to metric tables

Ref: HDX-3365
2026-02-10 16:00:38 +00:00
Adrian Philipp
5c895ff34a
fix: allow overriding default connections (#1710)
Co-authored-by: Aaron Knudtson <87577305+knudtty@users.noreply.github.com>
Co-authored-by: Warren Lee <5959690+wrn14897@users.noreply.github.com>
2026-02-10 07:56:28 +01:00
Warren Lee
baf18da4c0
feat: add TLS support for OTel collector migration script (#1714)
Moved the inline goose CLI script to its own go script.
For the seed DDLs, we don’t create the version tables, and they should all be idempotent.
2026-02-10 02:40:28 +00:00
github-actions[bot]
a33efbc4b5
Release HyperDX (#1701)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-09 15:14:05 -08:00
Elizabet Oliveira
42820f3925
fix: Fix HyperDX primary button styling and SSR hydration (#1706)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 18:29:03 +00:00
Mike Shi
6241c38892
Metric Attribute Explorer (#1703)
<img width="1369" height="1157" alt="image" src="https://github.com/user-attachments/assets/592640b1-9e24-426d-886b-a3afb51410aa" />

Fixes HDX-2282
2026-02-06 15:34:09 +00:00
Drew Davis
fa2b73cacc
feat: Format byte numbers on ClickHouse page (#1709) 2026-02-06 09:39:05 -05:00
Elizabet Oliveira
79356c4cde
feat: Set Button default variant to primary (#1705) 2026-02-05 12:58:16 +00:00