mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 08:09:27 +00:00
bc38057bbd8af08060a67e8737667001792e8c19
487
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d9955aac86 |
test: enhanced unflattened test to not be flaky (#8808)
### **PR Type**
Tests
___
### **Description**
- Stabilize unflattened Playwright tests
- Add structured test logging throughout
- Increase waits for indexing and UI readiness
- Ensure query refresh and result validation
___
### Diagram Walkthrough
```mermaid
flowchart LR
Login["Login and setup"] -- "ingestion + waits" --> Streams["Open Streams"]
Streams -- "configure store original data" --> Schema["Update Schema"]
Schema -- "ingest + index wait" --> Explore["Explore Logs"]
Explore -- "set time range" --> Results["Load Results"]
Results -- "expand row" --> Details["_o2_id in details"]
Explore -- "SQL mode + SELECT * + refresh" --> Results
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>unflattened.spec.js</strong><dd><code>Stabilize
unflattened Playwright tests with logging</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/unflattened.spec.js
<ul><li>Add structured testLogger.info/error messages.<br> <li> Replace
flaky short waits; add longer indexing waits.<br> <li> Add query
refresh, SQL mode selection, and result assertions.<br> <li> Minor
formatting fixes and consistent waits in setup/teardown.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8808/files#diff-35703a04047bd3dc257e8e606360e196f9ead45fc44f3857a6e04023590f1a1e">+171/-137</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9f8d25cb4d |
fix: dashboard listing pages UI changes made sync with other pages (#8796)
### **User description** 1. Table list changes 2. folder list changes 3. submit btn , cancel btn , move btn , export btn , discard btn, apply btn changes ___ ### **PR Type** Enhancement ___ ### **Description** - Align dashboards UI with new design - Replace buttons with themed O2 styles - Standardize toggles sizing and theming - Improve tables, search, and layout ___ ### Diagram Walkthrough ```mermaid flowchart LR AddDash["AddDashboard.vue"] -- "buttons, spacing" --> UI["Unified O2 styles"] AddFolder["AddFolder.vue"] -- "inputs, buttons" --> UI ConfigPanel["ConfigPanel.vue"] -- "toggle sizing/theming" --> UI QueryEditor["DashboardQueryEditor.vue"] -- "function toggle style" --> UI DashboardsView["Dashboards.vue"] -- "search, folder header, table footer" --> UI AddPanel["AddPanel.vue"] -- "action button styles" --> UI Styles["app.scss"] -- "new negative button theme" --> UI ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>7 files</summary><table> <tr> <td><strong>AddDashboard.vue</strong><dd><code>Update form spacing and action buttons styling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-21d49964b1a38dce6b2b2811cade3cff3dcfd0f70cb1aa94b6deb7ea9ac848ce">+10/-8</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Revamp paddings, inputs, and footer buttons</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-3bd1ba28ba29b71469aac901fd8000480c3db6c0f2dbc86ea55221787ae3ffd2">+10/-12</a> </td> </tr> <tr> <td><strong>ConfigPanel.vue</strong><dd><code>Apply large themed toggles across options</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-c3a6e64dff02b58bb7cdc3f0668990b41ff41544b4c5e991bbcd989ad4bba3f8">+25/-0</a> </td> </tr> <tr> <td><strong>DashboardQueryEditor.vue</strong><dd><code>Restyle function editor toggle with theming</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-68bf1b319223d103f1b99e0b681764e4eb76942399397779c81c2cd18f6485ff">+4/-3</a> </td> </tr> <tr> <td><strong>Dashboards.vue</strong><dd><code>Redesign list UI: search, folders, table, footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-8da3187db8ce3d795d0f196ede6b2290221ffa3e27b15dcc2b645e44dd196213">+119/-78</a></td> </tr> <tr> <td><strong>AddPanel.vue</strong><dd><code>Standardize header actions and picker height</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+22/-15</a> </td> </tr> <tr> <td><strong>app.scss</strong><dd><code>Add negative button themed variants</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8796/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+20/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
9329c12a0c |
test: updated merge logic for test dino upload (#8793)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Use Playwright blob reporter on CI
- Merge shard reports via playwright merge-reports
- Streamline GitHub Actions artifacts and steps
- Update Node.js to 22 in merge job
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Playwright tests (CI shards)"] -- "reporter: blob" --> B["blob-report artifacts"]
B -- "download & merge" --> C["playwright merge-reports"]
C -- "outputs" --> D["playwright-results/report.json + html-report"]
D -- "tdpw upload" --> E["TestDino"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.config.js</strong><dd><code>Conditional blob
reporter for CI</code>
</dd></summary>
<hr>
tests/ui-testing/playwright.config.js
<ul><li>CI uses <code>['blob']</code> reporter<br> <li> Local keeps HTML
and JSON reporters<br> <li> Enables cross-shard report merging</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8793/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+6/-4</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Artifact flow: blob
upload, merge, TestDino upload</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Comment out many test matrices<br> <li> Remove per-matrix
JSON/HTML upload steps<br> <li> Upload blob reports; merge with
Playwright<br> <li> New job merges and uploads to TestDino; Node 22</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8793/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+117/-236</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
923348bb43 |
fix: ux changes for logs page (#8790)
### **PR Type** Enhancement, Bug fix, Documentation ___ ### **Description** - Extracted inline styles to scoped SCSS - Improved logs UI/UX and theming - Fixed flicker and pagination UX - Added reusable toolbar and collapse styles ___ ### Diagram Walkthrough ```mermaid flowchart LR SearchBar["SearchBar.vue"] -- "toolbar, toggles, menu UX" --> Styles["New SCSS modules"] IndexList["IndexList.vue"] -- "field list pagination, loading" --> Styles SearchResult["SearchResult.vue"] -- "histogram/table layout refactor" --> Styles Index["Index.vue"] -- "splitter/collapse UX, visualize container" --> Styles TenstackTable["TenstackTable.vue"] -- "table hover/headers theme" --> Styles DetailTable["DetailTable.vue"] -- "wrap toggle, layout" --> Styles History["SearchHistory.vue"] -- "wrap toggle, warning pill" --> Styles Scheduler["SearchSchedulersList.vue"] -- "rounded btn, external styles" --> Styles TransformSel["TransformSelector.vue"] -- "toolbarized toggle, icons" --> Styles FunctionSel["FunctionSelector.vue"] -- "class hooks, styles" --> Styles SyntaxGuide["SyntaxGuide.vue"] -- "dark mode class, ext styles" --> Styles JsonPreview["JsonPreview.vue"] -- "externalized styles" --> Styles App["App.vue"] -- "theme root class" --> AppStyles["app.scss: global scrollbar, collapse btn"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>31 files</summary><table> <tr> <td><strong>SearchBar.vue</strong><dd><code>Toolbar/UI cleanup, toggles and menus restyle</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+272/-585</a></td> </tr> <tr> <td><strong>IndexList.vue</strong><dd><code>Field list pagination UX, loading state, helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+133/-419</a></td> </tr> <tr> <td><strong>SearchResult.vue</strong><dd><code>Histogram/table layout classes, external styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+30/-283</a></td> </tr> <tr> <td><strong>Index.vue</strong><dd><code>Splitter/collapse UX, visualize container cleanup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+99/-57</a> </td> </tr> <tr> <td><strong>DetailTable.vue</strong><dd><code>Wrap toggle restyle and list/table CSS extraction</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+19/-79</a> </td> </tr> <tr> <td><strong>SearchSchedulersList.vue</strong><dd><code>Minor button rounding, moved styles to SCSS</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1">+2/-137</a> </td> </tr> <tr> <td><strong>TenstackTable.vue</strong><dd><code>Table container class and theming adjustments</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+5/-104</a> </td> </tr> <tr> <td><strong>SearchHistory.vue</strong><dd><code>Wrap toggle restyle and externalized styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-9dd167bd5e272b2057f53c16b905047eec00655a3552daad240a964d67a6f56d">+13/-100</a></td> </tr> <tr> <td><strong>TransformSelector.vue</strong><dd><code>Toolbarized transform toggle and SCSS import</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0037d8dd9cfbacc26309b26e98ae953e7ccbd0891ac2fd01c6314ebd7eed9d2c">+25/-47</a> </td> </tr> <tr> <td><strong>JsonPreview.vue</strong><dd><code>Moved component styles to shared SCSS</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+1/-109</a> </td> </tr> <tr> <td><strong>SyntaxGuide.vue</strong><dd><code>Dark-mode class hook and SCSS extraction</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-c6e8bb651fadd2b15b5b97f5b6069a57813fb97cc3d06eef983af4def33e8806">+5/-67</a> </td> </tr> <tr> <td><strong>FunctionSelector.vue</strong><dd><code>Class hooks and SCSS module inclusion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-11d9577516700b94b5f3325e77214d0d886473e690db8c9ea981613c9fb89b68">+5/-3</a> </td> </tr> <tr> <td><strong>VisualizeLogsQuery.vue</strong><dd><code>Externalized layout/splitter styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+1/-50</a> </td> </tr> <tr> <td><strong>DateTime.vue</strong><dd><code>Rounded buttons and hover feedback</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-c06c96ba750be6fc82f517a53ba809efff8aa619aba203b871d4d2aeb7f64f60">+6/-2</a> </td> </tr> <tr> <td><strong>App.vue</strong><dd><code>Theme root class binding for global styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-7322e6842f92edbe4a6e810d63f066ec95e64806d64a02b52e2b9bef2a73db91">+7/-1</a> </td> </tr> <tr> <td><strong>app.scss</strong><dd><code>Global scrollbar, collapse button, toggles polish</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+142/-2</a> </td> </tr> <tr> <td><strong>search-result.scss</strong><dd><code>New SCSS for search result layout and table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-e98f726aae49bdd5f8a426c8023eed612f3f33d52b0d458b7730990b3aafc41e">+235/-0</a> </td> </tr> <tr> <td><strong>detail-table.scss</strong><dd><code>New SCSS for detail table and panels</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-63d5673331a5ee1ab792d07831e4a6dbb0d2d40d2ad628652d57944e47a96338">+55/-0</a> </td> </tr> <tr> <td><strong>logs-page.scss</strong><dd><code>New SCSS for logs page structure and splitter</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-3d8458bb7b934b0529dcb35f85e008a4404510435ee4a636ff86e20cfd2970c9">+1401/-0</a></td> </tr> <tr> <td><strong>search-schedulerlist.scss</strong><dd><code>New SCSS for scheduler list views</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-42bbf309982cfcfd1cca270e80a2bddd35947e59dd91f600f5c85788af1e0802">+136/-0</a> </td> </tr> <tr> <td><strong>index-list.scss</strong><dd><code>New SCSS for field/index list</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0a3be477d7575f8e412bf8092f91901dd1330c8458ebc2b24f96107647cfe200">+139/-0</a> </td> </tr> <tr> <td><strong>search-history.scss</strong><dd><code>New SCSS for search history page</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-01ae0807917e4de78780d9ec549ae2b57e3004e7be72cd77536ac5ae75bda3ed">+97/-0</a> </td> </tr> <tr> <td><strong>transform-selector.scss</strong><dd><code>New SCSS for transform selector controls</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-131c7ba7388ebe94d30b7f42ca12c30b0840a9f8d69622b68e573e829d9fa7d6">+99/-0</a> </td> </tr> <tr> <td><strong>syntax-guide.scss</strong><dd><code>New SCSS for syntax guide dialog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-7173f5473b8fed57af19a3017f9823e68099745dc181f7996f0024fa8099535c">+78/-0</a> </td> </tr> <tr> <td><strong>tenstack-table.scss</strong><dd><code>New SCSS for data table and resizer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-0175daf538e52ff95480cb40fadf8e26564474f15e39c5fe2d628f2d7e72aa78">+99/-0</a> </td> </tr> <tr> <td><strong>function-selector.scss</strong><dd><code>New SCSS for function selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-16e97b00c534fae20daf24545e4e6a37b83f59e22668eddfd2083c9d778a9032">+58/-0</a> </td> </tr> <tr> <td><strong>visualizelogs-query.scss</strong><dd><code>New SCSS for visualize logs layout</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-263f2af1f510ef9047a88f4cf438ffdc7b22cc598a56071900b898899d5bdab3">+50/-0</a> </td> </tr> <tr> <td><strong>json-preview.scss</strong><dd><code>New SCSS for JSON preview and menus</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-27d0a0d1ec327559e1c09ffec34a7fc937db12580f53d61f10897f378af7d6ff">+17/-0</a> </td> </tr> <tr> <td><strong>quasar-overrides.scss</strong><dd><code>Quasar overrides aligned to new tokens</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-563af58e60b7250169ebe9ced59dfe163a801a106d7f20964a8d20000b320af5">+16/-15</a> </td> </tr> <tr> <td><strong>_variables.scss</strong><dd><code>Variables updated for rem units and theming</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-b3e37ee00c17b89ad1177c5592504277aa645b374095c065ea8b3782df5e89a2">+1/-1</a> </td> </tr> <tr> <td><strong>quasar-variables.sass</strong><dd><code>Quasar variables tuned for new UI</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-bb2b39e6af7e949bef75bce0c7021310c42dd0945c30f963e3c8b599598bfdaa">+2/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>ui-guidelines.md</strong><dd><code>UI guidelines documentation added</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8790/files#diff-8c5e2f35601f7d06e3389626dd501fc84e694efd6cf0faab6dfaf92445483dfa">+1056/-0</a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Ashish Kolhe <ashish.j.kolhe@gmail.com> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
456f4286fa | perf: store enrichment table in disk as parquet format (#8686) | ||
|
|
e985244b61 |
test: e2e test dino poc (#8771)
### **PR Type**
Enhancement, Tests, Documentation
___
### **Description**
- Add Playwright JSON reporter for TestDino.
- Upload Alerts results to TestDino in CI.
- Limit matrix to Alerts specs for POC.
- Create result folders in workflow.
___
### Diagram Walkthrough
```mermaid
flowchart LR
PWCFG["Playwright config: JSON + HTML reporters"] -- "emit report.json, html-report" --> RESULTS["playwright-results/"]
GHA["GitHub Actions workflow"] -- "create results dirs" --> RESULTS
GHA -- "run Alerts specs only" --> TESTS["Alerts test run"]
TESTS -- "produce reports" --> RESULTS
GHA -- "tdpw upload" --> TESTDINO["TestDino platform"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Formatting</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>alerts-e2e-flow.spec.js</strong><dd><code>Minor comment
tweak in Alerts E2E spec</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Alerts/alerts-e2e-flow.spec.js
- Minor comment formatting change.
- No functional impact.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-32972e38c1fe0e8bb887f9f254b3130916a36f96ea924f9987493d44efefeab9">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.config.js</strong><dd><code>Add JSON
reporter and configure HTML output</code>
</dd></summary>
<hr>
tests/ui-testing/playwright.config.js
<ul><li>Replace single HTML reporter with array.<br> <li> Configure HTML
output folder path.<br> <li> Add JSON reporter writing to
<code>playwright-results/report.json</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-91cb9615068914b2e4f5d66fcbed50d3e9771ea2d882f8e8048bbe54eab3c414">+4/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: Upload Playwright
results to TestDino, scope to Alerts</code></dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Temporarily narrow matrix to <code>Alerts</code> tests.<br> <li>
Create <code>tests/ui-testing/playwright-results</code> directory.<br>
<li> Add TestDino upload step with token auth.<br> <li> Comment out
other suites and some Alert specs.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8771/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+101/-92</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
c2c0ccdf2e |
feat: Rate, Errors and Duration (RED) metrics on traces list page (#8757)
### **PR Type** Enhancement #8784 ___ ### **Description** - Add RED traces metrics dashboard - Replace scatter chart with metrics widgets - Support view-only mode in panel schemas - Improve traces loading and empty states ___ ### Diagram Walkthrough ```mermaid flowchart LR TracesPage["Traces Index.vue"] -- embeds --> SearchResult["SearchResult.vue"] SearchResult -- uses --> MetricsDashboard["TracesMetricsDashboard.vue"] MetricsDashboard -- loads --> MetricsJSON["metrics.json"] MetricsDashboard -- renders via --> RenderCharts["RenderDashboardCharts.vue"] PanelContainer["PanelContainer.vue"] -- passes --> viewOnlyProp["viewOnly prop"] PanelSchema["PanelSchemaRenderer.vue"] -- respects --> viewOnlyProp ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>PanelContainer.vue</strong><dd><code>Pass view-only flag and tidy tooltips</code> </dd></summary> <hr> web/src/components/dashboards/PanelContainer.vue <ul><li>Pass <code>viewOnly</code> prop to schema renderer<br> <li> Tooltip attribute wrapping for readability<br> <li> Minor i18n quote consistency changes<br> <li> Notification formatting improvements</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+32/-17</a> </td> </tr> <tr> <td> <details> <summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Add view-only support to schema renderer</code> </dd></summary> <hr> web/src/components/dashboards/PanelSchemaRenderer.vue <ul><li>Add <code>viewOnly</code> prop to disable editing<br> <li> Gate annotation button when <code>viewOnly</code><br> <li> Minor formatting of icon tag<br> <li> Route/alert creation string refinements</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+20/-10</a> </td> </tr> <tr> <td> <details> <summary><strong>Index.vue</strong><dd><code>Simplify traces page and delegate states</code> </dd></summary> <hr> web/src/plugins/traces/Index.vue <ul><li>Remove inline loading/empty blocks from page<br> <li> Delegate result states to SearchResult<br> <li> Trigger metrics dashboard load on first page<br> <li> Simplify histogram date setter</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-952e26660e4d6aadd292ea2ef7b314e139a4f516d0b3931e20d42d6394700d07">+10/-46</a> </td> </tr> <tr> <td> <details> <summary><strong>SearchResult.vue</strong><dd><code>Integrate RED metrics and improve UX</code> </dd></summary> <hr> web/src/plugins/traces/SearchResult.vue <ul><li>Replace scatter chart with RED metrics dashboard<br> <li> Add loading and empty states within component<br> <li> Emit time-range on metric zoom selection<br> <li> Adjust layout heights and refs</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-7fc8153d64d38cf0945757bad8ab5e95ceae7e1c7daaeb300edbbfb484314e50">+76/-62</a> </td> </tr> <tr> <td> <details> <summary><strong>TracesMetricsDashboard.vue</strong><dd><code>New traces metrics dashboard component</code> </dd></summary> <hr> web/src/plugins/traces/metrics/TracesMetricsDashboard.vue <ul><li>New dashboard component rendering metrics<br> <li> Accepts stream, timeRange, filter, show<br> <li> Loads and customizes schema, handles zoom<br> <li> Exposes refresh/load methods, auto-refresh hooks</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-7b6f29a2737d9501b18dbd8622eba4965e4bc2b92115627ae7d2e70cc3382087">+217/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>metrics.json</strong><dd><code>Add traces metrics schema (Rate/Errors/Duration)</code> </dd></summary> <hr> web/src/plugins/traces/metrics/metrics.json <ul><li>Add predefined dashboard with three panels<br> <li> Rate, Errors, Duration queries using histogram<br> <li> Uses <code>[WHERE_CLAUSE]</code> placeholder for filters<br> <li> Layout and visualization configs included</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8757/files#diff-8bf43bcbba5150a185625f458adcb6756145e7bfcbbf632d87a9d487a937524e">+415/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
c868605736 | chore: add tests, fmt, clippy | ||
|
|
0cf0923a59 | fix: flaky integration test | ||
|
|
3e9c6203c5 |
test: updated page manager and logs page files (#8730)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Replace console logs with testLogger
- Improve logs page navigation robustness
- Add streaming response verification logging
- Comment out SDR page objects
___
### Diagram Walkthrough
```mermaid
flowchart LR
LogsPage["LogsPage"] -- "console.* -> testLogger.*" --> Logging["Centralized test logging"]
LogsPage -- "navigation retries, params" --> Navigation["More robust navigation"]
LogsPage -- "response checks" --> Streaming["Streaming/JSON response verification"]
PageManager["PageManager"] -- "comment out" --> SDR["SDR page objects"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Centralize logging and
harden LogsPage behavior</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Swap console.log/error to testLogger.debug/error<br> <li>
Enhance VRL editor detection and fallback reload<br> <li> Add detailed
network response checks for search/streaming<br> <li> Adjust messages
around errors and no data cases</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8730/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+75/-75</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>page-manager.js</strong><dd><code>Temporarily disable
SDR page objects</code>
</dd></summary>
<hr>
tests/ui-testing/pages/page-manager.js
<ul><li>Comment out SDR-related imports<br> <li> Comment out SDR page
object initializations</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8730/files#diff-565eab8b3c767ae50c9d05e591621d14f66b81af84d6b5ea6efe136c1c3933df">+8/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
89e6a180b6 |
fix: dashboard filter flaky testcases (#8732)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add robust nested group filter helpers
- Introduce E2E test for nested groups
- Stabilize selectors and waits in filters
- Limit CI to dashboard filter suite
___
### Diagram Walkthrough
```mermaid
flowchart LR
helper["DashboardFilter helper"] -- "add stability + nested group API" --> spec["dashboard-filter.spec.js"]
spec -- "adds nested group test" --> ci["playwright.yml matrix"]
ci -- "run only dashboard-filter suite" --> pipeline["CI run scope"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.js</strong><dd><code>Stabilize filter
interactions and add nested group helper</code></dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-filter.js
<ul><li>Add stable operator/value selection with waits<br> <li> Use
last() portal-aware locators<br> <li> Add addNestedGroupFilterCondition
helper<br> <li> Improve column selection via ArrowDown/Enter</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-cc4b5c84fa9084ee18943e000284fe9fbdaed9605503109d90a00a95871940a2">+123/-49</a></td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.spec.js</strong><dd><code>New E2E test
for nested filter groups</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-filter.spec.js
<ul><li>Add E2E test for group inside group<br> <li> Validate variable
rendering and SQL query<br> <li> Create dashboard, apply filters,
cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-c48a796836a25b90a9f94af58273ea9fd1b36248ca8689075c3d48be77de1468">+120/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Narrow CI matrix to
dashboard filter suite</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Limit matrix to Dashboards-Settings<br> <li> Run only
dashboard-filter.spec.js<br> <li> Comment out other test groups</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8732/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+92/-92</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
934aaadbfc | fix: flaky integration tests | ||
|
|
244c9547a7 |
fix: new pipeline UI improvements (#8714)
### **User description** This PR covers the issues mentioned in #8692 ___ ### **PR Type** Bug fix ___ ### **Description** - Restore zoom controls in pipeline UI - Remove redundant back button in editor - Set default zoom level to 0.8 ___ ### Diagram Walkthrough ```mermaid flowchart LR Editor["PipelineEditor.vue header"] -- "remove back button, adjust padding" --> UI["Cleaner editor UI"] View["PipelineView.vue"] -- "add Controls & styles" --> ZoomControls["Zoom/Fit UI restored"] Flow["PipelineFlow.vue"] -- "default zoom 0.8" --> Viewport["Improved initial viewport"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>PipelineEditor.vue</strong><dd><code>Remove redundant back button from editor header</code> </dd></summary> <hr> web/src/components/pipeline/PipelineEditor.vue <ul><li>Remove left-side back button container<br> <li> Add left padding class to header container</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+1/-15</a> </td> </tr> <tr> <td> <details> <summary><strong>PipelineFlow.vue</strong><dd><code>Set pipeline default zoom to 0.8</code> </dd></summary> <hr> web/src/plugins/pipelines/PipelineFlow.vue - Adjust default viewport zoom from 1.5 to 0.8 </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-9c7475a54f0c895dd49eb0c5b53fe0a76ceff0520f667a9cb065b364557ced50">+1/-1</a> </td> </tr> </table></td></tr><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>PipelineView.vue</strong><dd><code>Reintroduce Vue Flow controls for zoom/fit</code> </dd></summary> <hr> web/src/components/pipeline/PipelineView.vue <ul><li>Import Controls and ControlButton from @vue-flow/controls<br> <li> Import controls stylesheet<br> <li> Register Controls and ControlButton as components</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8714/files#diff-a71732cf7f8ee768e21f7eb2bf9eeed4ac67ba8221cca2e8d347d8acb27d4471">+3/-1</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
b88b7573b0 |
test: add pytest for dashboard (#8698)
### **PR Type**
Tests
___
### **Description**
- Add end-to-end dashboard API tests
- Cover CRUD flows and edge cases
- Validate SSE search stream responses
- Include auth, pagination, and folders
___
### Diagram Walkthrough
```mermaid
flowchart LR
list["List dashboards"] -- "200 with/without auth" --> validateList["Validate structure"]
create["Create dashboard"] -- "returns v1.dashboardId" --> read["Get by ID"]
read -- "assert fields" --> delete["Delete dashboard"]
updateNE["Update nonexistent"] -- "expect 400/404" --> done1["Handled"]
missingReq["Missing required fields"] -- "expect 400/422" --> done2["Handled"]
dupTitle["Duplicate title create"] -- "allowed" --> cleanup["Cleanup created dashboards"]
pagination["List with limit"] -- "verify dashboards key" --> cleanup2["Cleanup"]
sse["Search stream (SSE)"] -- "parse events/data" --> validateSSE["Validate results/hits"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_dashboards.py</strong><dd><code>End-to-end pytest
for dashboard APIs</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_dashboards.py
<ul><li>Add pytest suite for dashboard APIs<br> <li> Test list, create,
get, delete flows<br> <li> Validate SSE search stream parsing<br> <li>
Cover pagination, auth, errors, duplicate titles</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8698/files#diff-936c6e8532b2f4ad8ebd0d5d2bd43638e278ce0880498ccf0c446f9e01a20901">+404/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
075168ab8a | chore: clippy delint | ||
|
|
ad34aaa420 |
fix: pipeline UI revamp (#8676)
### **User description** This PR enhances the pipelines UI ___ ### **PR Type** Enhancement ___ ### **Description** - Revamped pipeline node sidebar UI - Added inline function definition viewer - Improved node/edge interactions and deletion UX - Updated icons, styles, and dark mode ___ ### Diagram Walkthrough ```mermaid flowchart LR Sidebar["NodeSidebar.vue UI/UX revamp"] -- styled nodes & tooltips --> Editor["PipelineEditor.vue visuals"] Editor -- keyboard edge delete & headers --> Flow["PipelineFlow.vue interactions"] Flow -- edge click help notification --> Edges["CustomEdge/EdgeWithButton cleanup"] AssocFn["AssociateFunction.vue function preview"] -- RAF/RBF guidelines --> Users["Better user guidance"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>AssociateFunction.vue</strong><dd><code>Show selected function definition and RAF/RBF note</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-24a5b2df69327a6477227ea674939dea19dd6d393b4bfcf807089d71e6391152">+205/-1</a> </td> </tr> <tr> <td><strong>NodeSidebar.vue</strong><dd><code>Redesign draggable nodes with custom tooltips</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-01811ed187a4a8d0dc2cf301d145c6d236eae3d474b048b006986e755cc6d8bb">+285/-13</a></td> </tr> <tr> <td><strong>PipelineEditor.vue</strong><dd><code>Visual updates, new icons, and keyboard edge delete</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+185/-22</a></td> </tr> <tr> <td><strong>PipelineView.vue</strong><dd><code>Update assets and scoped styles for nodes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-a71732cf7f8ee768e21f7eb2bf9eeed4ac67ba8221cca2e8d347d8acb27d4471">+61/-50</a> </td> </tr> <tr> <td><strong>CustomEdge.vue</strong><dd><code>Remove on-edge delete button; style and cleanup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-d759dc0d507d5dfb3295fdb7dfd59e4a48ae32cdced0bb3471096f8691a99f58">+9/-47</a> </td> </tr> <tr> <td><strong>CustomNode.vue</strong><dd><code>Hover actions, handle styling, labels truncation, UX polish</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-b9d83cd503b6d3470b238accaaea0b4decf567add8ad4727c63c9e583725f408">+704/-342</a></td> </tr> <tr> <td><strong>EdgeWithButton.vue</strong><dd><code>Remove edge button UI; keep keyboard deletion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-838d98dd7119cb936a8971f3c631106cdda2c4113530999ff50bceb206acd375">+14/-29</a> </td> </tr> <tr> <td><strong>PipelineFlow.vue</strong><dd><code>Edge click help notification and event handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8676/files#diff-9c7475a54f0c895dd49eb0c5b53fe0a76ceff0520f667a9cb065b364557ced50">+85/-3</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
bcdace5459 |
fix: Root user should not be added to any organization (#8632)
### **User description**
Root user by default can access all the organizations and does not need
to be added to any organizations through api.
___
### **PR Type**
Bug fix, Tests
___
### **Description**
- Prevent adding root user to orgs
- Return Forbidden for unauthorized add attempts
- Expand integration tests for user/org flows
- Validate user listing includes expected emails
___
### Diagram Walkthrough
```mermaid
flowchart LR
addUser["add_user_to_org handler"] -- "user is root" --> rejectRoot["400 Bad Request: root no org needed"]
addUser -- "not root & unauthorized" --> forbid["403 Forbidden"]
tests["Integration tests"] -- "root add attempt" --> expect400["expect failure"]
tests -- "create non-root & add to org" --> expect200["expect success"]
tests -- "list users" --> assertUsers["assert expected emails present"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>users.rs</strong><dd><code>Block root user org add; use
403 for denial</code>
</dd></summary>
<hr>
src/service/users.rs
<ul><li>Short-circuit if <code>existing_user.is_root</code>, return
400.<br> <li> Change unauthorized response from 401 to 403.<br> <li> Add
explanatory comments for root access.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8632/files#diff-98da2588a28d62bb2e301d989836125f89f89b76272cd7f75e08ec4deeea5f38">+13/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>integration_test.rs</strong><dd><code>Extend
integration tests for user/org behaviors</code>
</dd></summary>
<hr>
tests/integration_test.rs
<ul><li>Import <code>UserList</code> and validate list users
content.<br> <li> Add <code>e2e_add_root_user_to_org</code> expecting
failure.<br> <li> Add <code>e2e_add_user_to_org</code> to create and add
admin user.<br> <li> Update test sequence to include new cases.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8632/files#diff-7ff815b68943f08bef79f083c09e55ca8c18db8e25033034b12fa31f1d43dab4">+79/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
ad79d30c41 | fix: optimize cache metadata (#8671) | ||
|
|
d2a65f967f |
test: add dashboard override config test case (#8652)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add override config E2E test
- Introduce override config locators
- Implement robust sidebar scrolling
- Save override via UI flow
___
### Diagram Walkthrough
```mermaid
flowchart LR
Spec["Visualize spec: override test"] -- uses --> PageObj["DashboardPanelConfigs helpers"]
PageObj -- adds --> Locators["Override locators"]
PageObj -- adds --> Scroll["Robust sidebar scroll"]
Spec -- verifies --> Table["Colored table cells present"]
Spec -- persists --> Dashboard["Add panel to new dashboard"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-panel-configs.js</strong><dd><code>Add
override helpers and scrolling in panel configs</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-panel-configs.js
<ul><li>Add override config locators.<br> <li> Add configureOverride
workflow with save.<br> <li> Implement scrolling to reveal override
control.<br> <li> Minor whitespace/cleanup.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8652/files#diff-f9ea2c35d253aa0c99b5c165f575a883ee898f981dc0a451502e230f03a0995c">+69/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Add E2E test
validating override color application</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Add test for override after histogram.<br> <li> Use new panel
config helpers.<br> <li> Assert colored cells and persist panel.<br>
<li> Log styles and cleanup dashboard.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8652/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+82/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
891d3f5d1a |
test: pytest tests sql (#8637)
### **PR Type**
Tests
___
### **Description**
- Add time-series window functions test
- Add advanced regex aggregation test
- Add complex nested aggregation test
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Add E2E test: array case-sensitive"] -- "validates substring match in arrays" --> T["tests/test_advanced_sql.py"]
B["Add E2E test: window functions"] -- "histogram + LAG growth" --> T
C["Add E2E test: regex + metrics"] -- "regexp_match, health status" --> T
D["Add E2E test: complex CTEs"] -- "env metrics, ranks" --> T
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_advanced_sql.py</strong><dd><code>Add multiple
advanced E2E SQL tests</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_advanced_sql.py
<ul><li>Add case-sensitive array extraction E2E test.<br> <li> Add
time-series window functions E2E test.<br> <li> Add advanced regex with
JSON-path metrics test.<br> <li> Add complex nested aggregation with
CTEs and ranking test.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8637/files#diff-190cc55e8b961580682e09403c997fda2e8288e5f210dec5ab41c9465c68538f">+451/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
1077ad0461 |
fix: enrichment table delete event must be watched (#8578)
### **PR Type**
Bug fix, Tests
___
### **Description**
- Fix delete to watch enrichment deletions
- Add GeoIP config and parsing tests
- Add multipart CSV extraction tests
- Add derived stream timerange edge-case tests
- Add enrichment table integration tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
DeleteFn["DB delete for enrichment tables"] -- "enable prev_kv for watch" --> Watcher["Cluster watcher reacts to deletions"]
GeoIP["GeoIP module"] -- "unit tests" --> Confidence["Parsing/config defaults validated"]
Multipart["Multipart CSV extraction"] -- "unit tests" --> CSVRecords["Robust CSV handling verified"]
Pipeline["Derived stream scheduler"] -- "integration tests" --> TimeRange["Invalid timerange scenarios covered"]
Enrichment["Enrichment tables"] -- "integration tests" --> CacheSchema["Schema, caches, disk cache validated"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>enrichment_table.rs</strong><dd><code>Enable prev_kv on
enrichment table delete</code>
</dd></summary>
<hr>
src/service/db/enrichment_table.rs
<ul><li>Change delete call flag to enable previous value<br> <li>
Ensures delete events are observable via watch</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8578/files#diff-6ce27ddf8a0d8b4e790bda90d088ff692a5da31a8d330beea8a9dd843294572b">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>geoip.rs</strong><dd><code>Add GeoIP config and parsing
tests</code>
</dd></summary>
<hr>
src/service/enrichment_table/geoip.rs
<ul><li>Add comprehensive unit tests for DatabaseKind parsing<br> <li>
Test defaults, config clone/eq, serialization<br> <li> Validate error on
invalid DB path</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8578/files#diff-e9b58b850f67eed76a5e8afb0bf98dbbc6e09216558dcdc4441663f58998f800">+116/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>mod.rs</strong><dd><code>Add multipart CSV extraction
test suite</code>
</dd></summary>
<hr>
src/service/enrichment_table/mod.rs
<ul><li>Add extensive tests for multipart CSV extraction<br> <li> Cover
headers-only, malformed, whitespace, specials<br> <li> Test multiple
files and append behavior</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8578/files#diff-3e2b6d3b8da1f9e73aca279052a97e683184d68256c23215b18ffee885836bbf">+381/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>integration_test.rs</strong><dd><code>Add pipeline and
enrichment integration tests</code>
</dd></summary>
<hr>
tests/integration_test.rs
<ul><li>Add helpers and integration tests<br> <li> Cover derived stream
invalid timeranges (delay/cron)<br> <li> Add enrichment table end-to-end
tests and cleanup<br> <li> Refactor pipeline retrieval helper and minor
logs</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8578/files#diff-7ff815b68943f08bef79f083c09e55ca8c18db8e25033034b12fa31f1d43dab4">+830/-18</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9b971f0b7f |
test: add camelCase test scenarios (#8570)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add transpose custom SQL dashboard test
- Extend error checking return structure
- Validate no errors post-transpose
- Optimize test flow and assertions
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Dashboards transpose test"] -- "enable transpose via config" --> Transpose["Apply transpose"]
Transpose -- "check errors" --> ErrorCheck["Enhanced error results"]
ErrorCheck -- "assert zero errors" --> Save["Save panel and cleanup"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualise.js</strong><dd><code>Enrich dashboard error
check return payload</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/visualise.js
<ul><li>Extend error result object.<br> <li> Include
<code>errorTextCount</code> and <code>errorListCount</code>.<br> <li>
Preserve existing no-error logic.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8570/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+2/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-transpose.spec.js</strong><dd><code>New E2E
test: transpose with custom SQL</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-transpose.spec.js
<ul><li>Add test for transpose with custom SQL.<br> <li> Configure
fields, time range, and transpose.<br> <li> Use enhanced error counts
for assertions.<br> <li> Save and cleanup created dashboard.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8570/files#diff-da631007cea76a4bc59e4acd1195b59ae4131cd5208d21a9c1f94d3913911dc4">+88/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
4fa43fdff7 |
fix: stream detail page (schema) layout changed (#8585)
### **User description**
1. This PR introduces a new tab called configuration where we moved all
the configuration settings to that tab
2. This PR introduces a compact table so that more columns are visible
and also all the stream stats above will stay at viewport always
___
### **PR Type**
Enhancement
___
### **Description**
- Redesigned schema page layout and header
- Added Configuration tab for settings
- New compact stats tiles and sticky table
- Added distinct values toggle and UX polish
___
### Diagram Walkthrough
```mermaid
flowchart LR
Header["Header: title + name + timeline"] -- "context" --> Tabs["Tabs: Schema Settings / Configuration / Extended Retention"]
Tabs -- "schema fields" --> SchemaTbl["Schema table: compact, sticky header, mini-select"]
Tabs -- "settings" --> Config["Configuration panel: retention, max range, flatten, toggles"]
Tabs -- "retention" --> ExtRet["Extended Retention: date selection + table"]
Stats["Stats tiles: Events, Storage, Compressed, Index"] -- "overview" --> Header
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>schema.vue</strong><dd><code>Schema page UI/UX overhaul
with new configuration</code>
</dd></summary>
<hr>
web/src/components/logstream/schema.vue
<ul><li>Revamped header with stream name badge and timeline.<br> <li>
Added stats tiles grid and compact layout.<br> <li> Introduced
'Configuration' tab with inputs and toggles.<br> <li> Improved schema
table: sticky header, mini-select, tooltips, <br>pagination.<br> <li>
Added 'Enable Distinct Values' setting wired to backend.<br> <li>
Updated date formatting and preserved original timestamps.<br> <li>
Adjusted per-page options and floating footer behavior.<br> <li> Added
new icons and theme-aware styling; extensive CSS updates.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8585/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+1068/-604</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
83b2951a23 |
test: add test cases for visualization using "Select *" queries (#8589)
### **User description**
… query
___
### **PR Type**
Tests
___
### **Description**
- Add E2E test for SELECT * visualization
- Verify default line chart selection
- Validate inspector shows transformed histogram query
- Save panel to dashboard and assert success
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Open Logs"] -- "Enter SELECT *" --> B["Apply Query"]
B -- "Open Visualise" --> C["Verify line chart rendered"]
C -- "Run & Add Panel" --> D["Save to new dashboard"]
D -- "Open Query Inspector" --> E["Assert histogram query present"]
E -- "Close & Cleanup" --> F["Delete dashboard"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Add E2E test for
SELECT * visualization and inspector</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Add test for SELECT * rendering as line chart<br> <li> Save
panel to new dashboard and assert toast<br> <li> Open query inspector
and validate generated histogram SQL<br> <li> Cleanup by navigating back
and deleting dashboard</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8589/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+55/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
4a182220d2 | chore: upgrade datafusion to v50.0.0 (#8526) | ||
|
|
3565d4a516 |
test: added advanced sql queries (#8573)
### **PR Type**
Tests
___
### **Description**
SQL Query Test Coverage
- COUNT, SUM, AVG, MIN, MAX
- approx_percentile_cont (P50, P75, P95, P99)
- histogram (time bucketing)
- str_match, str_match_ignore_case, COALESCE
- regexp_match, array_extract (regex groups)
- CASE WHEN (pattern matching)
- HAVING, LIKE, field comparisons
- GROUP BY (multi-field, time buckets)
- Kubernetes fields (kubernetes_container_name, etc.)
- Add advanced SQL E2E tests
- Validate fields and value constraints
- Cover percentiles and aggregations
- Exercise grouping, regex, and filters
___
### Diagram Walkthrough
```mermaid
flowchart LR
tests["New E2E SQL tests"] --> errorRate["Error rate analysis"]
tests --> percentiles["Time-bucket percentiles"]
tests --> volume["Log volume by bucket"]
tests --> source["Source grouping"]
tests --> hostPerf["Host performance stats"]
tests --> compPct["Component percentiles"]
tests --> apiLogs["API log analysis"]
tests --> metadata["Regex-based metadata extraction"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_advanced_sql.py</strong><dd><code>Add
comprehensive E2E advanced SQL query tests</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_advanced_sql.py
<ul><li>Add eight E2E tests posting SQL queries<br> <li> Assert HTTP 200
and presence of expected fields<br> <li> Validate rates, percentile
ordering, and counts<br> <li> Use time windows, grouping, regex
extraction</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8573/files#diff-190cc55e8b961580682e09403c997fda2e8288e5f210dec5ab41c9465c68538f">+514/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
3fedd93430 |
test: Reworked logs download tests, added 10 tests for json and sql w… (#8543)
### **User description**
…ith limit
___
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add JSON download verification helpers
- Consolidate downloads into one comprehensive test
- Cover CSV and JSON for custom ranges
- Add SQL mode CSV/JSON with LIMIT 2000
___
### Diagram Walkthrough
```mermaid
flowchart LR
LogsPage["LogsPage: add JSON verifiers"] -- used by --> Spec["logsDownloads.spec: comprehensive tests"]
Spec -- normal downloads --> CSV["CSV verification"]
Spec -- normal downloads --> JSON["JSON verification"]
Spec -- custom ranges (100-10000) --> CSV
Spec -- custom ranges (100-10000) --> JSON
Spec -- SQL mode LIMIT 2000 --> CSV
Spec -- SQL mode LIMIT 2000 --> JSON
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Add JSON download
verification helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add verifyJsonDownload helper for generic JSON<br> <li> Add
verifyJsonDownloadWithCount with expected count<br> <li> Validate file
presence, size, JSON structure, _timestamp<br> <li> Return saved
download path for reuse</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8543/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+76/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>logsDownloads.spec.js</strong><dd><code>Consolidate and
expand logs download tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsDownloads.spec.js
<ul><li>Replace multiple tests with one orchestrated suite<br> <li> Add
helpers to setup page and SQL mode<br> <li> Test CSV/JSON for normal,
custom ranges, SQL LIMIT<br> <li> Aggregate results with robust error
handling and summary</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8543/files#diff-90f04cfe53caddf683cc4466e9e97af96d7eb90d636bf6b0f5cdc4b76dc395ac">+198/-204</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
c77a559183 |
feat: add pipeline usage (#8295)
### **PR Type** Enhancement, Bug fix ___ ### **Description** - Add pipeline and remote usage tracking - Report usage for remote destination WAL writes - Switch pipeline channels to structured items - Fix size accounting across pipeline branches ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Ingestion (Logs/Metrics)"] -- "pre-pipeline size" --> B["Usage: Pipeline"] B -- "execute pipeline" --> C["Pipeline Nodes (Condition/Function/Destination)"] C -- "local dest" --> D["Size by stream (no double count)"] C -- "remote dest WAL write" --> E["Usage: RemotePipeline"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>usage.rs</strong><dd><code>Add Pipeline and RemotePipeline usage types and mapping</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-b15a6adcb163dc27993c83528105a6726c44c86d8a84c5cf5d1d382c6ec8cc29">+22/-0</a> </td> </tr> <tr> <td><strong>ingest.rs</strong><dd><code>Report size before pipeline; avoid double counting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-e62118e45be183266d39ffa08491f255017954235ff0f3d6937683e314da406f">+13/-7</a> </td> </tr> <tr> <td><strong>batch_execution.rs</strong><dd><code>Add usage reporting; introduce PipelineItem; report remote WAL usage</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-3f6824a6eddaf1603e5cb0f1a4311ac6a45e1ffb967266ccc1f0bba944625e69">+158/-29</a></td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>handlers.rs</strong><dd><code>Avoid ownership by cloning stream params key</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-5eca8995a88fcecb6d6b8efd3c7c4496f4a96a4b060fb4ed85593574f7cf49eb">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>otlp.rs</strong><dd><code>Minor formatting and flow tidy in loop</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-183498d98b17ddf344cbab4da6b2d9fe89ac81112db51655c142a89023b46ef3">+1/-0</a> </td> </tr> <tr> <td><strong>json.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+1/-0</a> </td> </tr> <tr> <td><strong>prom.rs</strong><dd><code>Minor formatting; prep for pipeline handling</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8295/files#diff-c4e9e1d49a2bd0fefe67684b3768c4792be63cebcf727d71a48141f5b5957b8c">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
e70455bfd9 |
test: add custom variable tests for dashboard (#8401)
### **PR Type**
Enhancement, Tests
___
### **Description**
- Add custom value search to variables
- Introduce streaming-aware dashboard tests
- Add streaming state management helper
- Update CI to run streaming tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
vars["DashboardVariables.addDashboardVariable(custom search)"]
mgmt["ManagementPage.setStreamingState()"]
filtSpec["dashboard-filter.spec: custom value search test"]
streamSpec["dashboard-streaming.spec: streaming search test"]
ci["Playwright workflow: Dashboards-Streaming job"]
vars -- "support custom value search" --> filtSpec
mgmt -- "toggle streaming on/off" --> streamSpec
streamSpec -- "verifies _values_stream calls" --> ci
filtSpec -- "validates _values calls" --> ci
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-variables.js</strong><dd><code>Support custom
value search for variables</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/dashboard-variables.js
<ul><li>Extend addDashboardVariable with custom search mode<br> <li>
Conditionally skip early save/close for custom search<br> <li> Implement
custom value entry flow in settings</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-67d38d39bb67f4a0cbfa473ee81ad50b1fffebc40c635417e58905f3c865a6e2">+48/-8</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>managementPage.js</strong><dd><code>Add streaming state
management utility</code>
</dd></summary>
<hr>
tests/ui-testing/pages/generalPages/managementPage.js
<ul><li>Add setStreamingState helper<br> <li> Navigate to settings and
toggle streaming<br> <li> Verify final toggle state with
aria-checked</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-2e67acc9ff9099e14792ddeb7d0160268727fb064b85e6712f6434130cc23fdd">+48/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-filter.spec.js</strong><dd><code>Add custom
value search e2e test</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-filter.spec.js
<ul><li>Add test for custom value dropdown search<br> <li> Capture and
assert /_values responses status<br> <li> Configure panel and filter
using variable<br> <li> Ensure dashboard cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-c48a796836a25b90a9f94af58273ea9fd1b36248ca8689075c3d48be77de1468">+110/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>dashboard-streaming.spec.js</strong><dd><code>Add
streaming-aware dashboard tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-streaming.spec.js
<ul><li>New serial test suite for streaming<br> <li> Enable/disable
streaming via page object<br> <li> Validate _values_stream requests and
200 status<br> <li> Full dashboard create, filter, save, cleanup</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-92f44296937f53cb448371d1c61510c8c910fbecab83b02b8e89490d5832be19">+152/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: run streaming
dashboard tests</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add Dashboards-Streaming matrix entry<br> <li> Map folder to
Dashboards path<br> <li> Run dashboard-streaming.spec.js on Chrome</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8401/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+4/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
8ede92a58f |
ci: updated oss strapi notification to pusblish content (#8465)
### **User description**
updated oss strapi notification to pusblish content
___
### **PR Type**
Enhancement
___
### **Description**
- Improve changelog cleaning logic robustness
- Stop at 'New contributors' section
- Exclude binaries and links from notes
- Publish Strapi release entries by default
___
### Diagram Walkthrough
```mermaid
flowchart LR
GH["GitHub Release (tag)"] -- "Fetch & clean body" --> Clean["Enhanced changelog cleaner"]
Clean -- "Cleaned notes" --> Payload["Build payload for Strapi"]
Payload -- "POST status=published" --> Strapi["Strapi /api/github-releases"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>release.yml</strong><dd><code>Refine changelog cleaner
and publish status</code>
</dd></summary>
<hr>
.github/workflows/release.yml
<ul><li>Rewrote <code>cleanChangelog</code> to iterative parser.<br>
<li> Stops at 'New contributors'; removes links and binaries lines.<br>
<li> Preserves non-empty cleaned lines only.<br> <li> Changes Strapi API
call query to <code>status=published</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8465/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34">+13/-14</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
7f3ee74085 | fix: o2 ui improvements latest (#8391) | ||
|
|
5fc1944621 |
test: add camelCase tests for dashboard (#8423)
### **PR Type**
Tests, Bug fix
___
### **Description**
- Add camelCase custom SQL UI tests
- Fix table data validation logic
- Validate line and table chart rendering
___
### Diagram Walkthrough
```mermaid
flowchart LR
UI["Dashboard UI tests"] -- "add camelCase SQL cases" --> Tests["Playwright specs"]
Renderer["PanelSchemaRenderer table check"] -- "fix grouping logic" --> Validation["Accurate data validation"]
Tests -- "verify table & line charts" --> Charts["Rendered charts without no-data"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Fix table
data validation logical grouping</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelSchemaRenderer.vue
<ul><li>Correct parentheses in table branch<br> <li> Ensure x/y alias
checks grouped logically</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8423/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+2/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard.spec.js</strong><dd><code>Add camelCase
custom SQL UI tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard.spec.js
<ul><li>Add test for camelCase in table SQL<br> <li> Add test for
camelCase in line SQL<br> <li> Assert data presence and chart
rendering<br> <li> Cleanup dashboards after tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8423/files#diff-d0fa0042783dc109334b05266edce228bad97adcb568dd1e447920596238e9b4">+136/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
|
||
|
|
171bea35a6 |
fix: restrict select * query for visualization (#8302) (#8368)
### **User description** - #8338 Resolved Issues: - Implemented a check for `ZO_QUICK_MODE_ENABLED` before enabling quick mode on logs for visualization toggle. 1. If `ZO_QUICK_MODE_ENABLED=true`, quick mode is enabled when the query is `select *`. 2. Otherwise, `select *` query is always permitted in visualization mode. - Restricted the use of `SELECT *` queries in visualization mode. - As API call triggered on changing the chart type, such changes are now disallowed for `SELECT *` queries. ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Block SELECT * in visualization when quick mode on - Respect quick-mode config before auto-enabling - Centralize SELECT * detection in sqlUtils - Prevent chart-type changes for SELECT * queries ___ ### Diagram Walkthrough ```mermaid flowchart LR A["sqlUtils.ts: isSimpleSelectAllQuery()"] -- "imported by" --> B["logs/Index.vue"] A -- "imported by" --> C["VisualizeLogsQuery.vue"] B -- "auto-enable quick mode only if config true" --> D["handleQuickModeChange()"] B -- "block run for SELECT * when quick mode" --> E["handleRunQueryFn()"] C -- "validate on chart type change" --> F["handleChartTypeChange()"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>sqlUtils.ts</strong><dd><code>Add reusable SELECT * query detector</code> </dd></summary> <hr> web/src/utils/query/sqlUtils.ts <ul><li>Add <code>isSimpleSelectAllQuery</code> utility with normalization.<br> <li> Export function for reuse across components.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+17/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>Index.vue</strong><dd><code>Enforce quick mode/config and block SELECT * runs</code> </dd></summary> <hr> web/src/plugins/logs/Index.vue <ul><li>Import shared <code>isSimpleSelectAllQuery</code>.<br> <li> Remove local duplicate detector.<br> <li> Auto-enable quick mode only if config enabled.<br> <li> Block visualize run for SELECT * when quick mode enabled.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+32/-16</a> </td> </tr> <tr> <td> <details> <summary><strong>VisualizeLogsQuery.vue</strong><dd><code>Validate chart type changes against SELECT * queries</code> </dd></summary> <hr> web/src/plugins/logs/VisualizeLogsQuery.vue <ul><li>Replace v-model with explicit <code>selectedChartType</code> prop handling.<br> <li> Add <code>handleChartTypeChange</code> validating against SELECT * when quick mode.<br> <li> Import shared <code>isSimpleSelectAllQuery</code> and logs context.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8368/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+38/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
4f49af792f | fix: shutting down DDL connection (#8398) | ||
|
|
000009f86d |
test: str_match_coalesce_fix (#8403)
### **PR Type**
Tests
___
### **Description**
- Add e2e test for str_match_ignore_case with coalesce
- Validate all hits contain expected match
- Ensure 200 response and correct schema
- Log query performance and totals
___
### Diagram Walkthrough
```mermaid
flowchart LR
T["New e2e test: str_match_ignore_case + coalesce"] -- "executes query" --> API["/api/{org}/_search?type=logs"]
API -- "returns hits" --> V["Validate coalesce and case-insensitive match"]
V -- "assertions + logs" --> R["Report results and timing"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_search.py</strong><dd><code>Add coalesce-aware
case-insensitive match test</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_search.py
<ul><li>Add end-to-end test for str_match_ignore_case with coalesce<br>
<li> Post SQL search over recent timeframe<br> <li> Assert 200, hits
presence, and per-hit validation<br> <li> Print diagnostics and timing
information</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8403/files#diff-f3776a5bc02e67c163ed707f86b2192f47b73c641dde04b83523b95a74518141">+76/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
ab156bad8d |
fix: changed code-mirror to monaco-editor (#8047)
### **PR Type** Enhancement, Bug fix ___ ### **Description** - Replace CodeMirror with Monaco editor - Add Monaco autocomplete and markers - Update build to bundle Monaco - Remove re-render key from logs UI ___ ### Diagram Walkthrough ```mermaid flowchart LR CM["CodeMirror-based editor"] -- Replaced by --> ME["Monaco editor integration"] ME -- Autocomplete/Markers --> UX["Improved editor UX"] Build["Vite config"] -- Add monaco plugin/chunks --> Bundle["Optimized bundles"] UI["Logs and SearchBar"] -- Minor fixes/cleanup --> Stability["Reduced re-renders"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>CodeQueryEditor.vue</strong><dd><code>Replace CodeMirror with Monaco, add features</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-52a36bf2d64e590036ed1c1f89b07a4a6b971a84e4fae9b4272cbc69d63f9bef">+369/-980</a></td> </tr> <tr> <td><strong>Index.vue</strong><dd><code>Cleanups, visualization flow, formatting tweaks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+105/-78</a></td> </tr> <tr> <td><strong>SearchBar.vue</strong><dd><code>Editor placeholder, menus, toggle guards</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+148/-82</a></td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>CodeQueryEditorDarkTheme.ts</strong><dd><code>Remove legacy CodeMirror dark theme</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-4ee0166b549a9a7d6a91e72d546dffd2d031b0ad6015ef5f735b67742e13c66d">+0/-230</a> </td> </tr> <tr> <td><strong>CodeQueryEditorLightTheme.ts</strong><dd><code>Remove legacy CodeMirror light theme</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-4e80117fff859d80b9dde6898e8026f2c2514c43244e48e2b639527409d38682">+0/-246</a> </td> </tr> <tr> <td><strong>package.json</strong><dd><code>Remove CodeMirror deps; add Monaco and plugin</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+2/-16</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>vite.config.ts</strong><dd><code>Integrate Monaco plugin and chunking</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8047/files#diff-9430906049744cbbfe5d0b382b2466843a42cfebf755ff86fec850b0712258ef">+25/-15</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Bhargav <BJP232004@GMAIL.COM> |
||
|
|
52e11d3ee7 |
fix: o2 UI table improvements (#8033)
### **User description** This PR improves the following `Fix: checkboxes as per design for alert list Fix: general setting, platform settings modified as per design Fix: numeric input in general settings as per design Fix: introduced all variables according to design Fix: secondary button, primary button, tabs, search input added Fix: another major change related to tabs, sticky header and footer table Fix: light mode q-toggle redesign done for both lg and small Fix: pipeline list as per new design Fix: added removed padding at the child level for pipeline editor Fix: function list table as per design changed Fix: made filtering rows based upon filter query this is done to avoid the issue of the table showing some height when the filter is applied and there are no results Fix: enrichment table list updated with latest design Fix: added border to the last row when having less rows when filter is applied or not applied Fix: function list bottom header to take functions Fix: function list header as per design Fix: stream list table as per design Fix: report list table as per new design Fix: users list table changed as per design Fix: added filter check for height so to avoid the issue of the table showing some height when the filter is applied and there are no results Fix: service account list table changed as per design Fix: organization list table updated as per design Fix: user groups as per design with app table additional props Fix: app roles tables list updated as per design Fix: made group roles virtual scroll to false Fix: group users, roles, service accounts tables as per new design system Fix: search icon in IAM tables as per design Fix: search history table update as per new design Fix: search scheduler list table updated as per design Fix: space between app tabs and search in log stream page Fix: pagination logic modified due to pagination component introduced Fix: aggregation to streaming aggregation label change in management page Fix: change sub text for streaming aggregation in management page Fix: q-toggle for dark mode Fix: report list added additional checks Fix: alert destination table as per design Fix: destination list, template list tables updated as per design Fix: cipher keys table as per design Fix: regex pattern list updated as per design Fix: search input placeholder text fixed Fix: per page options consistent with streams page Fix: import and pipeline editor buttons changed as per design Fix: added primary and secondary buttons in all listing pages Fix: increased pipeline editor height Fix: add stream in pipeline should not have more space in x direction Fix: secondary, primary, and delete buttons modified in pipeline nodes Fix: IAM add pages in sync Fix: introduce toggle button in the entire application Fix: alert folder list made sticky top title and search input Fix: import alert primary and secondary button changed Fix: action scripts table modified as per design Fix: add action script file changed Fix: add enrichment table submit and cancel at start Fix: add stream submit and cancel buttons at start Fix: create report changed as per new design Fix: real user monitoring get started button Fix: data source page reset rum token, reset token to primary button Fix: add destination button position changed Fix: add cipher key UI modified according to add report Fix: organization settings toggle changed Fix: home view layout spacing fixed Fix: remove negative bg for delete button` ___ ### **PR Type** Enhancement ___ ### **Description** - Adopt new design system across tables - Introduce uniform sticky headers/footers - Replace filters with tabs and styled inputs - Improve pagination, per-page options ___ ### Diagram Walkthrough ```mermaid flowchart LR design["New design tokens/components"] tables["Tables (Lists across app)"] headers["Sticky headers/footers"] filters["Tabs + styled search"] pagination["Unified pagination options"] ux["Consistent UX across themes"] design -- applied to --> tables tables -- enable --> headers tables -- replace --> filters tables -- standardize --> pagination tables -- results in --> ux ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19 files</summary><table> <tr> <td><strong>LogStream.vue</strong><dd><code>Header redesign, tabs, sticky table, pagination</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-56f4223b74568c10bc305741cc9fc3a8830184a251b4eaa6a2649033bc6200e3">+82/-95</a> </td> </tr> <tr> <td><strong>AlertList.vue</strong><dd><code>Header styling, search/toggle redesign, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+59/-62</a> </td> </tr> <tr> <td><strong>ActionScipts.vue</strong><dd><code>Styled header/search, computed filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6cfeff0b8dbbaba52b13ba67d6f4f8fdc3c58996eccdfae2ad0db2e7aee20f08">+71/-65</a> </td> </tr> <tr> <td><strong>User.vue</strong><dd><code>New header/search, client filtering, footer pagination</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e973c2a665f9b27b94673ba64cc5b23650300836a727a2e07673c8e26305aee5">+63/-53</a> </td> </tr> <tr> <td><strong>HomeView.vue</strong><dd><code>Card layout spacing and grouping tweaks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9af441af191d3254ef5f9db603dca75486de7638cda41a3c050e7b3c33d68280">+110/-109</a></td> </tr> <tr> <td><strong>ServiceAccountsList.vue</strong><dd><code>New header/search, client filter, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-3afe835bcfbec3fda2e9550850c29581092ee0717e7dd8de8888e774a0048d24">+63/-59</a> </td> </tr> <tr> <td><strong>General.vue</strong><dd><code>Platform settings UX revamp with GroupHeader</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-a191d0eb2843df5efa7f18d411a216e86558b49f7b6cdfa9501d69414b933fc3">+144/-63</a></td> </tr> <tr> <td><strong>PipelinesList.vue</strong><dd><code>Header/tabs/search restyle, sticky table, export button</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-85e3ef322f3eea0fc6d74d89431ba338a1153cb82ee06bef0f7c5f439c04267d">+52/-31</a> </td> </tr> <tr> <td><strong>EnrichmentTableList.vue</strong><dd><code>Header/search restyle, client filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6a29e253f59405d3c0f756dba36afd7483f10ad86927cbbc3348ede6372c3077">+45/-38</a> </td> </tr> <tr> <td><strong>TemplateList.vue</strong><dd><code>Header/search/buttons restyle, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7df66364d7d69a26cfa25cbc555d0e090c2f73e51c8386d9b0435bae4412564c">+43/-43</a> </td> </tr> <tr> <td><strong>FunctionList.vue</strong><dd><code>Header/search restyle, client filtering, sticky table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6ff9af50a1597504b7f0dca91e61cf30c800b4a17b4be2ed2c3a4f7a7b2d7068">+49/-39</a> </td> </tr> <tr> <td><strong>ReportList.vue</strong><dd><code>Header/tabs/search restyle, sticky table/footer, filters</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+38/-32</a> </td> </tr> <tr> <td><strong>ExternalDestination.vue</strong><dd><code>Form controls restyle, large toggles, delete node dialog</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7ed6a9ef676d7d6db5440d4157512f731bad58716c351ca39015125a8a9d2df5">+74/-15</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.vue</strong><dd><code>Header/search/buttons restyle, sticky table/footer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+43/-41</a> </td> </tr> <tr> <td><strong>GroupHeader.vue</strong><dd><code>New shared section header component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-63133a31279f4f8d5631b5d33f5b12927f9dc6616b714e8c0ffc727696abbc2b">+64/-0</a> </td> </tr> <tr> <td><strong>_variables.scss</strong><dd><code>Introduce/adjust design tokens and variables</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b3e37ee00c17b89ad1177c5592504277aa645b374095c065ea8b3782df5e89a2">+289/-0</a> </td> </tr> <tr> <td><strong>RegexPatternList.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-524927acd9f5bb07b71bfac489e747470108574e21a6dde63ea7c1f219cea853">+62/-56</a> </td> </tr> <tr> <td><strong>CipherKeys.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-950b715cff2c964d8542512692030c370733b57d698abf40e1dcb3cce2cfaf7a">+45/-45</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.vue</strong><dd><code>Apply unified table/header/search styles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+41/-39</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>TemplateList.spec.ts</strong><dd><code>Update tests to match new UI structure</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-83d9701e7e491fb1ac667d1e1833ec58153c04ad844560778d06d50b85bd4bc6">+0/-20</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>54 files</summary><table> <tr> <td><strong>alertTemplatesPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-f4ebd248b2140051e74dbbbd1aabe344f01c80704ce5857e9c28a04350e018f3">+17/-17</a> </td> </tr> <tr> <td><strong>alertsPage.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-79ee01d6d7f145f19207b93b87143b545a1188cfc6a82bc8c45fecfbf68f8a1d">+5/-5</a> </td> </tr> <tr> <td><strong>dashboard-chart.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-573a312576fce62d8e14f2bbb5f9b7d9a552d746304dce3d79862edddd24de76">+3/-0</a> </td> </tr> <tr> <td><strong>AppTable.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-efcf66a9e913b5d3a7c2eea800b7f4e54d9e5268307131482fd40f32e2074d8e">+30/-13</a> </td> </tr> <tr> <td><strong>EditScript.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-bf406d8f31f66d50e11b2c41f5ec13daabb4bb2e4f4612c5ff44675817ed2eca">+37/-34</a> </td> </tr> <tr> <td><strong>AddAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+12/-10</a> </td> </tr> <tr> <td><strong>AddDestination.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-61b295458e13049a538f5014124855d58dce664dfbd644b57a964a37a07b7a3f">+15/-12</a> </td> </tr> <tr> <td><strong>AddTemplate.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba">+11/-11</a> </td> </tr> <tr> <td><strong>ImportAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-0f40dbf2757672e39ad16b86dddc59b568ca2e6ca36850420cd7be617da12d38">+6/-6</a> </td> </tr> <tr> <td><strong>ImportDestination.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-814b8ef1dbb4eebca9dfab72452d9a90d5f3fa5886dea8e82ac0bde44f66b445">+6/-6</a> </td> </tr> <tr> <td><strong>ImportTemplate.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d22684c5142a49b8925a9dba1ef67631128caa95de66e71ba2a5b8120a0b91c6">+7/-6</a> </td> </tr> <tr> <td><strong>ScheduledAlert.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999">+6/-4</a> </td> </tr> <tr> <td><strong>VariablesInput.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-23a647aa1acfc95bc726629f0daa54005e3da1ed5b16482ceccef0649f680a74">+8/-11</a> </td> </tr> <tr> <td><strong>AddCipherKey.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-ff5ae3a9b070fe2b3650f177ced0d87e9449ae7375a0b117ee299238293df110">+27/-15</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-41d2f8fac44084c004d8386ea4cc32e9c5d3e33266c4009cc855e57fb00a41af">+12/-14</a> </td> </tr> <tr> <td><strong>FolderList.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b97284b1720dfb524e425f49acd70f1a4e59da3d493eb2d4b3de8551b2da7141">+47/-22</a> </td> </tr> <tr> <td><strong>AddEnrichmentTable.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9aad551dbc051edfdb3994a664506ed6d5e27dcb64f9c2fa917b02e51a35d86e">+12/-10</a> </td> </tr> <tr> <td><strong>FunctionsToolbar.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-8283d2ff9c4a66b4b59eac306672aca2d54655a462e2ddb88e14e039d79dcdaf">+18/-18</a> </td> </tr> <tr> <td><strong>AddGroup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-dd49436305aadc01990cd6d9ea0abf97b964195920a1b49e64e8868fcc8afa6c">+19/-23</a> </td> </tr> <tr> <td><strong>AppGroups.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-402fb2a5338e60fdc3da489f4d50b5cf52f06b4e884a6fe7b82441c9fa5ea22c">+33/-22</a> </td> </tr> <tr> <td><strong>EditGroup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-6be040722d1492644adbf65250d44d28be37614d34600a73f74c816138727a40">+2/-2</a> </td> </tr> <tr> <td><strong>GroupRoles.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d7d1d9ec26ff77175b0e961e3e53e7ced45c9211eae8a0c00f7ac1cdac88ae14">+21/-8</a> </td> </tr> <tr> <td><strong>GroupServiceAccounts.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-b7afafc6b850c2d6edc2b855e78ff51d95d101937ec001a5790d130f4fb60695">+18/-7</a> </td> </tr> <tr> <td><strong>GroupUsers.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-114c767db76d4a09278c765d8aba39a1936c861488f39e7f0f6b3883499a3c40">+17/-6</a> </td> </tr> <tr> <td><strong>AddUpdateOrganization.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-bca5bebfa6d5f435715dc5fa948876de02fef95a84e3e663e5c7922d601b4b9d">+19/-20</a> </td> </tr> <tr> <td><strong>ListOrganizations.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-572ed99323d3e36d126074eccc10b68f6eef983d92f89d06b205fef0925c93a3">+30/-37</a> </td> </tr> <tr> <td><strong>Quota.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-30293eb5cb924f95356d5abd4588ce0f03765ac9d4446cf5b8cbacba23c6f979">+13/-9</a> </td> </tr> <tr> <td><strong>AddRole.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-fca7dd7f91da83de52bfc40e82451a8756001af43974d592de2e03a815b21c9b">+14/-14</a> </td> </tr> <tr> <td><strong>AppRoles.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-191634ef09436199f91f442968110a01f54ae46b5ceee67476f52613ad796db4">+27/-17</a> </td> </tr> <tr> <td><strong>EditRole.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-263b6bc7d29fdf8358c8437cd637f1350aa3733cc2706eae8ff00028686cc0f5">+3/-3</a> </td> </tr> <tr> <td><strong>AddServiceAccount.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-4e6840978e90be9195797d1b73b6cd1545ddac45cef84aa08701a9d66013c61b">+26/-28</a> </td> </tr> <tr> <td><strong>AddUser.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-47543c0488c8cb5bcf77e2bb4af9d0a5dd249993cd9577c4852f7950c7aaec91">+18/-26</a> </td> </tr> <tr> <td><strong>AddStream.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-78b8c84a558e60d942bacffee365633d074042e464be465eb6984b0ee5df82b9">+11/-12</a> </td> </tr> <tr> <td><strong>ImportPipeline.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670">+10/-12</a> </td> </tr> <tr> <td><strong>AssociateFunction.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-24a5b2df69327a6477227ea674939dea19dd6d393b4bfcf807089d71e6391152">+25/-18</a> </td> </tr> <tr> <td><strong>Condition.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-4c3e624233c9e0355c7ded3b26dc74971b867be63e24f92a5e639284f60639dd">+20/-17</a> </td> </tr> <tr> <td><strong>ScheduledPipeline.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf">+21/-19</a> </td> </tr> <tr> <td><strong>Stream.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-1a17ced9dc89022502cab0a6f9b97b413c2a2c4f8219733d063fc0180d361739">+26/-21</a> </td> </tr> <tr> <td><strong>PipelineEditor.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+21/-19</a> </td> </tr> <tr> <td><strong>StreamSelection.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-461440be35cc15b6b78700c8a61747ea9fb601a750af5292fa2d04b6fc96d595">+10/-10</a> </td> </tr> <tr> <td><strong>CreateReport.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-cf2258c64249d4f28b2a103558bce3af1c87f0b2f23fe0652b458b8c20bb9c64">+28/-30</a> </td> </tr> <tr> <td><strong>AddRegexPattern.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-a3783cfbdd32609bfff45ecfa23542854cad7ae60c3d29fedb832312a4de03dc">+9/-12</a> </td> </tr> <tr> <td><strong>ImportRegexPattern.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-e8e1bcb5a02311504d7d571090eab27a270aaa71cae185ad2703023e2e70a31e">+6/-6</a> </td> </tr> <tr> <td><strong>OrganizationManagement.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-21e2431538cb6b76e5ef5b367c6df8fc02ad8f6c1294f438be9937c7481ea9ff">+16/-2</a> </td> </tr> <tr> <td><strong>OrganizationSettings.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-54860a5d84362fe3ade0c3a50d7bacb02af3d21e1012517a0140e21f9ddabfc1">+11/-13</a> </td> </tr> <tr> <td><strong>FilterCreatorPopup.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-7fa80f0424ed3b2e60b0e3ba77493b0e5d3ef98ddcf40cd103fe433d326221d7">+16/-2</a> </td> </tr> <tr> <td><strong>en.json</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+5/-3</a> </td> </tr> <tr> <td><strong>SearchHistory.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-9dd167bd5e272b2057f53c16b905047eec00655a3552daad240a964d67a6f56d">+30/-18</a> </td> </tr> <tr> <td><strong>SearchSchedulersList.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1">+53/-27</a> </td> </tr> <tr> <td><strong>app.scss</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-5703d12504b0395cbfbbfad02a592bc391496026e5f03743102ce06c210ea05f">+414/-8</a> </td> </tr> <tr> <td><strong>Functions.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-ad825ec1b8d58aec9bf5d2553ea09394a30b22ac59d708bcf9e56168ca1daaf6">+1/-2</a> </td> </tr> <tr> <td><strong>IdentityAccessManagement.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-60b63024c98ee8927e12f9ebec93e99ba7ff419038cfe1cc57d49de1f6f342d6">+1/-1</a> </td> </tr> <tr> <td><strong>Ingestion.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-97b8e8ed2a1260a39442563c7447d4f6d4830a37d47258920d6f94a292cd2d77">+9/-9</a> </td> </tr> <tr> <td><strong>RealUserMonitoring.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8033/files#diff-dd099485ccafdabc8f9e63bf1610e7044680f3b7ae19a9e9c5645b351c7a8701">+3/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> |
||
|
|
0730d5f7a4 |
fix: landing page / Home page revamp (#6729)
### **User description**
1. This PR implements the latest UI of landing page / Home page with 2
charts for showing alerts and pipelines
2.
___
### **PR Type**
Enhancement
___
### **Description**
- Redesigned Home page layout and tiles
- Added alerts and pipelines charts
- Implemented theme-aware icons and styles
- Added loading state for summary fetch
___
### Diagram Walkthrough
```mermaid
flowchart LR
HomeView["HomeView.vue"]
SummaryAPI["Summary fetch & parsing"]
Charts["CustomChartRenderer charts"]
Tiles["Responsive metric tiles"]
Theming["Dark/Light computed icons & styles"]
Loading["Loading spinner state"]
HomeView -- "fetches org summary" --> SummaryAPI
SummaryAPI -- "sets metrics & statuses" --> Tiles
SummaryAPI -- "feeds alert/pipeline data" --> Charts
HomeView -- "applies theme classes" --> Theming
HomeView -- "shows while fetching" --> Loading
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>HomeView.vue</strong><dd><code>Home page redesign with
charts and theme-aware UI</code>
</dd></summary>
<hr>
web/src/views/HomeView.vue
<ul><li>Rebuilt template with responsive sections and tiles.<br> <li>
Added alerts pie and pipelines bar charts via CustomChartRenderer.<br>
<li> Introduced loading state, improved summary parsing, and theme-aware
<br>icons.<br> <li> Added extensive SCSS for dark/light theming and
layout.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6729/files#diff-9af441af191d3254ef5f9db603dca75486de7638cda41a3c050e7b3c33d68280">+568/-229</a></td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: ByteBaker <42913098+ByteBaker@users.noreply.github.com>
|
||
|
|
50490671db |
test: create org testcases (#8362)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add comprehensive org CRUD Playwright tests
- Implement org delete via API and UI
- Add helper to extract org identifier
- Fix verifyOrgNotExists usage and CI suite
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["New Playwright org tests"] -- "uses" --> CreateOrgPage["CreateOrgPage page object"]
CreateOrgPage -- "adds" --> DeleteAPI["deleteOrgViaAPI()"]
CreateOrgPage -- "adds" --> DeleteUI["deleteOrgViaUI()"]
CreateOrgPage -- "adds" --> GetIdentifier["getOrgIdentifierFromTable()"]
Workflow["GitHub Actions workflow"] -- "runs" --> Tests
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>createOrgPage.js</strong><dd><code>Enhance
CreateOrgPage with delete and identifier utilities</code></dd></summary>
<hr>
tests/ui-testing/pages/generalPages/createOrgPage.js
<ul><li>Import Playwright <code>expect</code>.<br> <li> Remove param
from <code>verifyOrgNotExists</code>.<br> <li> Add
<code>deleteOrgViaAPI</code> with Basic Auth DELETE call.<br> <li> Add
<code>deleteOrgViaUI</code> with fallback selectors and confirm
flow.<br> <li> Add <code>getOrgIdentifierFromTable</code> utility
parsing table cells.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-e3ff7268323b35f1798acb81fcd3541e0d2ee7c283124a064854ac9f6e67beb8">+113/-3</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>org.spec.js</strong><dd><code>New Playwright org
management E2E tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/GeneralTests/org.spec.js
<ul><li>Add full CRUD and validation test suite.<br> <li> Cover API/UI
creation, search, negatives, special chars.<br> <li> Implement cleanup
via API with UI fallback.<br> <li> Use test logger and base navigation
setup.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-ab00b9371adadcb16226e3afb422dcab9e6fb0b99a3b43766d4bdda6b12f4378">+556/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>usersOrg.spec.js</strong><dd><code>Fix
verifyOrgNotExists usage in user-org tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/GeneralTests/usersOrg.spec.js
<ul><li>Update <code>verifyOrgNotExists</code> call signature.<br> <li>
Remove redundant <code>expect</code> argument.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-0bf40521e88d2cf427617e49affa14d4ebe469b6da4ea4aeef4fe3e246eb24c7">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Run organization tests
in CI workflow</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add <code>org.spec.js</code> to CI run files.<br> <li> Ensure
org tests run in workflow.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8362/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
b863826d9f | fix: organization related issues (#8130) | ||
|
|
89cc402d64 |
test: add dashboard visualize test cases (#8303)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add visualize error message test
- Add quick mode toggle verification
- Use enhanced base fixtures for tests
- Enable visualize spec in CI workflow
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Visualize tests updated"] -- "use" --> Fixtures["Enhanced base fixtures"]
Tests -- "verify" --> ErrorMsg["Aggregation alias error message"]
Tests -- "verify" --> QuickMode["Quick mode toggle true"]
CI["Playwright workflow"] -- "enable" --> VisualizeSpec["visualize.spec.js run"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualise.js</strong><dd><code>Add helper to verify
quick mode toggle</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/visualise.js
<ul><li>Add quick mode toggle verification helper<br> <li> Check
aria-checked and CSS class</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-c14ac1db3e4aa86190d7525e8e38c410bcbbae7f46b01890e74937cc11be67e6">+37/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>page-manager.js</strong><dd><code>Export PageManager
default for imports</code>
</dd></summary>
<hr>
tests/ui-testing/pages/page-manager.js
- Export PageManager as default
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-565eab8b3c767ae50c9d05e591621d14f66b81af84d6b5ea6efe136c1c3933df">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>visualize.spec.js</strong><dd><code>Extend visualize
e2e tests and base setup</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/visualize.spec.js
<ul><li>Switch to enhanced base fixtures<br> <li> Add test for
aggregation alias error<br> <li> Add test for quick mode toggle true<br>
<li> Improve navigation and waits</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-d144f23552ec150db375c89e52c3a53ede9ff3fa5dcd6092694fbe0a308d22ec">+79/-8</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Enable visualize spec
in CI</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
- Enable visualize.spec.js in workflow run list
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8303/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+1/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
cabbacf970 |
test: e2e logs downloads test cases (#8001)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add comprehensive logs download E2E tests
- Implement download utilities in logs page
- Add ingestion via fetch with basic auth
- Update CI to run new tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
Tests["Playwright tests: logsDownloads.spec.js"]
Page["LogsPage: download + ingestion utilities"]
CI["CI workflow: include logsDownloads"]
App["Logs UI (existing)"]
Tests -- "uses" --> Page
CI -- "runs" --> Tests
Page -- "ingests data, verifies CSVs" --> App
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>Add ingestion and CSV
download utility methods</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add ingestion via page-evaluated fetch with Basic auth.<br> <li>
Add download helpers: setup, cleanup, wait, verify.<br> <li> Add UI
actions for download menus and SQL editor clear.<br> <li> Import fs/path
and minor selector utilities.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+149/-2</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsDownloads.spec.js</strong><dd><code>Add
comprehensive logs CSV download tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logsDownloads.spec.js
<ul><li>Add E2E tests for CSV downloads (normal/custom).<br> <li> Verify
row counts for multiple custom ranges.<br> <li> Add SQL mode LIMIT 2000
download test.<br> <li> Manage temp download directory per test
run.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-90f04cfe53caddf683cc4466e9e97af96d7eb90d636bf6b0f5cdc4b76dc395ac">+265/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Update CI to run new
download tests</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Include logsDownloads.spec.js in Logs-Queries suite.<br> <li>
Re-enable visualize.spec.js in Dashboards-Charts.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8001/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
f183ee7b78 |
test: e2e-logs-table-testcases (#8309)
### **PR Type**
Tests
___
### **Description**
- Expand logs table e2e test suite
- Add multi-field add/remove scenarios
- Validate field search and quick mode
- Check persistence across refresh and reselection
___
### Diagram Walkthrough
```mermaid
flowchart LR
Suite["Logs Table Field Management Suite"] --> AddMulti["Add multiple fields test"]
Suite --> RemoveMulti["Remove multiple fields test"]
Suite --> Search["Field search behavior tests"]
Suite --> Data["Field data presence validation"]
Suite --> SearchClear["Add with cleared search"]
Suite --> CaseIns["Search case insensitivity"]
Suite --> QuickMode["Quick mode toggle operations"]
Suite --> Persistence["Field persistence on stream reselection"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logstable.spec.js</strong><dd><code>Enhance logs table
Playwright test coverage</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logstable.spec.js
<ul><li>Rename describe to indicate full suite<br> <li> Add multiple new
e2e tests (add/remove/search)<br> <li> Add quick mode toggle and
persistence scenarios<br> <li> Adjust afterEach signature and
logging</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8309/files#diff-4d69d08f317ffc4a26179c74da0418c4db4184ce5f4f96a8df70af7a5a02008c">+291/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
62d5f2d9e2 |
test: dashboard max query range limit (#6813)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add dashboard max query range UI test
- Introduce StreamSettingsPage page object
- Enhance ManagementPage with streaming toggles
- Include maxquery test in CI workflow
___
### Diagram Walkthrough
```mermaid
flowchart LR
spec["Add maxquery Playwright spec"] -- uses --> pm["PageManager utilities"]
spec -- updates --> streamPage["StreamSettingsPage (new)"]
spec -- verifies --> uiWarn["Max duration warning visible"]
pm -- ensures --> streamingDisabled["Streaming disabled via ManagementPage"]
ci["GitHub Actions workflow"] -- includes --> spec
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>streams.js</strong><dd><code>New StreamSettingsPage for
stream max query updates</code>
</dd></summary>
<hr>
tests/ui-testing/pages/dashboardPages/streams.js
<ul><li>Add StreamSettingsPage class<br> <li> Implement max query range
update flow<br> <li> Add stable locators and waits<br> <li> Handle modal
close after save</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-2f4da2122993aa2151d167a8b60db3ebe382cf4d420a20d18c2b0bc6f38ecab5">+57/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>managementPage.js</strong><dd><code>ManagementPage
refactor and streaming toggle helpers</code>
</dd></summary>
<hr>
tests/ui-testing/pages/generalPages/managementPage.js
<ul><li>Refactor to modern style and quotes<br> <li> Add navigation
helpers with validation<br> <li> Add enable/disable streaming
utilities<br> <li> Improve selectors and waits</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-2e67acc9ff9099e14792ddeb7d0160268727fb064b85e6712f6434130cc23fdd">+162/-89</a></td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>maxquery.spec.js</strong><dd><code>Playwright spec for
dashboard max query warning</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/maxquery.spec.js
<ul><li>Add end-to-end test for max query limit<br> <li> Use PageManager
and StreamSettingsPage<br> <li> Validate warning visibility and API
response<br> <li> Restore stream setting after test</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-bfd34c3de558a41ff9397468dca4b855e2ee821b250087832f6f36fca8e2c36f">+107/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI includes max query
dashboard test</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add maxquery.spec.js to Dashboards-Core matrix<br> <li> Minor
YAML formatting adjustments<br> <li> Preserve existing test
matrices</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/6813/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+75/-70</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
261aea6929 |
test: playwright upload artifact error fixes (#8190)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add conditional artifact upload guards
- Make report artifact names matrix-aware
- Preserve stream name test comment clarity
___
### Diagram Walkthrough
```mermaid
flowchart LR
tests["Playwright tests"] -- "produce reports/coverage" --> outputs["Reports & Coverage"]
outputs -- "conditional check" --> uploadPR["Upload Playwright Report"]
outputs -- "conditional check" --> uploadCov["Upload Coverage Report"]
matrix["Matrix folder name"] -- "used in name" --> uploadPR
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>streamname.spec.js</strong><dd><code>Comment clarity
for ingestion loop</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Streams/streamname.spec.js
- Fix comment wording to singular
- No functional code changes
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8190/files#diff-49828efdc034005c097422deadc8b892bb1e54942d024e40d640fd10c5aa2793">+1/-1</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>Conditional artifact
uploads and better naming</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add hashFiles guard for report upload<br> <li> Rename report
artifact to include matrix folder<br> <li> Add guard for coverage report
upload<br> <li> Add explicit step name for report upload</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8190/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+5/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
182332a490 |
fix: enhance dashboard transpose validation in UI tests (#8167)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Strengthen transpose table validations
- Add waits for table render stability
- Handle missing/variant table structures
- Safeguard comparisons with conditional checks
___
### Diagram Walkthrough
```mermaid
flowchart LR
Start["Open config & apply transpose"] -- "capture headers & data" --> Initial["Initial table snapshot"]
Initial -- "click transpose" --> Action["Trigger transpose"]
Action -- "wait & detect table" --> Detect["Table presence check"]
Detect -- "tbody rows" --> Capture["Capture transposedData"]
Detect -- "fallback all rows" --> Capture
Capture -- "flatten headers vs values" --> Flatten["Flatten initial data"]
Flatten -- "sort & compare" --> Assert["Assert equality"]
Detect -- "no data" --> Error["Throw diagnostic error"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>dashboard-transpose.spec.js</strong><dd><code>Make
transpose test resilient and diagnostic</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/dashboards/dashboard-transpose.spec.js
<ul><li>Wait for table load and render before reads<br> <li> Robust
transposed data capture with fallbacks<br> <li> Conditional compare with
safer data flattening<br> <li> Diagnostic error path when no data
captured</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8167/files#diff-da631007cea76a4bc59e4acd1195b59ae4131cd5208d21a9c1f94d3913911dc4">+79/-27</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
24fca0d8bd |
test: e2e-add-to-table-tests (#8257)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Add logs table field management tests
- Extend LogsPage POM with field actions
- Integrate new test into Playwright workflow
- Include ingestion helper for test setup
___
### Diagram Walkthrough
```mermaid
flowchart LR
POM["LogsPage POM"]
Tests["logstable.spec.js"]
CI["playwright.yml matrix"]
Ingest["Ingestion helper"]
Tests -- "uses" --> POM
Tests -- "posts logs" --> Ingest
CI -- "runs" --> Tests
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logsPage.js</strong><dd><code>POM: field add/remove
helpers for logs table</code>
</dd></summary>
<hr>
tests/ui-testing/pages/logsPages/logsPage.js
<ul><li>Add hover, add, remove field helpers<br> <li> Add table header
visibility assertions<br> <li> Introduce negative assertion via source
column<br> <li> Minor waits for UI stability</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+25/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logstable.spec.js</strong><dd><code>Add logs table
field management E2E tests</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/Logs/logstable.spec.js
<ul><li>New E2E tests for add/remove field<br> <li> Test for field
persistence after refresh<br> <li> Ingestion helper posts logs before
tests<br> <li> Setup ensures quick mode is off</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-4d69d08f317ffc4a26179c74da0418c4db4184ce5f4f96a8df70af7a5a02008c">+149/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>playwright.yml</strong><dd><code>CI: include logs table
tests in workflow</code>
</dd></summary>
<hr>
.github/workflows/playwright.yml
<ul><li>Add logstable.spec.js to Logs-Core matrix<br> <li> Ensure CI
runs new tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8257/files#diff-7afcd2d8f7b49bda74843f209eefb7b2da45f7e7803bf2e4bd636699b76aa2d3">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
|
||
|
|
ed11cd1af3 |
test: add pytest for queries and assert hits (#8241)
### **PR Type**
Tests
___
### **Description**
- Add end-to-end SQL query validation tests
- Verify WHERE, match_all, ORDER BY semantics
- Enforce LIMIT and result consistency checks
- Validate CTE filtering and fields presence
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["New E2E tests"] -- "WHERE filter" --> B["Validate field equality"]
A -- "match_all" --> C["Check term presence"]
A -- "ORDER BY" --> D["Assert timestamp DESC"]
A -- "LIMIT" --> E["Enforce max hits"]
A -- "CTE" --> F["Validate filtered fields"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>test_search.py</strong><dd><code>Add comprehensive E2E
SQL query tests</code>
</dd></summary>
<hr>
tests/api-testing/tests/test_search.py
<ul><li>Add test for WHERE condition equality<br> <li> Add test for
match_all term presence<br> <li> Add test for ORDER BY timestamp
DESC<br> <li> Add tests for LIMIT and CTE behavior</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8241/files#diff-f3776a5bc02e67c163ed707f86b2192f47b73c641dde04b83523b95a74518141">+252/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
b9548ec4ac |
ci: fixed o2 strapi workflow notfication issue (#8218)
### **User description**
fixed o2 strapi workflow notfication issue
___
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Inline Strapi release notification in main workflow
- Remove redundant public release webhook workflow
- Use self-hosted runner for release job
- Fix Strapi endpoint path and query
___
### Diagram Walkthrough
```mermaid
flowchart LR
build["Build artifacts"] -- "needs" --> release["Release job (self-hosted)"]
release -- "Publish GitHub release" --> gh["GH Release"]
gh -- "Fetch release by tag" --> script["Github Script"]
script -- "POST payload" --> strapi["Strapi webhook /api/github-releases?status=draft"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>github-release-public.yml</strong><dd><code>Delete
redundant public release webhook workflow</code>
</dd></summary>
<hr>
.github/workflows/github-release-public.yml
<ul><li>Remove standalone release webhook workflow<br> <li> Consolidate
Strapi notification into main pipeline</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8218/files#diff-be2459e6c9f39dcebd00322123da352105ab53279e8b1a67bcb84de22e1f2841">+0/-66</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>release.yml</strong><dd><code>Add Strapi notification
and update runner</code>
</dd></summary>
<hr>
.github/workflows/release.yml
<ul><li>Switch release job to self-hosted runner<br> <li> Add Strapi
notification step post-release<br> <li> Fetch release by tag and clean
changelog<br> <li> Update webhook URL path and include auth headers</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8218/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34">+60/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
|
||
|
|
46fa42a319 |
fix: dashboard unit tests (#8111)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive dashboard utility unit tests - Introduce Sankey builder component tests - Export helper for PromQL series props - Temporarily skip flaky UI tests ___ ### Diagram Walkthrough ```mermaid flowchart LR utils["Dashboard utils tests"] -- add --> convertDataIntoUnitValue.spec component["Sankey builder tests"] -- add --> DashboardSankeyChartBuilder.spec promql["PromQL utils"] -- export helper --> getPropsByChartTypeForSeries ui_tests["UI specs"] -- skip flaky --> MenuLink.spec & AppSessions.spec ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>19 files</summary><table> <tr> <td><strong>convertDataIntoUnitValue.spec.ts</strong><dd><code>Expand coverage for formatting, colors, validation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9d8a984ed78af13e4d4424c605a3a55fe6ad2a3f7e403fad156ce17ffdc3bdd">+1869/-1</a></td> </tr> <tr> <td><strong>DashboardSankeyChartBuilder.spec.ts</strong><dd><code>Add full test suite for Sankey builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-97b54e2aa2abc946d6ebf5624f8985260fe426cd508965408ee966d829e30872">+1279/-0</a></td> </tr> <tr> <td><strong>MenuLink.spec.ts</strong><dd><code>Skip unstable external-link test case</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bd04ff500fc31583a430993830eed36cdf6254c2ce1a52b8a58a07b89bb9f825">+1/-1</a> </td> </tr> <tr> <td><strong>AppSessions.spec.ts</strong><dd><code>Skip flaky mount-time data fetch test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-8729444f05a0c753cc1f6fbb229e0ab7fd2ac46bd6ea454131ff80314d57a888">+1/-1</a> </td> </tr> <tr> <td><strong>convertSQLData.spec.ts</strong><dd><code>Add SQL data conversion unit tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1dc85f7550b15820974ad93fa461de48d24bc5cbed621bffddb27250211fa88d">+8632/-0</a></td> </tr> <tr> <td><strong>useDashboardPanel.spec.ts</strong><dd><code>Add unit tests for dashboard panel composable</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5dbd79fdde0cbbb7db569095fa062931286463da0b5e72b1fbe99f56116fa5e2">+4723/-0</a></td> </tr> <tr> <td><strong>AddPanel.spec.ts</strong><dd><code>Add tests for add panel flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5565bef51b35f1e9c8167eab0a22dc61c1d697dca45fe31f46cc8e5e9020ca74">+3540/-0</a></td> </tr> <tr> <td><strong>convertPromQLData.spec.ts</strong><dd><code>Add unit tests for PromQL conversion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2769044ec488ef4070c2e1a28ce23ec36b945e46c903b870f8b340cbd6b05211">+2086/-0</a></td> </tr> <tr> <td><strong>DashboardQueryBuilder.spec.ts</strong><dd><code>Add tests for dashboard query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f44793de54d6ac2d9c7b3dd504d8b1952cb6e6b2d984254a8466705387cb82ce">+1170/-0</a></td> </tr> <tr> <td><strong>VariableQueryValueSelector.spec.ts</strong><dd><code>Add tests for variable query selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7e096d825438fc75baab2ef87cb4a04ae7ac1206e5021b71ce42cedd0984e064">+1128/-0</a></td> </tr> <tr> <td><strong>VariablesValueSelector.spec.ts</strong><dd><code>Add tests for variables value selector</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-9f234d5a15777d62cf8cd6cc9f0d68fbc0419a87ef58fbdb11de8c46ed6d17cb">+1137/-0</a></td> </tr> <tr> <td><strong>DashboardMapsQueryBuilder.spec.ts</strong><dd><code>Add tests for maps query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-08c9fd103348dc8adea1c343bdaa25c176378a91656cda7f336dd622d8598fef">+1112/-0</a></td> </tr> <tr> <td><strong>viewDashboard.spec.ts</strong><dd><code>Add tests for dashboard view flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0db87f5ba2d11ee942a8054598d18568ce7542e23c830fcf5d802c4338e64937">+1175/-0</a></td> </tr> <tr> <td><strong>DashboardGeoMapsQueryBuilder.spec.ts</strong><dd><code>Add tests for geomap query builder</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d9b9e150ca7ac48d81236c882b2aa1f188e26fc2c2d13d69936c3288f305d803">+1079/-0</a></td> </tr> <tr> <td><strong>FieldList.spec.ts</strong><dd><code>Add tests for field list interactions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7273ac40c01bb36400c5dd32f86cce6576dc034cbec0010f6e93e22348578ed4">+971/-0</a> </td> </tr> <tr> <td><strong>DashboardErrors.spec.ts</strong><dd><code>Add tests for dashboard errors display</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a5d738d4bafc19b5e324d0c1826f73503a8539d8900cb2f80ff1284780865ac4">+898/-0</a> </td> </tr> <tr> <td><strong>CustomMarkdownEditor.spec.ts</strong><dd><code>Add tests for custom markdown editor</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c706715d0bc3f6b3b5e067d1926b0bd1e01b5aba291072cd612de4f9fed25c4f">+916/-0</a> </td> </tr> <tr> <td><strong>convertGeoMapData.spec.ts</strong><dd><code>Add unit tests for geomap conversion</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c75999bb5bc4dc27c5da1fad5d556614fa139b0b2cae7c2dc200c11133141937">+1061/-0</a></td> </tr> <tr> <td><strong>TabsSettings.spec.ts</strong><dd><code>Add tests for tabs settings component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-702a83e8e5bce6917f8cc2353dc224d37e667bdc39119f2176185cb4d2fe3b65">+820/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>convertPromQLData.ts</strong><dd><code>Export chart-type series props helper</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-68d70ba6c622911d48cdb567940dc404a4a6468b86c6d24fb54e5f1d8aa5ca2a">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>83 files</summary><table> <tr> <td><strong>DateTimePickerDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-384ca377212c39553c97970a8b57888b7aea566e739ed498304360111c7884b8">+498/-0</a> </td> </tr> <tr> <td><strong>AddDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f4eccc613c6abad9a1103fab41aa4f8eb66a74465aea5e3b077c7c31525e91e">+338/-0</a> </td> </tr> <tr> <td><strong>AddFolder.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3c70ca7fa32d6b2f499764c9bae0fcaf6d24a468eb71122865f79be4eed5bd45">+690/-0</a> </td> </tr> <tr> <td><strong>ExportDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5aba49ace28e114de7b4113ea725d4cabc6e343aa0bbc41fcb4250de0dfdb1b1">+409/-0</a> </td> </tr> <tr> <td><strong>MoveDashboardToAnotherFolder.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-05b3c990e345c5c11c1631547269b3644b652b78c4185b5123d3211218adb99d">+643/-0</a> </td> </tr> <tr> <td><strong>OverrideConfigPopup.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5c66103162fa701af8c78ba2bc62789ac8fa3f98f281309591ffd4da154fbc0e">+549/-0</a> </td> </tr> <tr> <td><strong>PanelContainer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d74ba5293a041ca029d5e9b8fec08d187e51a099451ab0372747d3ec175559a9">+497/-0</a> </td> </tr> <tr> <td><strong>PanelSchemaRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-897e6e12808163dfb85ea964ac97d45a8c50146672558b4d86de292daaf021ce">+827/-0</a> </td> </tr> <tr> <td><strong>QueryInspector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5db282f1e123d731ab4ed83d9500a87bbdd968f28c2c9f11179eaebed4f6bef6">+679/-0</a> </td> </tr> <tr> <td><strong>SelectDashboardDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-9c9dd44be67486631521fa4e8238a6e782d659afb0d71a39d394f22d21fa2d1e">+717/-0</a> </td> </tr> <tr> <td><strong>SelectFolderDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1ff4f3a09802e742b9cc26990c827d9331529a74bc6fc1678473821dc851e1b7">+658/-0</a> </td> </tr> <tr> <td><strong>SelectTabDropdown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3b923039e16f1a26cce563eaefcfe3405e551eaa12ac10c4382ac4d67d9564b2">+780/-0</a> </td> </tr> <tr> <td><strong>AddAnnotation.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-c096dd81c6463d55ba96fed549d28d7c83191639ccfd5dccece303a663bfdf9b">+242/-0</a> </td> </tr> <tr> <td><strong>BackGroundColorConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e23c4dbce4cba3fd64ac480f21ab9dbdeba66bac46b2277874ee307597980707">+651/-0</a> </td> </tr> <tr> <td><strong>ChartSelection.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-88bf57e3c40ed695321a7366d2f770f6c22e5d8c1adbb057d2a805333ad57de9">+177/-0</a> </td> </tr> <tr> <td><strong>ColorBySeries.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-92afcb1fa6c34cde082443bde1c478d9e98c0074b69f9f8f2343bb0880f2c183">+224/-0</a> </td> </tr> <tr> <td><strong>ColorBySeriesPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bd65ddc9813c2a5679b0aeb602afa55e8c15bb3b39dd48cd2489b2e6e9c51965">+224/-0</a> </td> </tr> <tr> <td><strong>ColorPaletteDropDown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-dbe43d77b398c5f6ede77ff1006a9b7d39b405842d6ca488061e1cbcde566117">+757/-0</a> </td> </tr> <tr> <td><strong>CommonAutoComplete.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f11b0763e1eea3c18bf2a69933d84a78df0f18b70a5b2fb3c50459c557ecc842">+588/-0</a> </td> </tr> <tr> <td><strong>ConfigPanel.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a4e717cd660ad6fa369629f8de524f4d57bf4f71b11d3244ce41b9ed9f0379d2">+617/-0</a> </td> </tr> <tr> <td><strong>CustomChartEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-00410898c60d1d7d4803eba301bf070d6b3765db0983c06b3d624c485dc1339e">+693/-0</a> </td> </tr> <tr> <td><strong>CustomHTMLEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b07faae78603a95d7cb54e4a6dde9381cad82952a76ad78e23a393fb12c635a2">+546/-0</a> </td> </tr> <tr> <td><strong>DashboardQueryEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-6a37b5f775011f4014399dcb3bae3b3d85403896533c008470b1c9712db96e82">+507/-0</a> </td> </tr> <tr> <td><strong>Drilldown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2ffe39b111c8981f0bbf7fcf19ff815fa97a24e007dcc17a23d0e7a2ed6388a1">+605/-0</a> </td> </tr> <tr> <td><strong>DrilldownPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-73d704d414f3ea194970a4f079bc1d9fedfdf8547875758133bc1e6e335523e5">+723/-0</a> </td> </tr> <tr> <td><strong>DrilldownUserGuide.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0015f582294fe5a56347aea7c3ce42e12100dd4363176fd8013683356aaba74a">+603/-0</a> </td> </tr> <tr> <td><strong>HistogramIntervalDropDown.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-bc0fbf96ee3ce5f28b7896b3c8f55605f68cdc3386cae22b9adc8c806af9e514">+368/-0</a> </td> </tr> <tr> <td><strong>MarkLineConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6e52e135ac6d21bd1d12226feee88ccaf24bad358890d17af3645ef7103d3a1">+503/-0</a> </td> </tr> <tr> <td><strong>OverrideConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e05709bd1fededda3d3ed90a47d9fddb8ae171e87c7f25d07ecca1e6a8ab33ee">+571/-0</a> </td> </tr> <tr> <td><strong>PanelSidebar.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b5378e7a3c198d89d8de88fc9bb3ccb5829c7572d860c42d46b565fd37a2894">+622/-0</a> </td> </tr> <tr> <td><strong>QueryTypeSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3094340ad57af51f1bcbad3b63a8ab860a46905ab79997289b89b601553934fd">+777/-0</a> </td> </tr> <tr> <td><strong>SortByBtnGrp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7e52dbb6902695ae38e15e980407d761d528871631365a12726f9731efaccec2">+405/-0</a> </td> </tr> <tr> <td><strong>ValueMapping.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4920ea2ac96411628202d5350adae25ea97a1cd8eede8d8bf5252e5d468d82f8">+424/-0</a> </td> </tr> <tr> <td><strong>ValueMappingPopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ef4bd7d95957a65c1efdba2d541a0242d249adc0381efcfd2e1c684c531fab6b">+553/-0</a> </td> </tr> <tr> <td><strong>ChartRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f005709a26e4b51de30457223129ce0ca84a29c5f69a8d7c84fa35b5f3376fd6">+464/-0</a> </td> </tr> <tr> <td><strong>CustomChartRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e5f37800aafd21baeda455df4656da5221369bb6d72880a28294b8a1a83b5f30">+679/-0</a> </td> </tr> <tr> <td><strong>GeoMapRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7bf374bb429eafe8b265c34e63fe99df1c05e102be38125bcf3234756f95f12c">+878/-0</a> </td> </tr> <tr> <td><strong>HTMLRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-128fd699e9ae1552077c27185db37871b57e0002558f89377ec64b4e29e1d7f7">+492/-0</a> </td> </tr> <tr> <td><strong>MapsRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-588141a6c90f09e4b39ea53d03c1334c0b5cc42c9f35272a9f2eeb6e2ddb852e">+490/-0</a> </td> </tr> <tr> <td><strong>MarkdownRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-63eed3fbb6882be90c70e833f9f64e9e8c6511e4c40162aa5c1a7662fc79469d">+600/-0</a> </td> </tr> <tr> <td><strong>TableRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-550a0a669838c47473442a7d37407fead8b7cb2a05121880dd2c0522022c8c3f">+555/-0</a> </td> </tr> <tr> <td><strong>AddSettingVariable.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3f3a2cea87e91a038695bdd8406d72680e4b665bea7a7186a84fbef91c8bdf81">+661/-0</a> </td> </tr> <tr> <td><strong>GeneralSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-2b3e3d2794669f6b030b6752ef262b96d6504cb1bcd661a3cd248c21df412064">+767/-0</a> </td> </tr> <tr> <td><strong>SinglePanelMove.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-ba25253c9f76317afde347d4d6a0afbcc95bcf847640ab81a1b40fa0bd4b4bc5">+565/-0</a> </td> </tr> <tr> <td><strong>TabsDeletePopUp.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53eadbd58dae03e5fbf9db545d58a03d0d504725544b0500d7b16c5d041668d3">+611/-0</a> </td> </tr> <tr> <td><strong>VariableAdHocValueSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-82c2b639609e68e8601435e82ae21dcda2ff626853b3a5e310c69e237c34c38d">+422/-0</a> </td> </tr> <tr> <td><strong>VariableCustomValueSelector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-8ce1eb841c0ae350a6bb846705ff9d085d1ae2c97ab409b1ff533ef7bcebfa8f">+635/-0</a> </td> </tr> <tr> <td><strong>VariableSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fb9c343df2d52c854489057d4a66a1b6c4052637ef12dca16c9b77c0a4e680f4">+696/-0</a> </td> </tr> <tr> <td><strong>VariablesDependenciesGraph.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-153d420e39a1fdf9b0918f8b765b21a5e9fe6fed4b142fd1c9e24af43c0bb525">+397/-0</a> </td> </tr> <tr> <td><strong>DashboardHeader.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7ec062f2fc27df156ca18a22557c1f80426e3fa82c3cfd6386f48efc9e73f757">+440/-0</a> </td> </tr> <tr> <td><strong>AddTab.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-25b77cc0d60a268fc0fbd413e53b1c0ace69164ffd58dc0b0081717e4773b365">+767/-0</a> </td> </tr> <tr> <td><strong>TabList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1c0ad8f6163d343eba185ac20d0fe84478afd5975242abc0a957d7ac74a8a5a9">+604/-0</a> </td> </tr> <tr> <td><strong>ViewPanel.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-177dbf7e92561bc76e13819fd7a1d681f77b845071a7c0901857a26660b3ba54">+744/-0</a> </td> </tr> <tr> <td><strong>ApiDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-53095dbafa0cb9c6eed90240cb8af9f89d118168f6af76bdf51267a667ccff2d">+550/-0</a> </td> </tr> <tr> <td><strong>ErrorsDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1330edb3964758b7c9cfbdfb077eac5fcce30b8b4d2f204d69ab71c4041d37c5">+178/-0</a> </td> </tr> <tr> <td><strong>WebVitalsDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-62eb2eceb30d2aa28e78d4ee898d09aae3d1f0fa176d4bca91055b50024e6c9f">+547/-0</a> </td> </tr> <tr> <td><strong>VisualizeLogsQuery.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-fdecf623f9a4bdfe679c6c2e4424f31cbce4a1234cb45e1de472189a46c9d4e2">+674/-0</a> </td> </tr> <tr> <td><strong>TraceBlock.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1406f52daa846db3febbb595e81c192166b9e69bc190c5039b6c4866412b877a">+1/-1</a> </td> </tr> <tr> <td><strong>alertChartData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-5ab33266e226684ae77d259392edb382f71436edec442411a5500451ce316b31">+259/-0</a> </td> </tr> <tr> <td><strong>calculateGridForSubPlot.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f7067cef10cdf9d66fc91a46516c9f2bc0209489bc47fb3d1446666485269680">+374/-0</a> </td> </tr> <tr> <td><strong>colorPatette.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d266bf5ce0a458ec9fa8120ff85c252f7a671dd6df9aece83daf7c7b05b50ed1">+576/-0</a> </td> </tr> <tr> <td><strong>convertCustomChartData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-228c0f06dd35f43d80dc9f671803fba74ac7e218c1606247d1e44259a18b426e">+771/-0</a> </td> </tr> <tr> <td><strong>convertDashboardSchemaVersion.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d32a1607489b29014dd8ecad34358644be46d2735cf49dfa5151671e591d6360">+537/-0</a> </td> </tr> <tr> <td><strong>convertPanelData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d798f99807f72b07f58e09bfe8723fdcee3dcd747f328436ef6bbd7d8f5afa36">+889/-0</a> </td> </tr> <tr> <td><strong>convertSankeyData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-e9dce93200dba86a0e13d22ec5a0b5e0f4c5fb8349c904c8780fdb6fe675f4ae">+588/-0</a> </td> </tr> <tr> <td><strong>convertTableData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b3b39fac4e8b48b3ee80827502ece784d8e52f56fd2f1d80acac353fd3a9fe3f">+599/-0</a> </td> </tr> <tr> <td><strong>datetimeStartPoint.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-7c56f19e7b4c6f5738c814cb013f698fdfd065286ef4539e14a868e8e114a1c8">+214/-0</a> </td> </tr> <tr> <td><strong>getAnnotationsData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4b12626e491ea366087b3cdc2eb66012bf45555504313ca4664f3ae4d93b6e08">+351/-0</a> </td> </tr> <tr> <td><strong>useCustomDebouncer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f6c3bc11a1cdc66a9108245e3ec6080bf4f6f0b5a2eaea679546c0b1f00968c2">+307/-0</a> </td> </tr> <tr> <td><strong>variablesDependencyUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-1a8fd83eb7a8b0c906e668e7e4120a40f7b9853d5bfb485a7c569ff980e4a780">+523/-0</a> </td> </tr> <tr> <td><strong>variablesUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-769aea99ac476a78b01cb3bb4221b0a0f0d5fa99f3dbc8c77022088ed8024f1b">+533/-0</a> </td> </tr> <tr> <td><strong>sqlUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f22df136a6cdfbacf2b637d4902002337620c8e981dbacfdd705455ff899f12d">+1283/-8</a></td> </tr> <tr> <td><strong>visualizationUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-3312f2b98f34814e89192700cc856231923839bdcd3ea687f271242762b4b3bc">+55/-0</a> </td> </tr> <tr> <td><strong>DashboardJsonEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-4dfda31e9159f979559afc36652350d155429b73336f014017b27ff96ad58dcc">+551/-0</a> </td> </tr> <tr> <td><strong>DashboardSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b3e95fd1dfffba34ec05ed6333941f07ee79585feb5e8203eb5958919338f">+640/-0</a> </td> </tr> <tr> <td><strong>Dashboards.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-a8059d6830fa3c72dbe023f76ac813661d62871a379baa30c05204ad86c92699">+813/-0</a> </td> </tr> <tr> <td><strong>ImportDashboard.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-b29b42b94a3219b4074b132168c0b5f5b93e737dc557ba7b930d14455b38b267">+827/-0</a> </td> </tr> <tr> <td><strong>PanelLayoutSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-34bcd5c5f9b7a2a682f4d4e9c10e3ab4f13a4cc54a6a20bb543f11ae8286d5a1">+423/-0</a> </td> </tr> <tr> <td><strong>RenderDashboardCharts.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f76e3b54dc7bfd768172c8faba707c7e31bf0516837cb9073bbdf04823f67602">+700/-0</a> </td> </tr> <tr> <td><strong>ScheduledDashboards.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-f54afa04727c65f2050699e063d693d6fb1833c8e3f1f7b25002de89ab5bb2ff">+519/-0</a> </td> </tr> <tr> <td><strong>AddCondition.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-0655e4082a18c9f229d04340341bb32474ae46b3d6e29b29009ef06dcc12e54c">+425/-0</a> </td> </tr> <tr> <td><strong>DashboardFiltersOption.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-d3e73ec3d32f9068b22b3697ba8a23e3100285b7c92cc86f7d7e88477bb29bba">+878/-0</a> </td> </tr> <tr> <td><strong>Group.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8111/files#diff-556364c74c348eba28f5d8bad6fb23b956008d3f6b9171316ea3ee12009201bd">+718/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |