Commit graph

1040 commits

Author SHA1 Message Date
Brandon Pereira
f29b33e5ff
add back linting prettier via eslint (#1463) 2025-12-11 12:00:31 -07:00
Brandon Pereira
a96dfaef00
chore: update VSCode configuration and ESLint settings (#1462)
- Allow IDE to determine the best formatter based on settings, not force ESLint formatter (which has issues in v9)
- Added Prettier extension to VSCode extensions list.
- Updated ESLint settings to include working directories for better integration.
- Removed redundant TypeScript formatter settings.
- Excluded `.next` directory from search results in VSCode settings.
- Minor formatting adjustments in ESLint configuration files for consistency.

References: https://github.com/microsoft/vscode-eslint/issues/1826
2025-12-11 17:44:27 +00:00
Brandon Pereira
599bb722ca
eslint security version bump (to suport eslint v9) (#1459)
fixes local IDE not formatting on save.

also makes a log use logger
2025-12-10 23:38:18 +00:00
Tom Alexander
8b153c076c
chore: update e2e test configs to better work with CI (#1458)
* Also adds a helpful test:e2e:ci script to test playwright tests inside of a docker image with a clean build to more closely resemble running in CI
* Upgrades playwright version
2025-12-10 20:13:00 +00:00
Drew Davis
776e392777
fix: Fix queries/minute calculation in Services Dashboard (#1457)
Closes HDX-2973

# Summary

This PR updates the queries on the services dashboard to

1. Fix the queries/min calculation, which was previously just the total number of queries
2. Support materialized views in the enterprise edition by separating aggregations from conversions to rates and millisecond values.

## Queries/Min

Before:

<img width="779" height="100" alt="Screenshot 2025-12-09 at 11 28 00 AM" src="https://github.com/user-attachments/assets/52f2581f-5af4-4528-bdb6-5505e5ed7709" />
<img width="1511" height="842" alt="Screenshot 2025-12-09 at 11 27 17 AM" src="https://github.com/user-attachments/assets/94ea121d-02ce-4460-a1c9-cc6f9e9cd8d3" />


After:

<img width="776" height="129" alt="Screenshot 2025-12-09 at 11 28 27 AM" src="https://github.com/user-attachments/assets/5c23bd73-23ea-4d44-a2e9-e4f01b93dc3c" />
<img width="1511" height="787" alt="Screenshot 2025-12-09 at 11 28 33 AM" src="https://github.com/user-attachments/assets/9c8d1932-f1ac-49bc-b122-7229cd8ad360" />
2025-12-09 17:47:26 +00:00
Drew Davis
b564a369be
fix: Ensure adequate SQL/Schema Preview modal height (#1450)
Closes HDX-2865
Closes HDX-2980
Closes #1443 

# Summary

This PR ensures that the schema preview / SQL query preview modal does not have a restrictive max height.

Previously, the CodeMirror component would _sometimes_ have a max height of 150px applied. It appears that this was coming from the global `cm-editor` and `cm-scroller` classes, which were conditionally updated with max height properties in `SQLInlineEditor.tsx` for multi-line inputs.

To fix this, the SQLInlineEditor multiline support now makes use of separate CSS selectors to only apply the max height to inputs with allowMultiline enabled.

## Demo

Modals are now >150px reliably, and multi-line editors are still capped to 150px max height

https://github.com/user-attachments/assets/e3d69c3d-3657-42ef-ba88-a961f0b23cb4
2025-12-09 14:17:48 +00:00
Brandon Pereira
215b9bf7e0
add prop to disable drilldown if it's not supported on the query (#1454)
<img width="2084" height="1016" alt="Screenshot 2025-12-08 at 10 48 57 AM" src="https://github.com/user-attachments/assets/ed29fdc5-3a94-4ac2-8a1b-fb46bd901a2e" />

Fixes HDX-2967
2025-12-08 22:23:22 +00:00
github-actions[bot]
e46ec835ee
Release HyperDX (#1381)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-08 16:58:57 +01:00
Elizabet Oliveira
630592dbff
Fix font rendering issue (#1448)
Co-authored-by: Brandon Pereira <brandon-pereira@users.noreply.github.com>
2025-12-05 16:50:38 +00:00
Drew Davis
7c391dfb02
fix: Disable useSessionId query when traceId input is undefined (#1451)
Closes #1449
Closes HDX-2992

# Summary

This PR prevents HyperDX from issuing an invalid query (described in #1449) by disabling the query for sessions when a trace ID is not available. This often happened not just for events without a trace ID but also immediately after opening the side panel while a valid traceId was still loading.

Updating the types to reflect the possibility that trace ID is undefined also exposed the fact that we try to show the trace waterfall and row overview panels on the trace panel even when there is no trace id. This has been fixed.

## Before

https://github.com/user-attachments/assets/91994d82-4c1c-4538-bc4b-0ee31480200a

## After

No invalid query is issued:

https://github.com/user-attachments/assets/300580d3-970e-405f-868b-d0aec9b722e7

When there is no trace id, we don't attempt to render the waterfall:
<img width="1342" height="832" alt="Screenshot 2025-12-05 at 10 02 14 AM" src="https://github.com/user-attachments/assets/80b87d02-2a80-49e2-a0ee-4808d712de0b" />
2025-12-05 16:36:26 +00:00
Drew Davis
fce307c8ce
feat: Allow specifying persistent order by in chart table (#1438)
Closes HDX-2845

# Summary

This PR adds support for specifying a persistent Order By in table charts. Previously, the user could sort by clicking a column, but this was not persisted to the saved chart config. Now, we show an input that allows the user to specify an ordering other than the default, and this order is persisted in the saved chart config.

## Demo

https://github.com/user-attachments/assets/960642fd-9749-4e54-9b84-ab82eb5af3d8
2025-12-05 15:21:26 +00:00
Drew Davis
9da2d32fa2
feat: Improve search and services dashboard filters (#1445)
Closes HDX-2977
Closes HDX-2602

# Summary

This PR makes a few changes to improve the filter experience for users with large numbers of facet values.

## On the search page:

1. The limit for facet values upon clicking Load More is now 10k, up from 200. This limit is applied when Load More is explicitly clicked for a single filter key, the default limit on page load remains the same.
2. Because 10k values is too many to display without serious render lag (and 10k values is more than anyone wants to scroll through) we now impose a limit of 50 values displayed with a message encouraging users to search for values if some might be hiding. 
3. When a user searches for a filter value, we now automatically load more, as presumably the value they're searching for is not already being displayed in the list
4. Filter values are sorted alphabetically when searching

### Bug Fix

Previously, when a user selected `Load More` for a filter and then switched to a different source, all values from `Load more` would be displayed as values for the second source. This has been fixed, and the Loaded More values are cleared when switching sources.

### Demo

https://github.com/user-attachments/assets/381a6366-25d9-401c-9310-fede75e9a793

## On the services dashboard

1. ServiceNames are now queried from the selected time range, to avoid poor performance or timeouts on large data volumes
2. ServiceNames are now sorted alphabetically in the dropdown
3. We now show up to 10k service names, to match the search page filter value limit

## Future improvements

Ideally, when a user searches for a filter value, we'd dispatch a new query searching for potentially matching values. This would ensure that users could find values outside of the new 10k value limit.
2025-12-05 15:05:16 +00:00
dependabot[bot]
edfcea6bdb
chore(deps): bump jws from 3.2.2 to 3.2.3 (#1447)
Bumps [jws](https://github.com/brianloveswords/node-jws) from 3.2.2 to 3.2.3.
<details>
<sumry>
<p><em>Sourced from <a/brianloveswords/node-jws/rel.</em><.3</h2>
<h3>Changed</h3>
<ul>
<li>Fix advisoreateSign are
that a non empty secret is provided (via opts.secret, opts.privateKey or opts.key)
when using HMAC algorithms.</li>
<li>Upgrading JWA version to 1.4.2, addressing a compatibility issue for Node &gt;= 25.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/auth0/node-jws/blob/master/CHANGELOG.md">jws's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.3]</h2>
<h3>Changed</h3>
<ul>
<li>Fix advisory GHSA-869p-cjfg-cm3x: createSign and createVerify now require
that a non empty secret is provided (via opts.secret, opts.privateKey or opts.key)
when using HMAC algorithms.</li>
<li>Upgrading JWA version to 1.4.2, adressing a compatibility issue for Node &gt;= 25.</li>
</ul>
<h2>[3.0.0]</h2>
<h3>Changed</h3>
<ul>
<li><strong>BREAKING</strong>: <code>jwt.verify</code> now requires an <code>algorithm</code> parameter, and
<code>jws.createVerify</code> requires an <code>algorithm</code> option. The <code>&quot;alg&quot;</code> field
signature headers is ignored. This mitigates a critical security flaw
in the library which would allow an attacker to generate signatures with
arbitrary contents that would be accepted by <code>jwt.verify</code>. See
<a href="https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/">https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/</a>
for details.</li>
</ul>
<h2><a href="https://github.com/brianloveswords/node-jws/compare/v1.0.1...v2.0.0">2.0.0</a> - 2015-01-30</h2>
<h3>Changed</h3>
<ul>
<li>
<p><strong>BREAKING</strong>: Default payload encoding changed from <code>binary</code> to
<code>utf8</code>. <code>utf8</code> is a is a more sensible default than <code>binary</code> because
many payloads, as far as I can tell, will contain user-facing
strings that could be in any language. (<!-- raw HTML omitted --><a href="https://github.com/brianloveswords/node-jws/commit/6b6de48">6b6de48</a><!-- raw HTML omitted -->)</p>
</li>
<li>
<p>Code reorganization, thanks <a href="https://github.com/fearphage"><code>@​fearphage</code></a>! (<!-- raw HTML omitted --><a href="https://github.com/brianloveswords/node-jws/commit/7880050">7880050</a><!-- raw HTML omitted -->)</p>
</li>
</ul>
<h3>Added</h3>
<ul>
<li>Option in all relevant methods for <code>encoding</code>. For those few users
that might be depending on a <code>binary</code> encoding of the messages, this
is for them. (<!-- raw HTML omitted --><a href="https://github.com/brianloveswords/node-jws/commit/6b6de48">6b6de48</a><!-- raw HTML omitted -->)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4f6e73f24d"><code>4f6e73f</code></a> Merge commit from fork</li>
<li><a href="bd0fea57f3"><code>bd0fea5</code></a> version 3.2.3</li>
<li><a href="7c3b4b4110"><code>7c3b4b4</code></a> Enhance tests for HMAC streaming sign and verify</li>
<li><a href="a9b8ed999d"><code>a9b8ed9</code></a> Improve secretOrKey initialization in VerifyStream</li>
<li><a href="6707fde62c"><code>6707fde</code></a> Improve secret handling in SignStream</li>
<li>See full diff in <a href="https://github.com/brianloveswords/node-jws/compare/v3.2.2...v3.2.3">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~julien.wollscheid">julien.wollscheid</a>, a new releaser for jws since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jws&package-manager=npm_and_yarn&previous-version=3.2.2&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/hyperdxio/hyperdx/network/alerts).

</details>
2025-12-05 14:31:52 +00:00
Tom Alexander
52d2798582
chore: Update to next 16, react 19, add react compiler (#1434)
fixes: HDX-2956

Co-authored-by: Brandon Pereira <7552738+brandon-pereira@users.noreply.github.com>
2025-12-04 23:40:59 +00:00
Drew Davis
4b1557d957
fix: Backport Services Dashboard fixes (#1446)
Closes HDX-2950

# Summary

This PR backports a number of fixes on the Services dashboard from the Enterprise Edition repo:

- The Request Error Rate by Endpoint chart now queries just the top 60 endpoints by max per-bucket error rate to avoid OOMs on datasets with many endpoints.
- The top 20 chart is now sorted according to the selected toggle (by time / by error rate)
- The slowest 10% of queries chart has been updated to correctly indicate that it is showing the slowest 5% of queries
- P95 and Median have been unswapped in the 20 Top Most Time Consuming Endpoints query/tooltip
- The top 20 most time consuming queries dashboard no longer errors out when db.statement is a materialized column

This PR also re-structures some queries to match how they've been structured in the enterprise repo, to avoid drift. See [this PR](https://github.com/DeploySentinel/hyperdx-ee/pull/1024) for more details on those changes.

## Demo

https://github.com/user-attachments/assets/014938b3-33da-411b-b754-7c713f7a8ac8
2025-12-04 20:40:13 +00:00
Brandon Pereira
c60e646ee2
Improve Search Filter Parsing (#1426)
Adds better support for nested Requested Throughput deeplinking, and adds better support for passing string filters which contain JSON


| Before | After | 
|---|---| 
| <img width="568" height="948" alt="Screenshot 2025-12-02 at 10 14 11 AM" src="https://github.com/user-attachments/assets/396785b0-cfa3-4b54-abf4-fe4d6b1aa9b2" /> |  <img width="538" height="1166" alt="Screenshot 2025-12-02 at 10 14 41 AM" src="https://github.com/user-attachments/assets/efe384f9-c615-4ca3-b719-559c9b668874" /> | 
|  <img width="538" height="864" alt="Screenshot 2025-12-02 at 10 13 52 AM" src="https://github.com/user-attachments/assets/375990db-45d7-45cd-a6de-d4eedf09b5bd" /> |  <img width="554" height="784" alt="Screenshot 2025-12-02 at 10 13 45 AM" src="https://github.com/user-attachments/assets/9bd05162-1bc9-425d-9105-8a8626863278" />





Fixes HDX-2932, HDX-2933
2025-12-04 19:18:20 +00:00
Drew Davis
238c36fdd2
feat: Improve display of large sizes and volumes of highlighted attributes (#1442) 2025-12-04 14:12:07 -05:00
Drew Davis
ff422206c5
fix: Fix Services Dashboard Database tab charts (#1435)
Closes HDX-2960

# Summary

This PR makes two fixes to improve the charts on the Database tab of the Services dashboard.

1. Previously, the charts were not rendering a series per query, since ClickHouse returns type `Nullable(String)` for the statement expression (`coalesce(nullif(SpanAttributes['db.query.text'], ''), nullif(SpanAttributes['db.statement'], '')) AS "Statement"`). Our `convertCHDataTypeToJSType()` function failed to map this to a `String` type in JS, which resulted in the column not being inferred as a group column by `inferGroupColumns()` in `formatResponseForTimeChart()`.
2. Once we started rendering a series per query, the page immediately started OOM crashing on any serious volume of data because there are too many distinct groups/queries being returned. To fix this, the query now selects only the queries with the highest values in across any time bucket. The queries do the following:
    1. First, apply filters and group by query and time bucket
    2. Then, `groupArray` the values and time buckets for each query
    3. Select the top 60 queries by max value across all time buckets
    4. `arrayJoin(zip())` to transform the results back into the row-per-group-per-time-bucket format that `formatResponseForTimeChart` expects.

(This is the same approach recently applied to the `Request Error Rate by endpoint` chart on the HTTP tab). 


## Before

<img width="1453" height="791" alt="Screenshot 2025-12-03 at 10 58 31 AM" src="https://github.com/user-attachments/assets/ffa697e4-25bb-4ac6-aed2-703cc3c547bf" />

## After

<img width="1451" height="825" alt="Screenshot 2025-12-03 at 10 57 40 AM" src="https://github.com/user-attachments/assets/42e46d2a-361e-490e-8976-18edeca39e0f" />
2025-12-03 20:04:24 +00:00
Tom Alexander
bd96c98cbf
chore: CLAUDE.md refactor (#1437)
Inspiration: https://www.humanlayer.dev/blog/writing-a-good-claude-md?utm_source=tldrdev
2025-12-03 18:35:46 +00:00
Warren
b7789cedb7
chore: deprecate unused go-parser (#1433) 2025-12-03 13:57:38 +00:00
Alok Kumar Singh
d7a5c43b9d
feat: add ability to change live tail refresh interval (#1432) 2025-12-03 13:42:54 +01:00
dependabot[bot]
664e9026f1
chore(deps): bump validator from 13.15.0 to 13.15.23 (#1429)
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.0 to 13.15.23.
Sourced from <a href="https://github.com/validatorjs/validator.js/releases">validator's releases</a>.</em></p>
<blockquote>
<h2>13.15.23</h2>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2631">#2631</a> <a href="https://github.com/WikiRik"><code>@​WikiRik</code></a></li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/validatorjs/validator.js/compare/13.15.22...13.15.23">https://github.com/validatorjs/validator.js/compare/13.15.22...13.15.23</a></p>
<h2>13.15.22</h2>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2622">#2622</a> <code>isURL</code>: fix regression with hostnames with ports <a href="https://github.com/mbtools"><code>@​mbtools</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2616">#2616</a> <code>isLength</code>: improve handling Unicode variation selectors <a href="https://github.com/koral"><code>@​koral</code></a>--</li>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2621">#2621</a> <a href="https://github.com/mbtools"><code>@​mbtools</code></a></li>
</ul>
</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mbtools"><code>@​mbtools</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2622">validatorjs/validator.js#2622</a></li>
<li><a href="https://github.com/koral"><code>@​koral</code></a>-- made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2616">validatorjs/validator.js#2616</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/validatorjs/validator.js/compare/13.15.20...13.15.22">https://github.com/validatorjs/validator.js/compare/13.15.20...13.15.22</a></p>
<h2>13.15.20</h2>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">#2556</a> <code>isMobilePhone</code>: add <code>ar-QA</code> locale <a href="https://github.com/WardKhaddour"><code>@​WardKhaddour</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">#2576</a> <code>isAlpha</code>/<code>isAlphanuneric</code>: add Indic locales (<code>ta-IN</code>, <code>te-IN</code>, <code>kn-IN</code>, <code>ml-IN</code>, <code>gu-IN</code>, <code>pa-IN</code>, <code>or-IN</code>) <a href="https://github.com/avadootharajesh"><code>@​avadootharajesh</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">#2574</a> <code>isBase64</code>: improve padding regex <a href="https://github.com/KrayzeeKev"><code>@​KrayzeeKev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">#2584</a> <code>isVAT</code>: improve <code>FR</code> locale <a href="https://github.com/iamAmer"><code>@​iamAmer</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">#2608</a> <code>isURL</code>: improve protocol detection. Resolves CVE-2025-56200 <a href="https://github.com/theofidry"><code>@​theofidry</code></a></li>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">#2563</a> <a href="https://github.com/stoneLeaf"><code>@​stoneLeaf</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">#2581</a> <a href="https://github.com/camillobruni"><code>@​camillobruni</code></a></li>
</ul>
</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/stoneLeaf"><code>@​stoneLeaf</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">validatorjs/validator.js#2563</a></li>
<li><a href="https://github.com/WardKhaddour"><code>@​WardKhaddour</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">validatorjs/validator.js#2556</a></li>
<li><a href="https://github.com/avadootharajesh"><code>@​avadootharajesh</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">validatorjs/validator.js#2576</a></li>
<li><a href="https://github.com/KrayzeeKev"><code>@​KrayzeeKev</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">validatorjs/validator.js#2574</a></li>
<li><a href="https://github.com/iamAmer"><code>@​iamAmer</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">validatorjs/validator.js#2584</a></li>
<li><a href="https://github.com/camillobruni"><code>@​camillobruni</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">validatorjs/validator.js#2581</a></li>
<li><a href="https://github.com/theofidry"><code>@​theofidry</code></a> made their first contribution in <a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">validatorjs/validator.js#2608</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20">https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20</a></p>
<h2>13.15.15</h2>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><code>isMobilePhone</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md">validator's changelog</a>.</em></p>
<blockquote>
<h1>13.15.23</h1>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2631">#2631</a> <a href="https://github.com/WikiRik"><code>@​WikiRik</code></a></li>
</ul>
</li>
</ul>
<h1>13.15.22</h1>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2622">#2622</a> <code>isURL</code>: fix regression with hostnames with ports <a href="https://github.com/mbtools"><code>@​mbtools</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2616">#2616</a> <code>isLength</code>: improve handling Unicode variation selectors <a href="https://github.com/koral"><code>@​koral</code></a>--</li>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2621">#2621</a> <a href="https://github.com/mbtools"><code>@​mbtools</code></a></li>
</ul>
</li>
</ul>
<h1>13.15.20</h1>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2556">#2556</a> <code>isMobilePhone</code>: add <code>ar-QA</code> locale <a href="https://github.com/WardKhaddour"><code>@​WardKhaddour</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2576">#2576</a> <code>isAlpha</code>/<code>isAlphanuneric</code>: add Indic locales (<code>ta-IN</code>, <code>te-IN</code>, <code>kn-IN</code>, <code>ml-IN</code>, <code>gu-IN</code>, <code>pa-IN</code>, <code>or-IN</code>) <a href="https://github.com/avadootharajesh"><code>@​avadootharajesh</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2574">#2574</a> <code>isBase64</code>: improve padding regex <a href="https://github.com/KrayzeeKev"><code>@​KrayzeeKev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2584">#2584</a> <code>isVAT</code>: improve <code>FR</code> locale <a href="https://github.com/iamAmer"><code>@​iamAmer</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2608">#2608</a> <code>isURL</code>: improve protocol detection. Resolves CVE-2025-56200 <a href="https://github.com/theofidry"><code>@​theofidry</code></a></li>
<li><strong>Doc fixes and others:</strong>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2563">#2563</a> <a href="https://github.com/stoneLeaf"><code>@​stoneLeaf</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2581">#2581</a> <a href="https://github.com/camillobruni"><code>@​camillobruni</code></a></li>
</ul>
</li>
</ul>
<h1>13.15.15</h1>
<h3>Fixes, New Locales and Enhancements</h3>
<ul>
<li><code>isMobilePhone</code>
<ul>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2514">#2514</a> improve <code>el-CY</code> locale <a href="https://github.com/rezk2ll"><code>@​rezk2ll</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2512">#2512</a> improve <code>pt-AO</code> locale <a href="https://github.com/renaldodev"><code>@​renaldodev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2502">#2502</a> improve <code>ar-OM</code> locale <a href="https://github.com/tomcastro"><code>@​tomcastro</code></a></li>
</ul>
</li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2089">#2089</a> <code>isIP</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@​pixelbucket-dev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2526">#2526</a> <code>isPassportNumber</code>: improve <code>CA</code> locale <a href="https://github.com/evanbechtol"><code>@​evanbechtol</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2491">#2491</a> <code>isBase64</code>: improve validation based on RFC4648 <a href="https://github.com/aseyfpour"><code>@​aseyfpour</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2479">#2479</a> <code>isPostalCode</code>: improve <code>FR</code> locale <a href="https://github.com/Rajput-Balram"><code>@​Rajput-Balram</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2088">#2088</a> <code>isBefore</code>: allow usage of option object <a href="https://github.com/pixelbucket-dev"><code>@​pixelbucket-dev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2346">#2346</a> <code>isRgbColor</code>: allow second digit in rgba alpha value <a href="https://github.com/controlol"><code>@​controlol</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2453">#2453</a> <code>isIP</code>: improve IPv6 regex <a href="https://github.com/ShreySinha02"><code>@​ShreySinha02</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2052">#2052</a> <code>isPostalCode</code>: add <code>PK</code> locale <a href="https://github.com/mateeni-dev"><code>@​mateeni-dev</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2529">#2529</a> <code>isPostalCode</code>: improve <code>TW</code> locale <a href="https://github.com/Crocsx"><code>@​Crocsx</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2550">#2550</a> <code>isPassportNumber</code>: improve <code>US</code> locale <a href="https://github.com/yitzchak-schechter"><code>@​yitzchak-schechter</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2553">#2553</a> <code>isUUID</code>: add <code>loose</code> option <a href="https://github.com/bc-m"><code>@​bc-m</code></a></li>
<li><a href="https://redirect.github.com/validatorjs/validator.js/pull/2551">#2551</a> <code>isPostalCode</code>: add <code>BD</code> locale <a href="https://github.com/tanvirrb"><code>@​tanvirrb</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9113304819"><code>9113304</code></a> fix(build): move to trusted publishing (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2631">#2631</a>)</li>
<li><a href="f2b5c17dbe"><code>f2b5c17</code></a> maintenance: 2511 release (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2627">#2627</a>)</li>
<li><a href="d457ecaf55"><code>d457eca</code></a> fix(isLength): correctly handle Unicode variation selectors (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2616">#2616</a>)</li>
<li><a href="f2e3633f22"><code>f2e3633</code></a> docs: add install instructions to contibution guide (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2621">#2621</a>)</li>
<li><a href="cf401458b8"><code>cf40145</code></a> fix: URL validation for hostnames with ports (no protocol) (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2622">#2622</a>)</li>
<li><a href="4af61243ba"><code>4af6124</code></a> maintenance: 2510 release (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2585">#2585</a>)</li>
<li><a href="30d4fe02c1"><code>30d4fe0</code></a> 13.15.20</li>
<li><a href="cbef5088f0"><code>cbef508</code></a> fix(isURL): improve protocol detection. Resolves CVE-2025-56200 (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2608">#2608</a>)</li>
<li><a href="6f436be369"><code>6f436be</code></a> Fix typo in validators.test.js (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2581">#2581</a>)</li>
<li><a href="3c857088d5"><code>3c85708</code></a> Fix: correct French VAT (FR) validation regex and add tests (<a href="https://redirect.github.com/validatorjs/validator.js/issues/2584">#2584</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/validatorjs/validator.js/compare/13.15.0...13.15.23">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a> Actions), a new releaser for validator since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=validator&package-manager=npm_and_yarn&previous-version=13.15.0&new-version=13.15.23)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/hyperdxio/hyperdx/network/alerts).

</details>
2025-12-03 10:22:23 +00:00
Brandon Pereira
3f94105891
Ensure correct query timeout value is used. (#1417)
For example, it defaults to 60 seconds, but a timeout gets created for 60 milliseconds.

## Before

<img width="2850" height="1264" alt="Screenshot 2025-11-28 at 2 11 33 PM" src="https://github.com/user-attachments/assets/8eff105b-39b0-459b-bdf3-a149645e3c57" />

## After

<img width="1848" height="1086" alt="Screenshot 2025-11-28 at 2 19 20 PM" src="https://github.com/user-attachments/assets/406f53ed-cda0-4ccc-9442-249d6a507a5a" />

Original PR:
https://github.com/hyperdxio/hyperdx/pull/1072

Bug Introduced here:
https://github.com/hyperdxio/hyperdx/pull/1132

Closes https://github.com/hyperdxio/hyperdx/issues/1416
Fixes HDX-2931
2025-12-02 20:12:34 +00:00
Aaron Knudtson
2f25ce6fa6
fix laggy performance for search page (#1423)
Fixes HDX-2896
2025-12-02 20:08:43 +00:00
Drew Davis
ea25cc5d43
fix: Support formatting queries with % operator (#1427)
Fixes HDX-2954

# Summary

This PR fixes a limitation of the sql formatter which caused errors in queries that include the `%` (mod) operator

<img width="212" height="145" alt="Screenshot 2025-12-02 at 1 34 11 PM" src="https://github.com/user-attachments/assets/505211a5-fa05-4d76-84f0-d76a92e852cf" />
2025-12-02 20:04:31 +00:00
Brandon Pereira
d9baa43d38
very small PR which moves the TeamMemberSection to its own file (#1428)
This is  for upcoming work (and to decouple the TeamPage). No changeset added because no features or changes introduced.
2025-12-02 19:59:45 +00:00
Aaron Knudtson
815e6424a0
chore: add lint rules to treat missing hook dependencies as errors (#1420)
Tested on each of the spots that had hooks that were changed, seems good
2025-12-01 19:12:46 -05:00
Drew Davis
991bd7e615
fix: Round previous period offset to the second (#1421)
Closes HDX-2939

# Summary

This PR fixes a bug that caused the previous period to sometimes round to the incorrect second (see `1:34:59` instead of the desired `1:35:00`).

<img width="329" height="107" alt="Screenshot 2025-12-01 at 9 43 47 AM" src="https://github.com/user-attachments/assets/e967adca-6a91-48c2-be10-dd54ac15846a" />

This was due to the `getPreviousPeriodOffset` function returning an offset at the millisecond level, which was later not rounded to the second in `getPreviousDateRange`. We now round the offset to the nearest second, to match our time picker's granularity.
2025-12-01 15:18:44 +00:00
Jarrad
cac4d3ddca
add aws4 to api to allow mongo aws auth (#1345) 2025-11-29 04:30:28 +01:00
Brandon Pereira
337be9a2d1
Deeplink to Search From Charts and Tables (#1410)
This PR adds the ability to click on tables or graphs across the app, and be able to deep link into the search page to view the correlated search events. 

https://github.com/user-attachments/assets/e5c7c2f2-9b59-42de-bb73-2fa4cb5d09a2


Things to try:

1. **Attributable Functions** (min, max, average, p95, etc) can all reliably give us a y value back to enable filtering directly to the y-values value
2. **Non-attributable Functions** (count, sum, etc) can’t rely on the y value since it depends on the group by logic. As such, these will simply allow you to search by the service without passing the y value for deeper analysis.
3. **Multiple Group Bys** (ex `ServiceName, SpanName`)
4. **Where Clause** (SQL or Lucene)
5. Do a **general test** across the app to ensure everywhere that uses charting behaves the same or better than before.

Some things that don’t work:

1. **Aliases in the group by** - we are hitting limitations with `node-sql-parser` that causes the aliasMap to not generate correctly when using aggregate functions in most cases. We may need to either fix these issues or find an alternative solution.
2. **Expressions in Group By** - If you have expressions in the group by, the filtering will not work based on the current implementation, it does not factor in the result of the expression in the filter value.
3. **Filters are not reflected in the UI on Search** - When you deeplink, the filters in the sidebar do not reflect what is actually being queried. This is because the filter UI logic uses `IN` but the deeplinking uses `=` to achieve the best level of precision (and avoid false positives). As such, this is something that could be improved in the future.

Fixes HDX-2844, HDX-2922
2025-11-28 21:25:22 +00:00
Drew Davis
586bcce7f1
feat: Add previous period comparisons to line chart (#1414)
Closes HDX-2777

# Summary

This PR adds a toggle that enables showing "previous period" data on line charts, overlayed with the current period data.

1. The "previous period" is a date range of the same length as the selected "current" date range, immediately prior to the current date range.
2. This feature is only enabled for line charts, bar charts are not enabled when this option is toggled on.

**This PR is organized into a number of commits which may be easier to review one at a time.**

## Followup work

- Improve layout of the DBEditTimeChartForm, pending design review

## Demo

https://github.com/user-attachments/assets/76b220da-810e-4280-8fb3-fa20a9919685
2025-11-26 21:49:14 +00:00
Tom Alexander
087ff4008b
feat: Grouped filters for map/json types (#1385)
Fixes: HDX-2841

Also moves the filter search into the expand/collapse to avoid visual clutter (per recommendation from Elizabet). I've enhanced it to show if there are more than 5 items only.
<img width="296" height="270" alt="image" src="https://github.com/user-attachments/assets/3348c508-b8a3-442f-b0b7-f5621d1fea26" />


Before:
<img width="485" height="692" alt="image" src="https://github.com/user-attachments/assets/22dcfe50-9b5a-4236-bb4a-6e9f1ae92bea" />

After:
<img width="281" height="451" alt="image" src="https://github.com/user-attachments/assets/a4d4b633-2944-4e14-b36f-9135e01e596d" />
2025-11-26 19:04:33 +00:00
Tom Alexander
3b2a8633dd
fix: sort on the client side in KubernetedDashboardPage (#1350)
Also fixes hardcoded ResourceAttributes

Fixes: HDX-2790, HDX-2792
2025-11-26 18:31:56 +00:00
Aaron Knudtson
211460273d
chore: remove deprecated SpanAttribute.http.scheme reference from serviceDashboard (#1409)
Closes HDX-2886
2025-11-26 18:27:54 +00:00
Warren
540309dcf9
chore: pull otel collector from the clickstack repo (#1412)
Ref: HDX-2918
2025-11-26 15:18:29 +00:00
Brandon Pereira
b7ae264254
instruct claude to not use bootstrap anymore (#1406)
We removed bootstrap, but claude still references it
2025-11-26 15:03:47 +00:00
dependabot[bot]
e8bed5cbcc
chore(deps): bump js-yaml from 3.14.1 to 3.14.2 (#1374)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
log</summary>
<p><em>Sourced from <a href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's changelog</a>.</em></p>
<blockquote>
<h2>[3.14.2] - 2025-11-15</h2>
<h3>Security</h3>
<ul>
<li>Backported v4.1.1 fix to v3</li>
</ul>
<h2>[4.1.1] - 2025-11-12</h2>
<h3>Security</h3>
<ul>
<li>Fix prototype pollution issue in yaml merge (&lt;&lt;) operator.</li>
</ul>
<h2>[4.1.0] - 2021-04-15</h2>
<h3>Added</h3>
<ul>
<li>Types are now exported as <code>yaml.types.XXX</code>.</li>
<li>Every type now has <code>options</code> property with original arguments kept as they were
(see <code>yaml.types.int.options</code> as an example).</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>Schema.extend()</code> now keeps old type order in case of conflicts
(e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as <code>abcd</code> instead of <code>cbad</code>).</li>
</ul>
<h2>[4.0.0] - 2021-01-03</h2>
<h3>Changed</h3>
<ul>
<li>Check <a href="https://github.com/nodeca/js-yaml/blob/master/migrate_v3_to_v4.md">migration guide</a> to see details for all breaking changes.</li>
<li>Breaking: &quot;unsafe&quot; tags <code>!!js/function</code>, <code>!!js/regexp</code>, <code>!!js/undefined</code> are
moved to <a href="https://github.com/nodeca/js-yaml-js-types">js-yaml-js-types</a> package.</li>
<li>Breaking: removed <code>safe*</code> functions. Use <code>load</code>, <code>loadAll</code>, <code>dump</code>
instead which are all now safe by default.</li>
<li><code>yaml.DEFAULT_SAFE_SCHEMA</code> and <code>yaml.DEFAULT_FULL_SCHEMA</code> are removed, use
<code>yaml.DEFAULT_SCHEMA</code> instead.</li>
<li><code>yaml.Schema.create(schema, tags)</code> is removed, use <code>schema.extend(tags)</code> instead.</li>
<li><code>!!binary</code> now always mapped to <code>Uint8Array</code> on load.</li>
<li>Reduced nesting of <code>/lib</code> folder.</li>
<li>Parse numbers according to YAML 1.2 instead of YAML 1.1 (<code>01234</code> is now decimal,
<code>0o1234</code> is octal, <code>1:23</code> is parsed as string instead of base60).</li>
<li><code>dump()</code> no longer quotes <code>:</code>, <code>[</code>, <code>]</code>, <code>(</code>, <code>)</code> except when necessary, <a href="https://redirect.github.com/nodeca/js-yaml/issues/470">#470</a>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/557">#557</a>.</li>
<li>Line and column in exceptions are now formatted as <code>(X:Y)</code> instead of
<code>at line X, column Y</code> (also present in compact format), <a href="https://redirect.github.com/nodeca/js-yaml/issues/332">#332</a>.</li>
<li>Code snippet created in exceptions now contains multiple lines with line numbers.</li>
<li><code>dump()</code> now serializes <code>undefined</code> as <code>null</code> in collections and removes keys with
<code>undefined</code> in mappings, <a href="https://redirect.github.com/nodeca/js-yaml/issues/571">#571</a>.</li>
<li><code>dump()</code> with <code>skipInvalid=true</code> now serializes invalid items in collections as null.</li>
<li>Custom tags starting with <code>!</code> are now dumped as <code>!tag</code> instead of <code>!&lt;!tag&gt;</code>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/576">#576</a>.</li>
<li>Custom tags starting with <code>tag:yaml.org,2002:</code> are now shorthanded using <code>!!</code>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/258">#258</a>.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>.mjs</code> (es modules) support.</li>
<li>Added <code>quotingType</code> and <code>forceQuotes</code> options for dumper to configure
string literal style, <a href="https://redirect.github.com/nodeca/js-yaml/issues/290">#290</a>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/529">#529</a>.</li>
<li>Added <code>styles: { '!!null': 'empty' }</code> option for dumper
(serializes <code>{ foo: null }</code> as &quot;<code>foo: </code>&quot;), <a href="https://redirect.github.com/nodeca/js-yaml/issues/570">#570</a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9963d366df"><code>9963d36</code></a> 3.14.2 released</li>
<li><a href="10d3c8e70a"><code>10d3c8e</code></a> dist rebuild</li>
<li><a href="5278870a17"><code>5278870</code></a> fix prototype pollution in merge (&lt;&lt;) (<a href="https://redirect.github.com/nodeca/js-yaml/issues/731">#731</a>)</li>
<li>See full diff in <a href="https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=js-yaml&package-manager=npm_and_yarn&previous-version=3.14.1&new-version=3.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/hyperdxio/hyperdx/network/alerts).

</details>
2025-11-25 15:27:00 +00:00
Jarrad
7cf4ba4d70
allow configuring the app's listen address with HYPERDX_APP_LISTEN_HOSTNAME (#1344) 2025-11-25 16:22:07 +01:00
Brandon Pereira
7405d18308
Bump Typescript Version (app) (#1401)
As part of implementing a dependency upgrade (nuqs) we noticed that it requires Typescript 5, but we are on 4.

We should update this dependency so we don't get too outdated, by bumping this we can unblock other upgrades.

The biggest painpoint in this upgrade was the way that Typescript handles ESM in v4->v5 broke ts-jest ESM handling logic. I have mitigated this problem but using a lower version of `flat` which supports CJS, and mocking `ky` package since it's not actually needed for tests.

Fixes HDX-2900
2025-11-24 21:19:42 +00:00
Brandon Pereira
4503d39494
improve markdown rendering after bootstrap resets was removed (#1402)
Noticed styles of markdown looked much worse recently

## Before

special note to large gap at the front and missing code formatting 
<img width="1782" height="1438" alt="Screenshot 2025-11-24 at 10 06 47 AM" src="https://github.com/user-attachments/assets/f5abbb61-1c99-424a-85d2-d1c12b489dbd" />
<img width="1910" height="1612" alt="Screenshot 2025-11-24 at 10 06 51 AM" src="https://github.com/user-attachments/assets/1eff6b65-b198-42c9-bc85-0068c6de7da5" />

## After
<img width="1350" height="1454" alt="Screenshot 2025-11-24 at 10 06 18 AM" src="https://github.com/user-attachments/assets/bba5f396-be1b-43c5-9d6f-bb4d264c11b9" />
<img width="1108" height="1568" alt="Screenshot 2025-11-24 at 10 06 29 AM" src="https://github.com/user-attachments/assets/73059e6e-c4fe-4872-953f-8f34c5ac40c9" />
2025-11-24 20:34:50 +00:00
Tom Alexander
e9033b463c
chore: update swagger server urls (#1405) 2025-11-24 18:10:46 +00:00
Mike Shi
36cf8665cc
fix: Dont clobber spands in waterfall when multiple spans have duplicate span id (#1396)
Resolves HDX-2885
2025-11-24 15:27:21 +00:00
Tom Alexander
e3643ccfc0
chore: Add automatic api doc generation (#1397)
Fixes: HDX-2888
2025-11-21 21:14:02 +00:00
Tom Alexander
c1b45abfca
chore: stabilize flaky playwright tests (#1398)
There are two flaky tests that have been consistently flaky for a week. Making these tests more robust.
2025-11-21 19:58:05 +00:00
Drew Davis
a9f10c5ff9
feat: Add highlighted attributes to overview panel (#1395)
Closes HDX-2881

# Summary

This PR adds the row-level highlighted attributes to the row overview panel, so that they appear for the span that is selected in the trace waterfall and in an expanded table row:

<img width="1071" height="966" alt="Screenshot 2025-11-20 at 2 32 09 PM" src="https://github.com/user-attachments/assets/febb6c12-4c58-4eac-b085-cbad3601b2fe" />

<img width="814" height="275" alt="Screenshot 2025-11-20 at 2 32 16 PM" src="https://github.com/user-attachments/assets/b3c6fbeb-205e-4b6a-9dfd-5ed9457a57df" />

This PR also makes some small updates to the descriptions of the highlighted attributes in the source configuration form.
2025-11-20 21:30:20 +00:00
Brandon Pereira
70fe682bc4
add clickable alert timeline chips (#1394)
https://github.com/user-attachments/assets/02b1b518-e132-4560-9782-78d74326d0be

Fixes HDX-2674
2025-11-20 20:06:16 +00:00
Drew Davis
07392d236c
feat: Add clickpy_link to clickpy trace source attributes (#1392)
Closes HDX-2876

# Summary

This PR adds a highlighted trace attribute to the clickpy demo source which allows demo environment users to navigate to the clickpy dashboard which is associated with a trace.

The link appears:
<img width="1369" height="738" alt="Screenshot 2025-11-20 at 10 53 35 AM" src="https://github.com/user-attachments/assets/f353323a-9619-4ba8-a44a-586a0fafd748" />

The link navigates the user to the appropriate dashboard:
<img width="2307" height="806" alt="Screenshot 2025-11-20 at 10 53 43 AM" src="https://github.com/user-attachments/assets/5c10592d-9a8e-44fa-a2ac-d01230b77745" />
2025-11-20 16:28:03 +00:00
Tom Alexander
5b7d646f79
fix: date/timepicker issue with dates in the future (#1391)
Fixes: HDX-2852

If a user used the time picker and chose today, but with a time in the future, existing code would "infer" that and assume it was for an earlier year. Since the UI time picker doesnt allow users to select a _day_ in the future, we should be smart to parse down the time to match now()
2025-11-20 16:11:56 +00:00
Drew Davis
c8ec7fa9d6
fix: Hide table header when no columns are displayed (#1390)
Closes HDX-2874

# Summary

This PR hides the table header row when there are no displayed columns. This prevents a glitchy behavior where the table header icons would appear vertically aligned rather than in a horizontal row when loading the table data. This occurred because the table header was rendered with an empty, horizontally-skinny column header for the expand button column, and the icons were in that skinny column header.

I'd recommend reviewing with white space changes hidden - this is a very small change.

## Before

https://github.com/user-attachments/assets/fceb489b-d79d-40f8-99ba-d9e4c2c5ee27

## After

https://github.com/user-attachments/assets/3b382e08-43b7-49e4-81c6-45bb2aa00688
2025-11-20 16:00:01 +00:00
Brandon Pereira
e838436d20
improve alert precision to match the threshold value (#1387)
Users reported that the precision was way off to what the threshold value was, this helps ensure the two numbers have the same precision.

Before:
<img width="1280" height="363" alt="image" src="https://github.com/user-attachments/assets/fc1bc72c-a70e-4068-aa06-3a01d6c65b2b" />

After:
<img width="1446" height="618" alt="Screenshot 2025-11-19 at 4 20 38 PM" src="https://github.com/user-attachments/assets/49be78eb-dac9-49f4-b490-a354fb69fb71" />

**Note:** One thing that could be better is if we instead used the Number Format specified on the frontend, this would require us to move the Numbro dependency and logic into common-utils, and we would also probably want to update the alert value UI to also use numbro.. I can take a stab at this if we think it's better. I figured this was a good interim solution.


Fixes HDX-2847
2025-11-20 15:24:26 +00:00