Commit graph

54 commits

Author SHA1 Message Date
Aaron Knudtson
359b58744e
feat: Add Zod-based typing for API responses across frontend and backend (#1892)
## Summary

Define API response Zod schemas in common-utils for alerts, webhooks, team, installation, and me endpoints. Apply Response<T> typing on backend route handlers with explicit Mongoose-to-JSON serialization (ObjectId, Date, Map). Replace all `any` types and `as Promise<T>` casts in frontend TanStack Query hooks with proper generics.

### How to test locally or on Vercel

1. `yarn dev`
2. Interact with app, ensuring nothing is broken

### References

- Linear Issue: HDX-3464
2026-03-13 13:55:26 +00:00
Drew Davis
32f1189a7d
feat: Add RawSqlChartConfig types for SQL-based Table (#1846)
## Summary



This PR is the first step towards raw SQL-driven charts. 
- It introduces updated ChartConfig types, which are now unions of `BuilderChartConfig` (which is unchanged from the current `ChartConfig` types` and `RawSqlChartConfig` types which represent sql-driven charts. 
- It adds _very basic_ support for SQL-driven tables in the Chart Explorer and Dashboard pages. This is currently behind a feature toggle and enabled only in preview environments and for local development.

The changes in most of the files in this PR are either type updates or the addition of type guards to handle the new ChartConfig union type. 

The DBEditTimeChartForm has been updated significantly to (a) add the Raw SQL option to the table chart editor and (b) handle conversion from internal form state (which can now include properties from either branch of the ChartConfig union) to valid SavedChartConfigs (which may only include properties from one branch).

Significant changes are in:
- packages/app/src/components/ChartEditor/types.ts
- packages/app/src/components/ChartEditor/RawSqlChartEditor.tsx
- packages/app/src/components/ChartEditor/utils.ts
- packages/app/src/components/DBEditTimeChartForm.tsx
- packages/app/src/components/DBTableChart.tsx
- packages/app/src/components/SQLEditor.tsx
- packages/app/src/hooks/useOffsetPaginatedQuery.tsx

Future PRs will add templating to the Raw SQL driven charts for date range and granularity injection; support for other chart types driven by SQL; improved placeholder, validation, and error states; and improved support in the external API and import/export.

### Screenshots or video

https://github.com/user-attachments/assets/008579cc-ef3c-496e-9899-88bbb21eaa5e

### How to test locally or on Vercel

The SQL-driven table can be tested in the preview environment or locally. 

### References



- Linear Issue: HDX-3580
- Related PRs:
2026-03-05 20:30:58 +00:00
Alex Fedotyev
680388f60d
feat: add hover X button on column headers to remove columns in search mode (#1817)
Adds an inline remove (X) button that appears on hover for each column header in the search results table. Clicking it removes the column from the SELECT statement without needing to edit the query manually.

Closes #1784

Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-03 15:44:28 +00:00
Karl Power
161cdcc8d0
fix: error trace event pattern should have red color (#1743) 2026-02-17 17:07:17 +01:00
Aaron Knudtson
e11b313807
fix: add react-hooks eslint to catch pitfalls (#1661)
Had a couple of files with large fixes, I tested AutocompleteInput.tsx and SessionSubpanel.tsx quite a bit. Tested most others as well. I didn't act on some due to either a) correct usage or b) they are stable and I don't want to alter it. In both those cases, I added `eslint-disable-next-line` before each relevant line

References HDX-2955
2026-02-04 22:04:01 +00:00
Drew Davis
9f75fe2e8f
fix: Ensure Noisy Patterns message isn't clipped (#1693)
Closes HDX-3333

# Before

The "Removed Noisy Event Patterns" message was either missing or partially clipped, depending on the theme

<img width="1484" height="404" alt="Screenshot 2026-02-03 at 6 13 01 PM" src="https://github.com/user-attachments/assets/d2533a4b-4fe5-4339-8a2b-bdb7d027fcbe" />
<img width="1477" height="498" alt="Screenshot 2026-02-03 at 6 12 37 PM" src="https://github.com/user-attachments/assets/4cb5d675-4440-440a-a398-f49911a66120" />

# After

<img width="1476" height="507" alt="Screenshot 2026-02-03 at 6 09 09 PM" src="https://github.com/user-attachments/assets/490aa195-c9bd-4567-80d5-07753bd132dd" />
<img width="1482" height="563" alt="Screenshot 2026-02-03 at 6 09 52 PM" src="https://github.com/user-attachments/assets/28efb171-b65e-44d1-8ed5-1eb326ea3833" />
<img width="1728" height="499" alt="Screenshot 2026-02-03 at 6 09 41 PM" src="https://github.com/user-attachments/assets/e6302e2c-f01c-4c68-a57f-4c09ac4b2317" />
<img width="1727" height="491" alt="Screenshot 2026-02-03 at 6 09 30 PM" src="https://github.com/user-attachments/assets/deac6de2-0b27-4cbb-aa47-393bb765494d" />
2026-02-04 00:44:12 +00:00
Himanshu Kapoor
22f882d612
fix: Do not trigger table search input on modals/drawers (#1675)
You can use Cmd+F to search through the log search table. We've implemented a custom input that overrides the native input that allows you to search through virtual items. However, if you click on one of the rows, a drawer opens, and we don't want that search input to listen for keyboard events anymore at this point. This PR fixes this behaviour.

https://github.com/user-attachments/assets/cbcaea4d-77a8-4c37-a368-bffc44ba4d59



Fixes HDX-3302
2026-01-29 18:19:27 +00:00
Himanshu Kapoor
9f51920b5d
feat: Add a search input that searches within virtual elements (#1598)
Add a separate search input triggered by Cmd+F that searches through all matches currently on the page, overriding the native browser search that only searches within visible rows.

Fixes HDX-2687

### Video


https://github.com/user-attachments/assets/beaab78f-e96c-4698-86b7-a4ee3540db1b
2026-01-22 18:23:54 +00:00
Warren Lee
db845604a2
fix: bypass aliasWith so that useRowWhere works correctly (#1623)
Revisit the bug fix for https://github.com/hyperdxio/hyperdx/pull/1614.

The alias map should be used in useRowWhere hook

Ref: HDX-3196

Example:
For select
```
Timestamp,ServiceName,SeverityText,Body AS b, concat(b, 'blabla')
```
The generated query from useRowWhere is
```
WITH (Body) AS b
SELECT
    *,
    Timestamp AS "__hdx_timestamp",
    Body AS "__hdx_body",
    TraceId AS "__hdx_trace_id",
    SpanId AS "__hdx_span_id",
    SeverityText AS "__hdx_severity_text",
    ServiceName AS "__hdx_service_name",
    ResourceAttributes AS "__hdx_resource_attributes",
    LogAttributes AS "__hdx_event_attributes"
FROM
    DEFAULT.otel_logs
WHERE
    (
        Timestamp = parseDateTime64BestEffort('2026-01-20T06:11:00.170000000Z', 9)
        AND ServiceName = 'hdx-oss-dev-api'
        AND SeverityText = 'info'
        AND Body = 'Received alert metric [saved_search source]'
        AND concat(b, 'blabla') = 'Received alert metric [saved_search source]blabla'
        AND TimestampTime = parseDateTime64BestEffort('2026-01-20T06:11:00Z', 9)
    )
LIMIT
    1
```
2026-01-21 22:21:40 +00:00
Elizabet Oliveira
1ed1ebf34f
feat(app): unify chart color system with accessible palette (#1627) 2026-01-21 18:19:09 +00:00
Elizabet Oliveira
78423450b6
feat(app): add variant prop to table components for muted backgrounds (#1603) 2026-01-14 17:23:21 +00:00
Brandon Pereira
1a9362e736
Fix bug where loading saved search from another page (#1563)
Fixes a bug where loading a saved search page from another non-search page may result in the default select/order by being used instead of the saved search values.

Attempts to make these types of errors happen less by creating a new `defaultSearchConfig` object which represents the default values to fallback on (currently it was mixing concerns in a few places)

also adds tests for the scenario

Fixes HDX-3149
2026-01-08 15:30:33 +00:00
Brandon Pereira
8241ffea89
Improvements to Line Wrapping functionality (#1492)
- make wrapping lines store to localStorage for persistence
- add Line Wrap to row buttons, to help with discoverability of feature (originally did wrapping per line when clicked, but didn't feel like it was worth the complexity)

<img width="182" height="89" alt="Screenshot 2025-12-16 at 1 15 12 PM" src="https://github.com/user-attachments/assets/c6c7a8c8-e7d1-465f-a19b-08da6d79c0cb" />
<img width="868" height="144" alt="Screenshot 2025-12-16 at 1 15 24 PM" src="https://github.com/user-attachments/assets/4f738f43-1402-4aaa-b0d8-717a7b2b0034" />

Fixes HDX-2702
2025-12-16 20:26:38 +00:00
Brandon Pereira
4ba37e557c
Remove Bootstrap Icons (#1480)
This PR removes bootstrap-icons entirely from the app. It also adds an eslint plugin to detect uses and throw an error, this will help in the immediate short term with PRs in flight and merging downstream.

Fixes HDX-3050
2025-12-15 17:06:40 +00:00
Aaron Knudtson
2f25ce6fa6
fix laggy performance for search page (#1423)
Fixes HDX-2896
2025-12-02 20:08:43 +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
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
Elizabet Oliveira
af6a8d0dac
Refactor: Remove bootstrap, adopt semantic tokens, and improve Mantine UI usage (#1347) 2025-11-14 18:01:54 +00:00
Brandon Pereira
43dfb3aaff
chore to move critical path files (#1314)
moves them into a core folder, this allows us to easily track when core files are modified via path

no changeset because no version bump required

fixes HDX-2589
2025-10-30 15:16:33 +00:00
Brandon Pereira
757196f2e9
close modals when bluring (dates and search hints) (#1294)
When clicking outside the search hints or date modal, the modals close to prevent them appearing ontop of other modals when you click results

<img width="2168" height="1222" alt="Screenshot 2025-10-24 at 11 07 49 AM" src="https://github.com/user-attachments/assets/c930919a-7d91-420d-be46-1db5ca35c2de" />
<img width="1004" height="866" alt="Screenshot 2025-10-24 at 11 07 52 AM" src="https://github.com/user-attachments/assets/8969bc7d-2655-4a1d-8a34-1f301401edf8" />

Fixes HDX-2643
2025-10-27 18:55:39 +00:00
Brandon Pereira
bb3539dd5d
Update Drawers to do a proper focus trap (#1290)
Improves user reported issues that clicking outside the modal would click elements unexpectedly, also improves accessibility (keyboard focus trap & esc to exit)

Fixes HDX-2642
2025-10-27 14:47:55 +00:00
Elizabet Oliveira
eaff49293c
Add copy-to-clipboard buttons in RawLogTable for log line data and URLs (#1227)
Co-authored-by: Mike Shi <mike@hyperdx.io>
2025-10-10 15:50:34 +01:00
Brandon Pereira
b34480411e
Log Results Sorting (#1232) 2025-10-07 09:35:42 -06:00
Drew Davis
35c4222263
fix: Improve parsing of complex table keys (#1226)
Closes HDX-2528

# Summary

This PR fixes errors caused by naive parsing of complex partition and primary keys. With this change, we parse primary and partition keys using node-sql-parser to extract lists of referenced columns, rather than splitting on commas.

## Testing

Beyond the unit tests, I also tested with the following table in ClickHouse

<details>
<summary>Table Schema</summary>

```sql
CREATE TABLE default.otel_logs_complex_pk
(
    `Timestamp` DateTime64(9) CODEC(Delta(8), ZSTD(1)),
    `TimestampTime` DateTime DEFAULT toDateTime(Timestamp),
    `TraceId` String CODEC(ZSTD(1)),
    `SpanId` String CODEC(ZSTD(1)),
    `TraceFlags` UInt8,
    `SeverityText` LowCardinality(String) CODEC(ZSTD(1)),
    `SeverityNumber` UInt8,
    `ServiceName` LowCardinality(String) CODEC(ZSTD(1)),
    `Body` String CODEC(ZSTD(1)),
    `ResourceSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ResourceAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    `ScopeSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeName` String CODEC(ZSTD(1)),
    `ScopeVersion` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    `LogAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.cluster.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.cluster.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.container.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.container.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.deployment.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.deployment.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.namespace.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.namespace.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.node.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.node.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.pod.name` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.pod.name'] CODEC(ZSTD(1)),
    `__hdx_materialized_k8s.pod.uid` LowCardinality(String) MATERIALIZED ResourceAttributes['k8s.pod.uid'] CODEC(ZSTD(1)),
    `__hdx_materialized_deployment.environment.name` LowCardinality(String) MATERIALIZED ResourceAttributes['deployment.environment.name'] CODEC(ZSTD(1)),
    INDEX idx_trace_id TraceId TYPE bloom_filter(0.001) GRANULARITY 1,
    INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_log_attr_key mapKeys(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_log_attr_value mapValues(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_lower_body lower(Body) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 8
)
ENGINE = MergeTree
PARTITION BY toStartOfInterval(Timestamp, toIntervalDay(3))
PRIMARY KEY (toStartOfInterval(Timestamp, toIntervalDay(3)), TimestampTime, dateDiff('day', Timestamp, Timestamp + toIntervalDay(1)))
ORDER BY (toStartOfInterval(Timestamp, toIntervalDay(3)), TimestampTime, dateDiff('day', Timestamp, Timestamp + toIntervalDay(1)))
SETTINGS index_granularity = 8192;
```

</details>

 The search page loads
 The timestamp column is inferred when adding the source
 rowWhere / row selection works and is persisted in the URL
2025-10-01 18:19:51 +00:00
Brandon Pereira
ea5d2921ec
perf: optimize memory usage in denoised-rows query by conditionally including processedRows (#1177)
When the searching row limits is set very high (ex the max of 100k) the app quickly consumes all available memory and crashes.

This adds some improvements to help mitigate the problem: 

1. **QueryKey Issues** - The `queryKey` is generating a ton of extra entries every time the `processedRows` changes (which is every 5s when in live mode). The queryKey and result is cached regardless of if enabled is true or false. The base hashFn strategy is to [stringify the objects](2a00fb6504/packages/query-core/src/utils.ts (L216-L217)) which creates a very large string to be stored in memory. I tried to fix this by providing a custom `queryKeyHashFn` to `useQuery` but it was too slow, and the faster browser based hashing fns return a promise which isn't supported by `useQuery` at this time. The easiest solution I found was to short circuit the hash generation if we are not denoising.
2. **Sync `gcTime`** - We already set `gcTime` in `useOffsetPaginatedQuery` so I added that field here too, this helps keep the memory usage lower while denoising rows (but the memory still is much higher).

**The app still uses very high memory usage, just from the sheer number of rows being captured and processed**, but it doesn't crash anymore. There is definitely further optimizations we could make to reduce this. One solution that comes to mind is storing a hash/unique id of each row server side before sending to the client, then our app can leverage this key instead of a stringified object.

Before (after 1 min):
<img width="645" height="220" alt="Screenshot 2025-09-17 at 4 05 59 PM" src="https://github.com/user-attachments/assets/dab0ba34-4e92-42ce-90a0-fefadd9f0556" />

After (after 5 mins):
<img width="1887" height="940" alt="Screenshot 2025-09-17 at 3 52 23 PM" src="https://github.com/user-attachments/assets/bd969d2a-f0ec-4a5a-9858-409ff4a1eaa1" />

Fixes: HDX-2409
2025-09-23 14:08:41 +00:00
Tom Alexander
83b9c8a4b7
chore: Add playwright tests for app in local-only mode (#1181)
Fixes: HDX-2442
2025-09-20 01:43:08 +00:00
Brandon Pereira
7a0580590d
Reusable DBSqlRowTableWithSideBar Component (#1171)
Across the app, we are inconsistent with when we can open the sidebar and expand functionality. This is because the sidebar and logic was managed by the parent component.

Additionally, the expand logic was set to assume a certain structure that some places in the application could not support (ex clickhouse dashboard doesn't have a 'source'). 

As a result, I have created the `DBSqlRowTableWithSideBar` component which will manage a lot of the common use cases for us. This PR introduces that new component, and updates all references (that could be easily upgraded) to use the new component when applciable.

The result: a lot less duplicate code (see # of lines removed) and the ability to more easily maintain the components down the road.

This PR also fixes several bugs I found as I tested these flows, especially around sidebars opening subpanels.

Fixes: HDX-2341
2025-09-17 19:58:45 +00:00
Elizabet Oliveira
970c0027b8
Improve Discoverability Inline Expansion of Items in Search Table (#1168) 2025-09-17 18:09:43 +01:00
Drew Davis
1d79980e31
fix: Fix ascending order in windowed searches (#1172)
Closes HDX-2407

This PR fixes searches which sort in ascending time order or do not order based on time. With this change, time-based "chunking" of queries (#1125) will only be used when the results are ordered by time. Further, when ordering by time _ascending_, the chunks will load in ascending time order (rather than descending time order).
2025-09-17 12:05:18 +00:00
Tom Alexander
8e813dbd80
chore: add data-test-ids to components (#1167)
Addresses: HDX-2354
2025-09-15 13:49:18 +00:00
Tom Alexander
deff04f67b
feat: Allow for inline expansion of items in search tables (#1145)
Fixes: HDX-2296

When a user clicks the ">" icon, the row is expanded and live tail is paused.
<img width="1882" height="451" alt="image" src="https://github.com/user-attachments/assets/4b4f12e0-df80-49b0-b917-455b213b4f3a" />

The user is able to interact with with the inline view as well
<img width="1823" height="334" alt="image" src="https://github.com/user-attachments/assets/e0c1acfc-7523-470d-b385-343c6e84ad9f" />

The user can click the expand button in the top right to open the sidebar
<img width="258" height="180" alt="image" src="https://github.com/user-attachments/assets/40b40c59-29a8-44fc-a310-6b55121029b4" />

The tab last chosen by the user persists in local storage

Clicking on an item in the table results in the sidebar opening as it does today.

These changes also:
* Disable the chevron in places where the sidebar is not hooked up today
* Disables interactivity of Event Tags if it doesn't have the proper events passed into it as well.
2025-09-09 01:59:01 +00:00
Drew Davis
5e4047a918
feat: add generated SQL modal to the search page (#1138) 2025-09-04 16:42:13 -04:00
Mike Shi
64eb638bbe
feat: Improve search speed by chunking long time range searches into smaller incremental search windows. (#1125)
Resolves HDX-1035
2025-09-03 15:17:00 +00:00
Aaron Knudtson
dc4a32c6f6
feat: add text wrap to tables (#1029)
Closes HDX-1856

Added icon to left of CSV Download button for wrapping text in table

<img width="1414" height="258" alt="image" src="https://github.com/user-attachments/assets/f5028799-1b61-4021-9775-4611c10d800e" />
2025-07-29 14:03:28 +00:00
Warren
4ce81d42b0
fix: handle Nullable + Tuple type column + decouple useRowWhere (#1008)
Ref: HDX-1939
2025-07-23 18:44:02 +00:00
Mike Shi
10abadd30e
feat: Add verbose time range used for search in results table (#1004)
<img width="1040" height="317" alt="image" src="https://github.com/user-attachments/assets/ec91cfd4-8344-434c-85ce-66737e274348" />
<img width="1162" height="340" alt="image" src="https://github.com/user-attachments/assets/d74902ba-9e85-4513-9738-a36337e4af02" />
2025-07-17 17:12:24 +00:00
Aaron Knudtson
f7eb1ef28c
feat: configurable search row limit (#987) 2025-07-10 10:26:26 -05:00
Tom Alexander
a06c8cdb9d
feat: Add download csv functionality to search tables (#939)
Adds a download icon that allows users to download a csv of results. Note: In v1, this was a gear icon that brought up a modal with a few different search options, including adding additional columns. Since that functionality doesn't exist in v2 yet, I thought it was best to just have a direct icon for now.

![image](https://github.com/user-attachments/assets/f6c71d0e-951e-4cc8-a2af-489c03a53598)


Fixes: HDX-1590
2025-06-26 14:31:53 +00:00
Aaron Knudtson
d1f4184536
perf: reduce DBSearchPage and DBChartExplorerPage rerenders from typing in search input (#924) 2025-06-20 10:12:23 -04:00
Aaron Knudtson
1211386d3d
feat: add colors to event patterns based on severitytext (#841)
Ref: HDX-1738
2025-05-23 13:56:48 +00:00
Mike Shi
4b1f9af221
feat: denoise search results (#751)
![image](https://github.com/user-attachments/assets/85966fd0-3109-46a3-ab70-56ba06d1ac30)
2025-05-06 17:47:44 +00:00
Mike Huang
4acb8bcd9d
fix incorrect split for select query (#754)
- add new split function for brackets and quotes selection 
- should only affect SELECT section in search component
- add test

<img width="1236" alt="image" src="https://github.com/user-attachments/assets/569d569c-c52e-4f17-84be-0ec52175df0e" />


Ref: hdx-1587
2025-04-22 02:33:12 +00:00
Mike Shi
e0192e0602
feat: Add basic browser/wasm-based event patterns table (#750)
closes HDX-1609

<img width="2480" alt="image" src="https://github.com/user-attachments/assets/9e668b1c-1fa4-4e69-9306-d25d11e8444b" />

adds pyodide to the project
2025-04-18 16:57:11 +00:00
Warren
e5a210a1bd
feat: support search on multi implicit fields (#696)
Currently,  users (or hyperdx) will still need to create the index (ex: tokenbf)  on multi-fields to speed up query if perf is a concern.
ref: HDX-1522


<img width="715" alt="image" src="https://github.com/user-attachments/assets/d8ddbe3e-eb75-4780-b2cf-03dcf2f309ec" />

<img width="1056" alt="image" src="https://github.com/user-attachments/assets/e2071c55-9958-4772-a156-e1e1b568d67e" />
2025-03-20 22:41:26 +00:00
Aaron Knudtson
f8accdeb0f
Fix search UI and add suggestions to queries that failed (#693)
Fixed the UI for DBSearchPage when one of the queries error. Only one error is displayed instead of two. Error shows the user's inputs and the exception, in hopes that the exception will help the user debug their query.

To further help the user debug their query, I added a new file called "useSqlSuggestion.tsx" that has parsers to search through the form's select, where (but not for Lucene), and orderBy clauses to detect errors and offer suggestions to the user. The user can then click a button that will fix the appropriate input. So far the only suggestion offered would be changing double quotes (invalid for ClickHouse queries) to single quotes. Example: SeverityText:"err" => SeverityText:'err'

Ref: HDX-1489
Ref: HDX-1486
Ref: HDX-1267
2025-03-20 14:43:10 +00:00
Mike Shi
8f4e01035b
add support for aliases in search, add WITH clause to chartconfig (#659)
<img width="1645" alt="image" src="https://github.com/user-attachments/assets/430df67f-c415-4191-b796-ea078b8a1232" />

still not super smooth, but gets us most of the way there
2025-03-13 01:20:52 +00:00
Mike Huang
c0fdc828ea
Add JSON support (#582)
- search page can search/select json type data
- display page can display json type data
- one line search(display log detail) can display json data detail
2025-01-31 01:30:14 +00:00
Warren
a483780ef6
style: move types from renderChartConfig + add exceptions types (#568) 2025-01-24 01:52:54 +00:00
Warren
a70080e533
style: use common utils package (api and app) (#555) 2025-01-21 18:44:14 +00:00
Tom Alexander
1006063d71
fix(results): Prevent live reloading if there's an error in results (#543) 2024-12-30 10:11:11 -05:00