mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 08:09:22 +00:00
9b971f0b7fa4a7eb6d245cd72e6af89d24efb176
978
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
980949392a |
fix: alert module code splitting (#8611)
### **User description** add alert module splitting into util files ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Extract alert logic into utils modules - Refactor AddAlert to use utilities - Add SQL/where/query builder helpers - Update tests to new utilities ___ ### Diagram Walkthrough ```mermaid flowchart LR AddAlertVue["AddAlert.vue (component)"] -- uses --> alertQueryBuilder["utils/alerts/alertQueryBuilder.ts"] AddAlertVue -- uses --> alertPayload["utils/alerts/alertPayload.ts"] AddAlertVue -- uses --> alertValidation["utils/alerts/alertValidation.ts"] AddAlertVue -- uses --> alertDataTransforms["utils/alerts/alertDataTransforms.ts"] AddAlertVue -- uses --> alertSqlUtils["utils/alerts/alertSqlUtils.ts"] AddAlertSpec["AddAlert.spec.ts"] -- import --> alertQueryBuilder validateAlertsSpec["utils/validateAlerts.spec.ts"] -- import --> alertValidation ``` <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>2 files</summary><table> <tr> <td><strong>AddAlert.spec.ts</strong><dd><code>Tests use extracted generateWhereClause utility</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-84362398fea8abd9acf30f4f40ba8d4cf27348677454017bd4e6f568d5176ac6">+13/-9</a> </td> </tr> <tr> <td><strong>validateAlerts.spec.ts</strong><dd><code>Point validation tests to new module path</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-8ba923d1b6e78fb3134f2775e51fce66e5171bcfb001fcac4837639313c55b4a">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>7 files</summary><table> <tr> <td><strong>alertDataTransforms.ts</strong><dd><code>New FE/BE condition transform and group ops</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-7db039e3a78f8c5306c84382f42b071f680cf4f18f84d17cedcc8d484a8b113f">+116/-0</a> </td> </tr> <tr> <td><strong>alertPayload.ts</strong><dd><code>New payload build and save alert helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-914546afcdb9f9604ad6efe448d8b373fa3f24be1ba7cbc75bd18bf8c419ab3c">+211/-0</a> </td> </tr> <tr> <td><strong>alertQueryBuilder.ts</strong><dd><code>New SQL and WHERE clause builder utilities</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-5c829ce5fd3ad2f5ef359df5976e6adfc52eaa6b5f249f594c8b8a588acf8b3e">+204/-0</a> </td> </tr> <tr> <td><strong>alertSqlUtils.ts</strong><dd><code>New SQL parser wrapper for column checks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-fea836214c2a77154fb97a519b6fa4bd0315acbffb9b3d7d94738bf073d5eabd">+33/-0</a> </td> </tr> <tr> <td><strong>alertValidation.ts</strong><dd><code>Consolidated alert validation and JSON save flow</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-3164a4a58c1865cfcbbba084ac339664c99564545be4d57504dd406d59d8ad4a">+649/-0</a> </td> </tr> <tr> <td><strong>AddAlert.vue</strong><dd><code>Refactor to use new alert utils modules</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+110/-681</a></td> </tr> <tr> <td><strong>ScheduledAlert.vue</strong><dd><code>UI tweaks and cleanup of unused logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999">+22/-165</a></td> </tr> </table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>validateAlerts.ts</strong><dd><code>Remove legacy validation (replaced by utils)</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8611/files#diff-31dfccb7ecf243d062992787997f3e29b26579144def6a562e7f138cf3a73ed6">+0/-313</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
3dde03ec9f |
fix: update quick_mode parameter handling in logs URL based on configuration for drilldown and go to logs in dashboard (#8586)
### **PR Type**
Bug fix
___
### **Description**
- Respect `quick_mode_enabled` in logs URL
- Apply to drilldown and go-to-logs flows
- Minor watch formatting cleanup
___
### Diagram Walkthrough
```mermaid
flowchart LR
Config["zoConfig.quick_mode_enabled"]
Builder1["PanelContainer: build logs URL"]
Builder2["PanelSchemaRenderer: build logs URL"]
URLParam["Set quick_mode=true/false"]
Format["Refactor watch() formatting"]
Config -- controls --> Builder1
Config -- controls --> Builder2
Builder1 -- sets --> URLParam
Builder2 -- sets --> URLParam
PanelSchemaRenderer --> Format
```
<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>PanelContainer.vue</strong><dd><code>Conditional
quick_mode in logs URL construction</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelContainer.vue
<ul><li>Set <code>quick_mode</code> based on
<code>zoConfig.quick_mode_enabled</code>.<br> <li> Remove unconditional
<code>quick_mode=false</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8586/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+5/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>PanelSchemaRenderer.vue</strong><dd><code>Apply
config-driven quick_mode and tidy watchers</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelSchemaRenderer.vue
<ul><li>Set <code>quick_mode</code> based on
<code>zoConfig.quick_mode_enabled</code>.<br> <li> Keep histogram
hidden; preserve other params.<br> <li> Reformat watch() for
readability.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8586/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+12/-5</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>
___
|
||
|
|
37675d5320 |
fix: remove drilldown and compare against config on visualization rc7(#8534) (#8562)
### **PR Type**
Bug fix
___
### **Description**
- Disable drilldown on Logs page
- Guard chart compare against Logs context
- Expose page key to template
___
### Diagram Walkthrough
```mermaid
flowchart LR
ConfigPanel["ConfigPanel.vue"]
DrilldownGuard["Add 'pageKey !== logs' guard"]
CompareGuard["Guard compare UI for logs"]
ExposeKey["Return dashboardPanelDataPageKey from setup()"]
ConfigPanel -- "update Drilldown v-if" --> DrilldownGuard
ConfigPanel -- "update compare v-if" --> CompareGuard
ConfigPanel -- "export key to template" --> ExposeKey
```
<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>ConfigPanel.vue</strong><dd><code>Disable
drilldown/compare when page key is logs</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/ConfigPanel.vue
<ul><li>Add <code>dashboardPanelDataPageKey !== 'logs'</code> to
Drilldown v-if.<br> <li> Add same guard to compare/series options v-if
with <code>!promqlMode</code>.<br> <li> Return
<code>dashboardPanelDataPageKey</code> from setup exports.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8562/files#diff-c3a6e64dff02b58bb7cdc3f0668990b41ff41544b4c5e991bbcd989ad4bba3f8">+5/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
|
||
|
|
b2535e2fa0 |
fix: series list issue for color override config on pie chart (#8540)
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Correct series extraction for pie/donut
- Fallback to existing options logic
- Prevent invalid items via filtering
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["panelType check"] -- "pie/donut" --> B["extract from data[].name"]
A -- "other types" --> C["use existing options"]
B -- "build series list" --> D["return { series: names }"]
C -- "fallback" --> E["return options or empty series"]
```
<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>ColorBySeries.vue</strong><dd><code>Properly derive
series for pie/donut charts</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/ColorBySeries.vue
<ul><li>Add panel type detection for pie/donut.<br> <li> Extract series
names from data[].name.<br> <li> Filter out invalid data items.<br> <li>
Preserve fallback to existing options.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8540/files#diff-2783259507b45f0b3664d9be68ca236690bbbf151472da3fa8b552d230af5b3f">+16/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
6e49099b5f |
fix: sql query editor rapidly increases (#8435)
### **User description** This PR fixes the issue in #8433 ___ ### **PR Type** Bug fix ___ ### **Description** - Prevent SQL editor height growth - Set minimum height to 18rem - Compute height via inline style binding - Adjust for error message presence ___ ### Diagram Walkthrough ```mermaid flowchart LR UI["Alert Form UI"] -- contains --> Editor["SQL Query Editor"] ErrorState["SQL Error State"] -- toggles --> EditorHeight["Dynamic Height Style"] Editor -- renders with --> EditorHeight ``` <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>ScheduledAlert.vue</strong><dd><code>Stabilize SQL editor height with dynamic styles</code> </dd></summary> <hr> web/src/components/alerts/ScheduledAlert.vue <ul><li>Remove class-based height toggling.<br> <li> Add inline dynamic height style based on error state.<br> <li> Increase minimum editor height to 18rem.<br> <li> Use calc values: 100%-150px or 100%-80px.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8435/files#diff-5e143a17ab0fa5d7817f6d9301667fb5597236f27184248c7a71728e85b8d999">+4/-2</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
6e75dc0e62 |
feat: add bulk enable/disable for alert and pipelines (#8438)
### **User description**
This adds two apis, one for bulk enable/disable of pipeline and one for
bulk enable/disable of alerts.
___
### **PR Type**
Enhancement
___
### **Description**
- Add bulk enable/disable for alerts
- Add bulk enable/disable for pipelines
- Introduce enterprise permission checks helper
- Update auth bypass for bulk endpoints
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["New models: Bulk request/response (alerts, pipelines)"]
B["Alerts: POST /v2/{org_id}/alerts/bulk/enable"]
C["Pipelines: POST /{org_id}/pipelines/bulk/enable"]
D["Enterprise permission check: check_resource_permissions"]
E["Router: register bulk endpoints"]
F["Auth: bypass for /bulk/enable paths"]
A -- "used by" --> B
A -- "used by" --> C
D -- "enforced in" --> B
D -- "enforced in" --> C
E -- "exposes" --> B
E -- "exposes" --> C
F -- "allows unauth extraction for" --> B
F -- "allows unauth extraction for" --> C
```
<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>6
files</summary><table>
<tr>
<td><strong>auth.rs</strong><dd><code>Allow auth extractor bypass for
bulk enable endpoints</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+1/-0</a>
</td>
</tr>
<tr>
<td><strong>responses.rs</strong><dd><code>Add alerts bulk enable
request/response models</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-224027f90893122eea28e35778467acf1a4b5572ce612fc9bc9ec44ca8ebd9fb">+12/-0</a>
</td>
</tr>
<tr>
<td><strong>pipelines.rs</strong><dd><code>Add pipelines bulk enable
request/response models</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-61bb28d7091130297c917a0530d96202fcb4b073b514410531f9fe71acfc814f">+12/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Implement alerts bulk enable
endpoint with permissions</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-83431801d27626ef27482e67b62661f900043544a45ddf958bd027cf2fa3bd8d">+91/-2</a>
</td>
</tr>
<tr>
<td><strong>pipeline.rs</strong><dd><code>Implement pipelines bulk
enable endpoint with permissions</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-c69f4f94eee97ce226caddc497b2adf89e26869f2d72b0d0206dc31ab2714daf">+89/-1</a>
</td>
</tr>
<tr>
<td><strong>utils.rs</strong><dd><code>Add generic enterprise resource
permission checker</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-96bb9f4a8f547c821f26c957e8505d0437095b08d2b36687531f71565d287bd6">+38/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>mod.rs</strong><dd><code>Register bulk enable endpoints in
service routes</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+2/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>openapi.rs</strong><dd><code>Expose bulk enable endpoints in
OpenAPI</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8438/files#diff-edb8ce232c0cd08366879f642788a75d99f6bab64b4c0e77391281fdb9241e90">+2/-0</a>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
|
||
|
|
913c41c04e | fix: general management UI in sync (#8443) | ||
|
|
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>
|
||
|
|
c68cbcb8da |
fix: update table chart no data validation logic (#8422)
### **PR Type**
Bug fix
___
### **Description**
- Fix table chart no-data validation
- Separate table logic from other charts
- Ensure presence check on x/y aliases
- Prevent false negatives with single row
___
### Diagram Walkthrough
```mermaid
flowchart LR
Renderer["PanelSchemaRenderer.vue"]
Charts["Non-table charts validation"]
Table["Table-specific validation"]
Metric["Metric validation (unchanged)"]
Renderer -- "refine validation" --> Charts
Renderer -- "add distinct logic" --> Table
Renderer -- "keep existing flow" --> Metric
```
<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>Refine table
chart data validation logic</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelSchemaRenderer.vue
<ul><li>Remove table from generic chart validation branch.<br> <li> Add
table-specific data presence checks.<br> <li> Allow single-row tables
with any x/y value.<br> <li> Keep gauge and others using stricter alias
checks.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8422/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+10/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
6479cb8f5a |
fix: axisvalue issue on go to logs page drilldown #8404 (#8405)
### **PR Type**
Bug fix
___
### **Description**
- Add `__axisValue` to drilldown payload
- Fallback to name when value missing
- Improve logs page drilldown accuracy
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["Drilldown event params"] --> B["Extract value/name"]
B --> C["Set __axisValue from value[0]"]
B --> D["Fallback to name if missing"]
C --> E["Build drilldown payload"]
D --> E
```
<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>Add robust
axis value to drilldown data</code>
</dd></summary>
<hr>
web/src/components/dashboards/PanelSchemaRenderer.vue
<ul><li>Add <code>__axisValue</code> to the drilldown data object.<br>
<li> Use first element of <code>value</code> array when available.<br>
<li> Fallback to <code>name</code> when <code>value[0]</code> is
absent.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8405/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+3/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
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> |
||
|
|
9bdcc8d3f8 |
fix: removed the check for show add destination button (#8402)
### **PR Type**
Bug fix
___
### **Description**
- Enable Add Destination button always
- Remove templates-length disable condition
___
### Diagram Walkthrough
```mermaid
flowchart LR
BTN["Add Destination Button"] -- remove disable binding --> ENABLED["Always enabled"]
```
<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>PipelinesDestinationList.vue</strong><dd><code>Remove
conditional disable on Add button</code>
</dd></summary>
<hr>
web/src/components/alerts/PipelinesDestinationList.vue
<ul><li>Removed <code>:disable="!templates.length"</code> from Add
button.<br> <li> Button now clickable regardless of templates
array.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8402/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+0/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
|
||
|
|
7bf9770b9a |
fix: sorting issue in query management page (#8305)
### **User description**
This PR fixes the issue that is related to sorting doesn't work properly
for more number of records for execution duration and query range
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Centralize duration utilities in `zincutils`
- Fix sorting by using raw seconds
- Render durations via table slots
- Improve query range formatting
___
### Diagram Walkthrough
```mermaid
flowchart LR
utils["zincutils.ts: add time helpers"] -- "import/use" --> runningList["RunningQueriesList.vue: slot-based render"]
utils -- "import/use" --> summaryList["SummaryList.vue: slot-based render"]
runningQueries["RunningQueries.vue: data shaping"] -- "use raw values" --> tables["Tables sort correctly"]
```
<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>zincutils.ts</strong><dd><code>Add shared time/duration
utilities</code>
</dd></summary>
<hr>
web/src/utils/zincutils.ts
<ul><li>Add <code>localTimeToMicroseconds</code> helper.<br> <li> Add
<code>getDuration</code> returning seconds and formatted.<br> <li>
Export these utilities for reuse.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8305/files#diff-d3d59688cccdcc6c84ebe88b698c6910030abecc3125f4c0ef81b0df023699ba">+23/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>RunningQueriesList.vue</strong><dd><code>Render
durations via slots using utils</code>
</dd></summary>
<hr>
web/src/components/queries/RunningQueriesList.vue
<ul><li>Add table slots to format <code>duration</code> and
<code>queryRange</code>.<br> <li> Import and expose
<code>getDuration</code> and <code>durationFormatter</code>.<br> <li>
Display duration from <code>created_at</code> via util.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8305/files#diff-eb568491630bd1b80935cc0b02498d40274ede0e5be78593a0b49ca17fbbe627">+13/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>SummaryList.vue</strong><dd><code>Format summary
durations with table slots</code>
</dd></summary>
<hr>
web/src/components/queries/SummaryList.vue
<ul><li>Add slots to format <code>duration</code> and
<code>queryRange</code>.<br> <li> Import and expose
<code>durationFormatter</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8305/files#diff-d844d0a406c5fe3b58bc254f838bfa51352721174666ebd43bbf008aa6db6f5f">+12/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>RunningQueries.vue</strong><dd><code>Use raw values and
shared duration util</code>
</dd></summary>
<hr>
web/src/components/queries/RunningQueries.vue
<ul><li>Import <code>getDuration</code> from utils.<br> <li> Keep
<code>duration</code> and <code>queryRange</code> as raw values.<br>
<li> Remove local <code>getDuration</code> impl.<br> <li> Adjust
pagination code formatting.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8305/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+6/-14</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
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> |
||
|
|
15177ad58c |
feat: Display Alert name on the frontend - QueryManager View (#8378)
### **User description**
# PR Type
Fix / Enhancement
# Description
Similar to Dashboard names, we are also going to display the alert names
on the frontend. To do this we need to include the alert_name detail in
the SearchEventContext payload which will be tracked by the
QueryManager. The frontend update will make the alert name be displayed
as query_source - just like dashboard name.
___
### **PR Type**
Enhancement
___
### **Description**
- Add `alert_name` to search context
- Propagate field through proto and conversions
- Display alert source in RunningQueries
- Simplify test context init with defaults
___
### Diagram Walkthrough
```mermaid
flowchart LR
ProtoDef["cluster/search.proto adds 'alert_name'"] -- regenerates --> ProtoGen["generated cluster.rs includes alert_name"]
ProtoGen -- maps via From --> MetaModel["meta/search.rs SearchEventContext"]
AlertsEval["alerts/alert.rs evaluate()"] -- sets --> MetaModel
MetaModel -- exposed in usage --> Frontend["RunningQueries.vue shows alert name"]
```
<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>search.rs</strong><dd><code>Add alert_name to
SearchEventContext and mappings</code>
</dd></summary>
<hr>
src/config/src/meta/search.rs
<ul><li>Add <code>alert_name</code> field to
<code>SearchEventContext</code>.<br> <li> Map <code>alert_name</code> in
From/Into proto conversions.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+4/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>alert.rs</strong><dd><code>Set alert_name in alert
evaluation context</code>
</dd></summary>
<hr>
src/service/alerts/alert.rs
<ul><li>Populate <code>search_event_ctx.alert_name</code> during alert
evaluation.<br> <li> Initialize mutable context then assign alert
name.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-574be3504bf4d855c65fd3d7a10797a970237ff552edac4962b474b3983e094e">+3/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>RunningQueries.vue</strong><dd><code>Display alert name
as query source in UI</code>
</dd></summary>
<hr>
web/src/components/queries/RunningQueries.vue
<ul><li>Compute <code>query_source</code> based on
<code>search_type</code>.<br> <li> Show <code>folder/dashboard</code>
for dashboards.<br> <li> Show <code>alert_name(alert_key)</code> for
alerts.<br> <li> Fallback to <code>-unknown-</code> when missing.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+10/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>search.proto</strong><dd><code>Proto: add alert_name to
SearchEventContext</code>
</dd></summary>
<hr>
src/proto/proto/cluster/search.proto
- Add `optional string alert_name = 8;` to `SearchEventContext`.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+1/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>cluster.rs</strong><dd><code>Regenerated proto includes
alert_name field</code>
</dd></summary>
<hr>
src/proto/src/generated/cluster.rs
- Include optional `alert_name` with tag 8 in generated struct.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+2/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>ingestion.rs</strong><dd><code>Simplify test context
with default struct update</code>
</dd></summary>
<hr>
src/service/self_reporting/ingestion.rs
<ul><li>Use <code>..Default::default()</code> to fill unused context
fields.<br> <li> Keep only <code>dashboard_id</code> explicitly set in
test.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8378/files#diff-3edd5f4ed1eed0f765b7b450ef0fbf587632e6b22302006a5e397049e297057f">+1/-6</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
dce3f30283 |
feat: provided search on indextype selection along with name field. (#8333)
### **PR Type**
Enhancement
___
### **Description**
- Extend filter to search index types
- Support label-to-value index type matching
- Handle empty search gracefully
- Refactor loop with match flag
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["User search term"] -- "normalize to lowercase" --> B["searchTerm"]
B -- "map labels→values from streamIndexType" --> C["labelToValueMap"]
D["Rows iteration"] -- "name match OR index_type match" --> E["match = true"]
C -- "label lookup equals stored value" --> E
E -- "if match push row" --> F["filtered 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>Enhancement</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>schema.vue</strong><dd><code>Add index type label-aware
filtering</code>
</dd></summary>
<hr>
web/src/components/logstream/schema.vue
<ul><li>Add lowercase search term handling.<br> <li> Map index type
labels to values for matching.<br> <li> Support matching by name and
index_type in both modes.<br> <li> Refactor loop using a match flag and
early checks.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8333/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+52/-9</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
5d6700fa58 | feat: add per-stream flatten level configuration (#8353) | ||
|
|
9235fa7bc3 |
feat: highlight stream fields when part of default environment quick … (#8336)
### **User description**
…mode settings
___
### **PR Type**
Enhancement, Documentation
___
### **Description**
- Highlight env quick mode fields in schema
- Add tooltip and icon for quick mode
- Localize tooltip message in English
___
### Diagram Walkthrough
```mermaid
flowchart LR
SchemaVue["schema.vue component"] -- checks --> StoreQuickFields["store.state.zoConfig.default_quick_mode_fields"]
SchemaVue -- renders --> NameCell["Field name cell with icon + tooltip"]
ThemeStore["store.state.theme"] -- selects --> QuickIcon["quick_mode(_light).svg"]
i18nEn["en.json"] -- provides --> TooltipText["logStream.envQuickModeMsg"]
```
<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>Visual cue and tooltip for
env quick mode fields</code>
</dd></summary>
<hr>
web/src/components/logstream/schema.vue
<ul><li>Render quick mode icon next to field name.<br> <li> Show tooltip
using <code>logStream.envQuickModeMsg</code>.<br> <li> Add
<code>isEnvQuickModeField</code> helper using store config.<br> <li>
Compute icon per theme via <code>quickModeIcon</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8336/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+32/-5</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>en.json</strong><dd><code>Add i18n message for quick
mode tooltip</code>
</dd></summary>
<hr>
web/src/locales/languages/en.json
<ul><li>Add <code>envQuickModeMsg</code> translation string.<br> <li>
Maintain trailing commas consistency.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8336/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
aff48e3a56 |
fix: Dashboards Names needed on the QueryManager (#8335)
### **User description** # PR Type Enhancement # Description On the Query Management view, the user must be able to see the Query generating sources like Dashboards and Alerts by their names. This PR addresses this by introducing an enhancement at the backend which responds with QueryStatus carrying search_event_context which has almost all the necessary details for this change. # !WIP + Need to validate the same for Alerts + QueryList.vue needs to be updated for the same changes. + A simple test on the backend for the responses guaranteeing that SearchEventContext is populated appropriately. ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Add search event context to statuses - Enrich dashboard names in task status - Propagate dashboard/folder names to frontend - Extend UI with Query Source column ___ ### Diagram Walkthrough ```mermaid flowchart LR BESEC["Backend SearchEventContext"] -- "added to proto + structs" --> QS["QueryStatus"] QS -- "get_task_status enriches names" --> Handler["gRPC handler"] Handler -- "QueryStatusResponse includes context" --> FEAPI["Frontend APIs"] FEAPI -- "pass dashboard/folder names" --> Panels["Panel Data Loader"] Panels -- "meta and URLs include names" --> Streams["Streaming/Search services"] Streams -- "display source" --> RunningQueries["Running Queries 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>13 files</summary><table> <tr> <td><strong>search.rs</strong><dd><code>Add SearchEventContext to QueryStatus and conversions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-373e83a31e5bbc82fba05d7ae274b0dbd624ed748272232cf7eb8b8c3b2f3afc">+31/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Enrich dashboard context in task status retrieval</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8dcdb10340635be8bb58d45a815569026877f6fdbb3b69a773a30698b91674b0">+19/-1</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Thread search_event_context through search and responses</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-c3b85ea662a885fbd39797968928b291cb59a58f53a03f7b7dfd7ba8b6a7985a">+2/-0</a> </td> </tr> <tr> <td><strong>usePanelDataLoader.ts</strong><dd><code>Pass dashboard/folder names in requests and meta</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-5a42e9493a7bcd722b88e61fd38883c4f61001bc9cafa399f65f8eafda3aace9">+14/-0</a> </td> </tr> <tr> <td><strong>useStreamingSearch.ts</strong><dd><code>Include dashboard/folder names in stream URLs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-8fce3e25a161cd458e734bd9b1f98aadefe3482da7b6529a5b1f4fa20ec115e2">+4/-0</a> </td> </tr> <tr> <td><strong>search.ts</strong><dd><code>Add dashboard/folder names to search and metrics URLs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-885ab872dbc6e7b20264df815e3ef4727f0abc86ce90d2fb47e4aff572814c75">+17/-0</a> </td> </tr> <tr> <td><strong>PanelContainer.vue</strong><dd><code>Forward dashboard/folder names to renderer</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-414737cba6064461f7026e0b016afcb9620bd5bb29c4708fc170dee789dbcd4d">+4/-0</a> </td> </tr> <tr> <td><strong>PanelSchemaRenderer.vue</strong><dd><code>Accept and propagate dashboard/folder name props</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-e5376e7e77bf3aaf6590c2522d8c2dbffcc95a8006ae0d6dc0040a37825367d6">+12/-0</a> </td> </tr> <tr> <td><strong>RunningQueries.vue</strong><dd><code>Show query source from search_event_context</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+1/-0</a> </td> </tr> <tr> <td><strong>RunningQueriesList.vue</strong><dd><code>Add Query Source column to table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-eb568491630bd1b80935cc0b02498d40274ede0e5be78593a0b49ca17fbbe627">+7/-0</a> </td> </tr> <tr> <td><strong>RenderDashboardCharts.vue</strong><dd><code>Provide dashboard/folder names to panel containers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-313f7c69102161242c893c863c50f1f1cd1fc19b68b5c99bf840b4b5c72f0f2e">+12/-0</a> </td> </tr> <tr> <td><strong>ViewDashboard.vue</strong><dd><code>Supply dashboard and folder names to charts view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+2/-0</a> </td> </tr> <tr> <td><strong>search.proto</strong><dd><code>Define SearchEventContext and add to QueryStatus</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-789f17326b818d5fbd1b5b752bed17e5341fde3d3261951634edcf78cacf3dbe">+11/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>cluster.rs</strong><dd><code>Generate proto for SearchEventContext and QueryStatus field</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-542d8f27a174c845740ca1c3fe0b697db89c3db666437c1c4dd8c9745510080c">+20/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>RunningQueriesList.spec.ts</strong><dd><code>Update tests for new Query Source column</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-b1229a7a60180bf83bd9c81e1306941b8414522339566763c92b5d06c979ff38">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>launch.json</strong><dd><code>Add LLDB config for server debugging</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-bd5430ee7c51dc892a67b3f2829d1f5b6d223f0fd48b82322cfd45baf9f5e945">+19/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>en.json</strong><dd><code>Add i18n key for Query Source column</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8335/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+2/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech> |
||
|
|
78a5919dae | fix: dashboard search text for variables SQL query (#8342) | ||
|
|
b863826d9f | fix: organization related issues (#8130) | ||
|
|
ecfb6db33d |
fix: introduce reo dot dev (#8279)
### **User description** 1. This PR introduces reo dot dev in the application ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Integrate Reo.dev analytics SDK - Add route meta titles across app - Track key button clicks and pages - Set dynamic document titles ___ ### Diagram Walkthrough ```mermaid flowchart LR main["App bootstrap (main.ts)"] -- "init + setup titles" --> reo["Reo Analytics Service"] router["Vue Router"] -- "meta.title -> document.title" --> dom["Document Title"] router -- "afterEach" --> reo views["Views & Components"] -- "useReo().track/identify" --> reo config["aws-exports.ts"] -- "REO_CLIENT_KEY + flags" --> reo pkg["package.json"] -- "add dependency" --> reo ``` <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><details><summary>1 files</summary><table> <tr> <td><strong>aws-exports.ts</strong><dd><code>Add Reo.dev client key to config</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-74d362ad26d23cf7e76c13e3daeb72d37923a335074d512a543d0f5bfa6a30d2">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>37 files</summary><table> <tr> <td><strong>router.ts</strong><dd><code>Add meta titles for primary routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-a1827956e5a817edc7efb5f4516e7cc4d453e15ea9e9d970aafb8360b09fc78e">+43/-5</a> </td> </tr> <tr> <td><strong>useEnterpriseRoutes.ts</strong><dd><code>Add meta titles for enterprise routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-962367ed3d329e73232da2c262cf10c60b14820dd43e95e94302cdcb2f080cbe">+28/-1</a> </td> </tr> <tr> <td><strong>useManagementRoutes.ts</strong><dd><code>Add meta titles for management routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b71a1d39b1fab0749f0668d5f16382536fbda6e2f0c92c56a972fb5d8b5835f5">+22/-0</a> </td> </tr> <tr> <td><strong>main.ts</strong><dd><code>Initialize Reo analytics and page titles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e">+9/-0</a> </td> </tr> <tr> <td><strong>index.ts</strong><dd><code>Set document title from route meta</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-8d302fe8581dca01e60aaf346dfdb0f8e24731551e7e5f91e5da9fc64250f7d2">+7/-0</a> </td> </tr> <tr> <td><strong>reodotdev_analytics.ts</strong><dd><code>New Reo.dev analytics service with queueing</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-1df83f0fa6b7599b6cd3ad863ff77d8abc4351b651932ad4d0359690148e1180">+168/-0</a> </td> </tr> <tr> <td><strong>ActionScipts.vue</strong><dd><code>Track add action scripts button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6cfeff0b8dbbaba52b13ba67d6f4f8fdc3c58996eccdfae2ad0db2e7aee20f08">+6/-0</a> </td> </tr> <tr> <td><strong>AddAlert.vue</strong><dd><code>Track alert save/update button clicks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+13/-1</a> </td> </tr> <tr> <td><strong>AddDestination.vue</strong><dd><code>Track destination save actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-61b295458e13049a538f5014124855d58dce664dfbd644b57a964a37a07b7a3f">+10/-0</a> </td> </tr> <tr> <td><strong>AddTemplate.vue</strong><dd><code>Track template save actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba">+10/-0</a> </td> </tr> <tr> <td><strong>AlertList.vue</strong><dd><code>Track alert add/hide form button actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+10/-0</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.vue</strong><dd><code>Track add destination action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+8/-0</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.vue</strong><dd><code>Track add pipeline destination action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+8/-0</a> </td> </tr> <tr> <td><strong>TemplateList.vue</strong><dd><code>Track add template action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-7df66364d7d69a26cfa25cbc555d0e090c2f73e51c8386d9b0435bae4412564c">+8/-0</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Track save new folder action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-41d2f8fac44084c004d8386ea4cc32e9c5d3e33266c4009cc855e57fb00a41af">+6/-0</a> </td> </tr> <tr> <td><strong>FolderList.vue</strong><dd><code>Track add folder button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b97284b1720dfb524e425f49acd70f1a4e59da3d493eb2d4b3de8551b2da7141">+6/-0</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Track dashboard folder saving</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-3bd1ba28ba29b71469aac901fd8000480c3db6c0f2dbc86ea55221787ae3ffd2">+6/-0</a> </td> </tr> <tr> <td><strong>AddEnrichmentTable.vue</strong><dd><code>Track save enrichment table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-9aad551dbc051edfdb3994a664506ed6d5e27dcb64f9c2fa917b02e51a35d86e">+6/-0</a> </td> </tr> <tr> <td><strong>AddFunction.vue</strong><dd><code>Track save/cancel function actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-ebfd6c538f3cd3ecb9ab17550fd76e2e89e7a1abccc83a7505077e4af3eee110">+10/-1</a> </td> </tr> <tr> <td><strong>EnrichmentTableList.vue</strong><dd><code>Track add/update enrichment table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6a29e253f59405d3c0f756dba36afd7483f10ad86927cbbc3348ede6372c3077">+10/-0</a> </td> </tr> <tr> <td><strong>FunctionList.vue</strong><dd><code>Track add/update function actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6ff9af50a1597504b7f0dca91e61cf30c800b4a17b4be2ed2c3a4f7a7b2d7068">+10/-0</a> </td> </tr> <tr> <td><strong>AddGroup.vue</strong><dd><code>Track save group action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-dd49436305aadc01990cd6d9ea0abf97b964195920a1b49e64e8868fcc8afa6c">+7/-0</a> </td> </tr> <tr> <td><strong>AppGroups.vue</strong><dd><code>Track add group action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-402fb2a5338e60fdc3da489f4d50b5cf52f06b4e884a6fe7b82441c9fa5ea22c">+7/-0</a> </td> </tr> <tr> <td><strong>AddUpdateOrganization.vue</strong><dd><code>Track save organization action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-bca5bebfa6d5f435715dc5fa948876de02fef95a84e3e663e5c7922d601b4b9d">+7/-0</a> </td> </tr> <tr> <td><strong>AddRole.vue</strong><dd><code>Track save role action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-fca7dd7f91da83de52bfc40e82451a8756001af43974d592de2e03a815b21c9b">+7/-0</a> </td> </tr> <tr> <td><strong>AppRoles.vue</strong><dd><code>Track add role button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-191634ef09436199f91f442968110a01f54ae46b5ceee67476f52613ad796db4">+7/-0</a> </td> </tr> <tr> <td><strong>AddServiceAccount.vue</strong><dd><code>Track create/update service account</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-4e6840978e90be9195797d1b73b6cd1545ddac45cef84aa08701a9d66013c61b">+28/-17</a> </td> </tr> <tr> <td><strong>ServiceAccountsList.vue</strong><dd><code>Track add service account action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-3afe835bcfbec3fda2e9550850c29581092ee0717e7dd8de8888e774a0048d24">+6/-0</a> </td> </tr> <tr> <td><strong>AddUser.vue</strong><dd><code>Track create/update user actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-47543c0488c8cb5bcf77e2bb4af9d0a5dd249993cd9577c4852f7950c7aaec91">+18/-5</a> </td> </tr> <tr> <td><strong>Login.vue</strong><dd><code>Identify user on login; delayed redirect</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-4c2da0196f97e92fff1a813ce1337a4e94f6592b054e0f5c326ee137657003ff">+11/-3</a> </td> </tr> <tr> <td><strong>AddStream.vue</strong><dd><code>Track save stream action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-78b8c84a558e60d942bacffee365633d074042e464be465eb6984b0ee5df82b9">+8/-0</a> </td> </tr> <tr> <td><strong>PipelineEditor.vue</strong><dd><code>Track node additions and save/cancel</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+48/-0</a> </td> </tr> <tr> <td><strong>CreateReport.vue</strong><dd><code>Track save/cancel report actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-cf2258c64249d4f28b2a103558bce3af1c87f0b2f23fe0652b458b8c20bb9c64">+11/-0</a> </td> </tr> <tr> <td><strong>ReportList.vue</strong><dd><code>Track add report navigation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+7/-0</a> </td> </tr> <tr> <td><strong>Dashboards.vue</strong><dd><code>Track add dashboard/folder actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-8da3187db8ce3d795d0f196ede6b2290221ffa3e27b15dcc2b645e44dd196213">+10/-0</a> </td> </tr> <tr> <td><strong>LogStream.vue</strong><dd><code>Track add stream button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-56f4223b74568c10bc305741cc9fc3a8830184a251b4eaa6a2649033bc6200e3">+9/-1</a> </td> </tr> <tr> <td><strong>Login.vue</strong><dd><code>Identify user after SSO; delayed redirect</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-a135c379ef6ac8f92199ea5f7ff19a227971a9b0a87ccccf87c0268740522c2c">+11/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>package.json</strong><dd><code>Add Reo.dev dependency</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
20678e5e9d |
fix: RUM component testing (#8194)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive RUM component unit tests - Harden dashboard layout null checks - Initialize variables state safely - Minor UI/typing/import fixes ___ ### Diagram Walkthrough ```mermaid flowchart LR specs["Add RUM component specs"] -- validate --> dashboards["Dashboards (API/Errors/WebVitals)"] dashboards -- safer init --> vars["Variables default state"] dashboards -- guard --> layout["Ref layoutUpdate null-checks"] SearchBar["SearchBar.vue"] -- disable guard --> btn["Run Query button"] utilsDate["utils/date.ts"] -- lint fix --> commas["Trailing commas"] ``` <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>ApiDashboard.spec.ts</strong><dd><code>Add comprehensive tests for API dashboard</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-53095dbafa0cb9c6eed90240cb8af9f89d118168f6af76bdf51267a667ccff2d">+1481/-0</a></td> </tr> <tr> <td><strong>SearchBar.spec.ts</strong><dd><code>Add unit tests for RUM SearchBar</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-8665e9741021e1ce49dcf12426e74107f678bd5708125104d95f82798f1a33a1">+715/-0</a> </td> </tr> <tr> <td><strong>SessionsList.spec.ts</strong><dd><code>Add tests for sessions list table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-d4b43b6d94727c8fe42479141a58908fc490227bd1e87eec6d64c9351efbdcc8">+615/-0</a> </td> </tr> <tr> <td><strong>ErrorEvents.spec.ts</strong><dd><code>Add tests for error events table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-81b9f9fcb1fd9a2f50bb512de7de11353519d95d7c276999eb8efa9e315a91d2">+567/-0</a> </td> </tr> <tr> <td><strong>ErrorTags.spec.ts</strong><dd><code>Add tests for error tags view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-c6f52cc79dd03d5b9bb6fb66a7c2ca29b66cd2e8bcaf1fa071d52cd43f388f59">+622/-0</a> </td> </tr> <tr> <td><strong>PlayerEventsSidebar.spec.ts</strong><dd><code>Add tests for player events sidebar</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-89b65487bce928cbff9e6f17ea7b2288a5b44918c408d48f17e834454d8f6c60">+570/-0</a> </td> </tr> <tr> <td><strong>ErrorsList.spec.ts</strong><dd><code>Add tests for errors list</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-e65880c9658bdfd0cc8c6dc2144760f924ef4cf6919010e5f48b2ed47f134745">+491/-0</a> </td> </tr> <tr> <td><strong>WebVitalsDashboard.spec.ts</strong><dd><code>Add tests for Web Vitals dashboard</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-62eb2eceb30d2aa28e78d4ee898d09aae3d1f0fa176d4bca91055b50024e6c9f">+546/-0</a> </td> </tr> <tr> <td><strong>ErrorHeader.spec.ts</strong><dd><code>Add tests for error header</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-4b0143e04fd73e173ae4e9696d2654543eaf0c0a85e6610d267a3b2ec3f145d8">+459/-0</a> </td> </tr> <tr> <td><strong>VideoPlayer.spec.ts</strong><dd><code>Add tests for RUM video player</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-ee567bd4fd196facb768c7a15cbd7e14feff6be027d3bb78e65ae811319ca82c">+485/-0</a> </td> </tr> <tr> <td><strong>ErrorSessionReplay.spec.ts</strong><dd><code>Add tests for error session replay</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-40ee2b3a9b103e5c6e5e431609444f0296d2bee46f3f1dd2c606c86e22d8ffe5">+482/-0</a> </td> </tr> <tr> <td><strong>ErrorStackTrace.spec.ts</strong><dd><code>Add tests for error stack trace view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-a52e17d1791c4e34e92e7e5953d4df509f4dc8a49910865efc0f13bffc9b2096">+423/-0</a> </td> </tr> <tr> <td><strong>ErrorEventDescription.spec.ts</strong><dd><code>Add tests for error event description</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-f3a969642703ccec1b54c32c7ef3c2a85d9e9ea15f322ef362eefe71ae736acd">+495/-0</a> </td> </tr> <tr> <td><strong>ErrorDetail.spec.ts</strong><dd><code>Add tests for error detail view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-8517542d07e62e45104db342cc69f85a1c07776aecbee8279456d3000f8dd2da">+420/-0</a> </td> </tr> <tr> <td><strong>AppTable.spec.ts</strong><dd><code>Add tests for generic AppTable</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-37e20196ead408438033e30d909300ef1c02b01fa690e2d4b8cd21472202e4da">+425/-0</a> </td> </tr> <tr> <td><strong>ErrorsDashboard.spec.ts</strong><dd><code>Add tests for Errors dashboard</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-1330edb3964758b7c9cfbdfb077eac5fcce30b8b4d2f204d69ab71c4041d37c5">+383/-0</a> </td> </tr> <tr> <td><strong>ErrorTypeIcons.spec.ts</strong><dd><code>Add tests for error type icons</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-737652a4154b05c932a34cf218c3c1432ff8efc557d512813a6879830baf668b">+368/-0</a> </td> </tr> <tr> <td><strong>ErrorTag.spec.ts</strong><dd><code>Add tests for single error tag</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-d4bf1e6d4e71451a9ce8ead11328edff5064cb3693b01b53ce653694710045ef">+355/-0</a> </td> </tr> <tr> <td><strong>SessionLocationColumn.spec.ts</strong><dd><code>Add tests for session location column</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-b853b01be9d14931163c1ae8f5287c28f1d43df2a45e113519d853d3a14c1b41">+346/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>5 files</summary><table> <tr> <td><strong>date.ts</strong><dd><code>Add debug log and lint fixes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-b178bce26d7ddb8d02569fa666e3250abbc1f269d7b7a1068a4bd026f4bdcd26">+3/-2</a> </td> </tr> <tr> <td><strong>ApiDashboard.vue</strong><dd><code>Safer variables init and layout guards</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-52c091831fcfb625a54f7b56a08c10694a024daa44b6b337d66260461254389e">+24/-12</a> </td> </tr> <tr> <td><strong>SearchBar.vue</strong><dd><code>Guard stream list access; import cleanup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-d20c6ba53e6a9adfe67b2f83fe76357fb541b2764dd40cb16627599e0c80e63f">+3/-30</a> </td> </tr> <tr> <td><strong>ErrorsDashboard.vue</strong><dd><code>Initialize variables and guard layout updates</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-46138c05241c5e0911a0feba39a21dbb8452453c0e26a1d00c3493cc579f07b2">+14/-8</a> </td> </tr> <tr> <td><strong>WebVitalsDashboard.vue</strong><dd><code>Add layout null-checks and exports</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-bbb15649f6ecf4b2968a8173091ef8b2a21bfe39bff8e08f91566bca189cca09">+10/-5</a> </td> </tr> </table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>WebVitalsDashboard.spec.ts.backup</strong><dd><code>Backup spec file for Web Vitals</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8194/files#diff-407d197787cb019e97f989a21530c722baf103aab5583cf85b3f7113b9543e88">+1308/-0</a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
8af3495611 |
fix: cloud sync (#8222)
### **User description**
This is for syncing the changes done in cloud to main branch. No changes
for non-cloud code.
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Add invite listing and decline APIs
- Bypass auth for user-scoped invite routes
- Improve trial-expiry handling and logging
- Add org cache and invalidation hooks
___
### Diagram Walkthrough
```mermaid
flowchart LR
FE["Login & Invitations UI"] -- "list/accept/decline" --> API["/api/invites*, /{org}/member_subscription"]
API -- "auth bypass for user-scoped invites" --> Auth["AuthExtractor/TokenValidator"]
Auth -- "pending invites flag" --> LoginRedir["/config/redirect builds URL params"]
OrgSvc["Organization Service"] -- "generate/list/decline/delete" --> InvitesDB["Org Invites"]
OrgSvc -- "invalidate cache" --> OrgCache["Org table in-memory cache"]
Ingest["Ingestion services"] -- "trial expired -> 429" --> Clients["Ingestion Clients"]
```
<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>25
files</summary><table>
<tr>
<td><strong>user.rs</strong><dd><code>Expand invite payload with org and
inviter</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-e13b3a981fd70182b9738a6b0ecfdee915c5b36757703a87741e1eddf3f6e786">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>auth.rs</strong><dd><code>Auth bypass and key handling for
invite routes</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-9bc2b1841504a435f66ad094f72ddbe7b7fa75e5e1557b8adbfe36f7f0592e1b">+36/-0</a>
</td>
</tr>
<tr>
<td><strong>jwt.rs</strong><dd><code>Return new user and pending invite
flags; defer org creation</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+22/-4</a>
</td>
</tr>
<tr>
<td><strong>token.rs</strong><dd><code>Allow invite/member routes
without org user; header injection</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-3339b4a964c121766ef87fcec0070f27a2b7085cf81281b53154e53d33cb28cf">+34/-0</a>
</td>
</tr>
<tr>
<td><strong>ingest.rs</strong><dd><code>Suppress logging for trial
expiry errors</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-24f250254ecfdbe004af9dc0ea23f8a2c0105ae0898690ed3e565089e5d8eef9">+30/-9</a>
</td>
</tr>
<tr>
<td><strong>org.rs</strong><dd><code>Pending-only invites; delete invite
API; trial extend cache poke</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-b47c0c1a8a78524196176430268eecdbfaf6f46d6b95873d3cbe70cfd67182b0">+40/-4</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Include pending_invites flag in
login redirect</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ca09c9c9b020049bdbc3382c466bfcca80daac92e98760d9a9a76172abf34049">+4/-4</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>List pending invites and decline
invite endpoint</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-56897e42f9436a640bc70fddc25686485ba8ae1223635b32d252a0333309f748">+36/-1</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Wire new invite endpoints into
router</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Add TrialPeriodExpired error
variant</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-90c725d0e77a6e7d4bcc130cf5783848a5cf0efdb304b351cd63cacf8775fc36">+2/-0</a>
</td>
</tr>
<tr>
<td><strong>organizations.rs</strong><dd><code>Add in-memory org cache
with invalidation</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-4d87f9fe379a5d161a3e7c3c77f7f320be738e6a70c785aa5ce93cb0830c0147">+77/-7</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Start cloud billing watcher on
cloud builds</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+3/-0</a>
</td>
</tr>
<tr>
<td><strong>organization.rs</strong><dd><code>Invalidate org cache on
watch and mutations</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ce65cea926a09721a8fea14d07fe188bc2b887218e95d74a8bffefb54001da50">+4/-0</a>
</td>
</tr>
<tr>
<td><strong>user.rs</strong><dd><code>Delete invites for user
helper</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-6ee6b0fc9ed03224d4ddf0b7b631c6f81ff7d1d579bdb98d2c5d4453852eb5d6">+4/-0</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Return trial expiry as dedicated
error</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-7c7b5bca85f0ced652965cae66540c96f56dfcca4f4c16b77bf7b45aac203d1b">+1/-3</a>
</td>
</tr>
<tr>
<td><strong>loki.rs</strong><dd><code>Silence trial expiry logs for Loki
ingestion</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a970c8c4785d4e4d878218615b17eec0cf4b4976121766b002c2b2f76371bfe6">+4/-1</a>
</td>
</tr>
<tr>
<td><strong>json.rs</strong><dd><code>Map trial expiry to HTTP 429 in
JSON ingest</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-506987e61095a54e47f7f208dad89f9f1bce595fa6bf1ba8a7d746f2b2ff6c4a">+15/-6</a>
</td>
</tr>
<tr>
<td><strong>otlp.rs</strong><dd><code>Return 429 for trial expiry;
reduce noise</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a24391bef75a4678c50724e8b5f305ec0ee8c2c74c68be9d677765de68b5d8dd">+17/-7</a>
</td>
</tr>
<tr>
<td><strong>organization.rs</strong><dd><code>Invite generation
validation; delete/decline invite flows</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-6b3c3c2b027c1158c0d41302cc69dfcd20ab68a6a4fa365cda403f838940bbb4">+48/-1</a>
</td>
</tr>
<tr>
<td><strong>mod.rs</strong><dd><code>Handle trial expiry with 429;
logging tweaks</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-66f3b4f5e7927092fd6e57738687a1091b6f316638f7c58f8d7be9addb72bc30">+34/-14</a>
</td>
</tr>
<tr>
<td><strong>users.rs</strong><dd><code>Enrich invite list; optional
pending filter; cleanup on removal</code></dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-98da2588a28d62bb2e301d989836125f89f89b76272cd7f75e08ec4deeea5f38">+50/-6</a>
</td>
</tr>
<tr>
<td><strong>organizations.ts</strong><dd><code>Add decline subscription
API client</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-2c3bad4c7a9fcedd7a653599381149b82f9c350b177de9d72431013807d4c36f">+10/-7</a>
</td>
</tr>
<tr>
<td><strong>users.ts</strong><dd><code>Add pending/accept/reject invite
APIs</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a334d8d570d9bdcaa3d4c8c2a993eff009a1ec8eb499c8a3d1a292d9224159d0">+12/-4</a>
</td>
</tr>
<tr>
<td><strong>InvitationList.vue</strong><dd><code>New UI to accept or
reject invites</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-ee97546ff1aba36cc0b24cb20782502c7c88279850cc3d540ea5685209f10702">+409/-0</a>
</td>
</tr>
<tr>
<td><strong>Login.vue</strong><dd><code>First-login invite handling and
logo tweaks</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-a135c379ef6ac8f92199ea5f7ff19a227971a9b0a87ccccf87c0268740522c2c">+178/-58</a></td>
</tr>
</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>en.json</strong><dd><code>Add invitation-related
translations</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8222/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+18/-0</a>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Subhra264 <chakrabortysubhradeep556@gmail.com>
Co-authored-by: udev <uddhav@openobserve.ai>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: udev <uddhavdave1@gmail.com>
|
||
|
|
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> |
||
|
|
1e9761ba61 |
feat: logs page highlighting (#8059)
### **User description** This PR helps to highlight text in logs page and also adds a left border for each depending upon the status of the logs ___ ### **PR Type** Enhancement ___ ### **Description** Add LogsHighLighting component for semantic highlighting Highlight query terms across logs and JSON Visual status indicators via colored borders/lines FTS-aware coloring for selected columns ___ ### Diagram Walkthrough ```mermaid flowchart LR Highlighter["LogsHighLighting.vue (new)"] -- "used by" --> Detail["DetailTable.vue"] Highlighter -- "used by" --> JsonPrev["JsonPreview.vue"] Highlighter -- "used by" --> Table["TenstackTable.vue"] Status["statusParser.ts (new)"] -- "row/log status color" --> Detail Status -- "row status stripe" --> Table Colors["keyValueParser.ts (new)"] -- "theme colors" --> Highlighter Composable["useTextHighlighter.ts (new)"] -- "highlight + semantic color" --> Highlighter Search["SearchResult.vue"] -- "pass highlight + FTS keys" --> Table ``` <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>LogsHighLighting.vue</strong><dd><code>New component for semantic JSON/log highlighting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-4ef4ac0444004add270de4da30fa39bafd95bd7f1c408d28cf6737655fc152eb">+324/-0</a> </td> </tr> <tr> <td><strong>DetailTable.vue</strong><dd><code>Add status top border and inline highlighting</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+21/-6</a> </td> </tr> <tr> <td><strong>JsonPreview.vue</strong><dd><code>Use highlighter for key/value rendering</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+8/-14</a> </td> </tr> <tr> <td><strong>SearchResult.vue</strong><dd><code>Provide highlight query and FTS keys downstream</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+16/-0</a> </td> </tr> <tr> <td><strong>TenstackTable.vue</strong><dd><code>Integrate highlighter and add status stripe</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+34/-6</a> </td> </tr> <tr> <td><strong>useTextHighlighter.ts</strong><dd><code>New composable for text highlighting logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-b18d6e5b667ce7b485a0592cddcaf47cf68b10b6a1b75bd006f21917c4343147">+486/-0</a> </td> </tr> <tr> <td><strong>keyValueParser.ts</strong><dd><code>Theme-aware color palette utilities</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-efcf08bdfe13eeac90f7dadbdb5892ae614d49b16f4f75bfc6225700d0ba7b73">+53/-0</a> </td> </tr> <tr> <td><strong>statusParser.ts</strong><dd><code>Derive log severity and colors</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-c189f5de10234dccf5f5e5b332dbb41f54c21a366ed4817c963bbf2e954d620a">+246/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Bug fix</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>Index.vue</strong><dd><code>Fix column update timeout scoping</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+3/-3</a> </td> </tr> <tr> <td><strong>useLogs.ts</strong><dd><code>Correct FTS key detection logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8059/files#diff-1040f61354f92711e0e77ed4e9bfa15586d45a94c7e2ab06cc37372068030e7b">+1/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
ef1bf5996b |
fix: dashboard config height issue (#8201)
### **PR Type**
Bug fix
___
### **Description**
- Fix sidebar height overflow in panel sidebar
- Remove redundant inline height on right column
- Ensure viewport-based sizing for config panel
___
### Diagram Walkthrough
```mermaid
flowchart LR
View["AddPanel.vue layout"] -- "drop inline height" --> Column["Right column .col-auto"]
Column -- "hosts" --> Sidebar["PanelSidebar.vue .sidebar-content"]
Sidebar -- "set viewport height" --> CSS["height: calc(100vh - 176px)"]
```
<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>PanelSidebar.vue</strong><dd><code>Use viewport-based
height for sidebar content</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/PanelSidebar.vue
<ul><li>Replace flex/min-height with fixed viewport-based height<br>
<li> Keep vertical scroll via overflow-y: auto</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8201/files#diff-8e63f9f02875ae5308688ef83d5a8d12383dd32b298475e85a210d6c7334af79">+1/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AddPanel.vue</strong><dd><code>Clean inline height to
prevent overflow issues</code>
</dd></summary>
<hr>
web/src/views/Dashboards/addPanel/AddPanel.vue
<ul><li>Remove inline style height: 100% on right column<br> <li>
Simplify layout to rely on CSS sizing</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8201/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+2/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
2c0395124f |
feat: deprecated syslog (#8187)
### **User description** impl #8186 ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Mark syslog modules as deprecated - Add allow(deprecated) to callers - Block enabling syslog setting - Remove syslog-related tests and OpenAPI types ___ ### Diagram Walkthrough ```mermaid flowchart LR meta["meta::syslog module"] -- "mark deprecated" --> callers["call sites"] callers -- "add allow(deprecated)" --> compile_ok["compiles with warnings suppressed"] db_set["db::syslog::toggle_syslog_setting"] -- "reject enable=true" --> error["returns deprecation error"] openapi["OpenAPI schema"] -- "remove syslog types" --> spec["updated API spec"] tests["syslog tests"] -- "removed" --> leaner["reduced test surface"] ``` <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>config.rs</strong><dd><code>Suppress deprecation warnings for syslog globals</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-cda0d9179ed982fa5f0989c9b26f21cfa49dd1de28195a98135650ffcc7c602a">+2/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Allow deprecated syslog handlers; annotate endpoints</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-58010c6e78f69dc57c353890a807371cd43c2b4cceeeb1e9378130f26d898397">+6/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Suppress deprecation in API scope setup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-02556e3f515441b5d2b6bbea7829df488beac03c4cc41309a6638ae3c0e0aec6">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Allow deprecated syslog server wiring</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-66207bd699343342402f88cdd331f4c549783754e4921d0c8d43e026e2d8e575">+3/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Allow deprecated syslog cache/watch tasks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-f2e4c29b8eef22189ec704a832633c4bd135a24444f054864c98064bd0963681">+4/-0</a> </td> </tr> <tr> <td><strong>syslog_server.rs</strong><dd><code>Allow deprecated syslog server run linkage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-cb7610142582b44885f673583ab16262c3b9ca6de1f59a9def65e503360665a0">+2/-0</a> </td> </tr> <tr> <td><strong>syslog.rs</strong><dd><code>Allow deprecated syslog ingest; remove tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-4bc46f36fad79f5df8c42b8a8d5d8c4a70b1320b966bcff3421deeb96a1981fa">+3/-14</a> </td> </tr> <tr> <td><strong>syslogs_route.rs</strong><dd><code>Allow deprecated route endpoints; remove tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-325df35568c993fc0727bfb0499b682e6bd30af781687706306b3bdb429c49e2">+7/-52</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>6 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Mark syslog meta module as deprecated</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-fbf797574839e69491ea0429141c038c0ff96297bdf3d8c60d60cdc4acec74b1">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Mark syslog HTTP request module deprecated</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-a1cfd40da1ab6cd4db0181fd8664965034298047b3b7c3320c5385897a7c4aed">+1/-0</a> </td> </tr> <tr> <td><strong>openapi.rs</strong><dd><code>Remove syslog types from OpenAPI imports</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-edb8ce232c0cd08366879f642788a75d99f6bab64b4c0e77391281fdb9241e90">+0/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Deprecate syslog DB module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-b7e3bf7f0ac23dd084c0c817a310a4d5e7a64ff532746d182986ef940fa03fd0">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Deprecate syslog logs module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-ce72aea3fa4c44904cbd9ec07bd844bec71b49c9676d667b14056aa5798f96b2">+1/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Deprecate syslogs_route service module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-1b15316505c31acccb26ba66d920fdb0894567d08d2bf1e3457716d128a67b83">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>syslog.rs</strong><dd><code>Remove unit tests for syslog meta types</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-dc6813e31e32c23aae5760091460d2ec4023d37ae73e49d29052d9f4e9f2e1fa">+0/-127</a> </td> </tr> </table></details></td></tr><tr><td><strong>Error handling</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>syslog.rs</strong><dd><code>Block enabling syslog; allow deprecated routes/cache</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8187/files#diff-4c0e9282e3d2352f9a382099901fe034bae2961eed01d764f16ad52f27f55db4">+11/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Bhargav <BJP232004@GMAIL.COM> |
||
|
|
4ef004011f | fix: search scheduler issue (#8181) | ||
|
|
3f3d12f9e7 |
fix: visualization sync for saved views (#8168) (#8176)
### **User description**
- Save visualization which contains Dashboard configs as a Saved view.
- CSS issue for config on visualization page.
- `All fields must have alias to visualize` Error msg refactor.
**Note:** On the Logs to Visualize, we use the default chart type(line
or table chart). If a saved visualization view is applied from the Logs
page, it will switch to the Visualization page and select the default
chart type. However, applying a saved visualization view while already
on the Visualization page will work as expected.
___
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Persist visualization config in saved views
- Sync visualization config to URL on apply
- Improve alias validation error messaging
- Fix sidebar layout and overflow behavior
___
### Diagram Walkthrough
```mermaid
flowchart LR
SV["Saved View apply"] -- "merge extractedObj" --> SO["searchObj"]
SO -- "has visualizationData?" --> RD["restoreVisualizationData()"]
RD -- "set type/config" --> DPD["dashboardPanelData"]
DPD -- "getVisualizationConfig()" --> VC["visualizationData"]
VC -- "encode & push" --> URL["router.replace(query.visualization_data)"]
Save["Save View action"] -- "collect visualizationData" --> SVObj["savedSearchObj.data.visualizationData"]
UI1["PanelSidebar.vue"] -- "flex layout & shrink fixes" --> UX["Stable sidebar height/scroll"]
UI2["VisualizeLogsQuery/AddPanel"] -- "full height sidebar container" --> UX
Valid["Alias validation"] -- "refined messages" --> 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><table>
<tr>
<td>
<details>
<summary><strong>PanelSidebar.vue</strong><dd><code>Make sidebar
flex-based with stable scrolling</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/PanelSidebar.vue
<ul><li>Prevent separator shrinking via flex-shrink.<br> <li> Sidebar
becomes flex column with min-height fixes.<br> <li> Header marked
non-shrinking.<br> <li> Content uses flex:1 with proper overflow.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8176/files#diff-8e63f9f02875ae5308688ef83d5a8d12383dd32b298475e85a210d6c7334af79">+7/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>SearchBar.vue</strong><dd><code>Persist and restore
visualization config for saved views</code> </dd></summary>
<hr>
web/src/plugins/logs/SearchBar.vue
<ul><li>Import helpers to get/encode visualization config.<br> <li> Add
restoreVisualizationData to set config/type and sync URL.<br> <li> Apply
restoration when loading saved views.<br> <li> Include visualizationData
when saving views in visualize mode.<br> <li> Refine alias validation
error message.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8176/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+49/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>VisualizeLogsQuery.vue</strong><dd><code>Full-height
container for config sidebar</code>
</dd></summary>
<hr>
web/src/plugins/logs/VisualizeLogsQuery.vue
- Ensure config sidebar container takes full height (two places).
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8176/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+2/-2</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AddPanel.vue</strong><dd><code>Full-height PanelSidebar
in add panel views</code>
</dd></summary>
<hr>
web/src/views/Dashboards/addPanel/AddPanel.vue
- Ensure PanelSidebar container takes full height in both layouts.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8176/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+2/-2</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>Clarify alias requirement
error text</code>
</dd></summary>
<hr>
web/src/plugins/logs/Index.vue
- Refine alias validation error message.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8176/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+1/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
1501a6e606 | fix: index type for schema check env for fts or secondar index fields (#8165) | ||
|
|
12fc60af15 |
fix: unit test latest v2.0 (#8151)
### **User description** added unit test cases for missing files ___ ### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive unit tests coverage - Expose internals for testability - Improve VRL language modularity - Export utility for reuse in tests ___ ### Diagram Walkthrough ```mermaid flowchart LR specs["Add comprehensive spec files"] -- drive coverage --> composables["Composable internals exposed for tests"] composables -- supports --> store["Store mocks and helpers updated"] language["VRL language keywords exported"] -- reuse in tests --> specs billing["Export formatDate utility"] -- reuse in tests --> specs ``` <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>4 files</summary><table> <tr> <td><strong>SearchBar.spec.ts</strong><dd><code>Add 145+ tests for SearchBar methods</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-63ac75d3fe278dad233e7dd7c51b3b33076d54a776b89ae05190d8522130c78b">+2196/-0</a></td> </tr> <tr> <td><strong>useStreams.spec.ts</strong><dd><code>Rewrite and expand useStreams unit tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-513e2d53c46c553904a054e9c2cd12d33e800afc54fe5b4192c9782382ecd79b">+727/-175</a></td> </tr> <tr> <td><strong>useStreams.ts</strong><dd><code>Expose internal helpers for testing</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-a083369344f022cdf8d4f536719179b1d920369e33e2e26234e70dd36d151a7c">+11/-1</a> </td> </tr> <tr> <td><strong>store.ts</strong><dd><code>Add meta_org to default store state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-0f8dff694a1fcfaa42d432168e435b7a2aa122d075fedfd6e75e532aca3b2a73">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>vrlLanguage.ts</strong><dd><code>Export VRL keywords and refactor usage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-d8baadeb1ccdabd0e424d3f335476417990ae5f680645db52ba03a94b75afd7a">+7/-4</a> </td> </tr> <tr> <td><strong>convertBillingData.ts</strong><dd><code>Export formatDate for external use</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-56fa0a54f04a4fd9d5a715f5dbfe80ebcb852a39720160399e427021f75185ec">+1/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>41 files</summary><table> <tr> <td><strong>AddOpenobserveType.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-d4c9e84859e41b57861e8ec93d08f28111c13c5ca1143c0613f9e3f55051a2f2">+365/-11</a></td> </tr> <tr> <td><strong>FolderList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-0c62fad007c4194fb43b3986b2cbdfb7f6317e8e1e4e402d78ec44c951e7973b">+941/-0</a> </td> </tr> <tr> <td><strong>AppOrganizations.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-0be0b81d3cd8b7003dc2aaf283fbe3f2434963086540a4d6bf1dd513fe9ed19f">+1021/-0</a></td> </tr> <tr> <td><strong>User.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-52945c253c25b4961ba3c66891234a74aa62c69e70f70ee67388bb406f0847cd">+779/-0</a> </td> </tr> <tr> <td><strong>User.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-e973c2a665f9b27b94673ba64cc5b23650300836a727a2e07673c8e26305aee5">+10/-3</a> </td> </tr> <tr> <td><strong>LogstashDatasource.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-2cd019295a25886a037e6ede5cad795b52851a377f48beb46f3897bc6d64a20b">+425/-2</a> </td> </tr> <tr> <td><strong>Login.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-746b43968d685362866c3f97bf2b5e0846bac7463fe1ecb080c1c7d962cb855b">+229/-1</a> </td> </tr> <tr> <td><strong>AssociatedRegexPatterns.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-4ca41bf14fd6a3c79a3877324a7c7520a25d1d33f97fe947b2f6dd4bbf6ca5b4">+310/-0</a> </td> </tr> <tr> <td><strong>AssociatedRegexPatterns.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-c6fce5e1c83798991b6ff19effb23c67af59f38fac0b9e56dcab7a09d139f550">+1/-0</a> </td> </tr> <tr> <td><strong>Nodes.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-65fde080f2ef775dab71d503b730bf029d13640ac241ded1dc22a72185a12082">+1/-0</a> </td> </tr> <tr> <td><strong>OrganizationManagement.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-bff2884ebe60873c476c6a826739f210aca57e39cd503ca0026e48388be48697">+1090/-0</a></td> </tr> <tr> <td><strong>OrganizationManagement.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-21e2431538cb6b76e5ef5b367c6df8fc02ad8f6c1294f438be9937c7481ea9ff">+3/-0</a> </td> </tr> <tr> <td><strong>OrganizationSettings.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-03458cff72df35e454f83d964d2505e87b9c37e4488333e0d18a7757f2b1ebe4">+777/-0</a> </td> </tr> <tr> <td><strong>useEnterpriseRoutes.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-ce0d8e19a397a63cfe5a423399b9c8f8f08eb0e30913ba9b885a00f5703d2ede">+784/-0</a> </td> </tr> <tr> <td><strong>useIngestionRoutes.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-3b7ebacf9481f4643a2b56ffe53ab161fc89d416e280d45b48568866a4dee40c">+1013/-0</a></td> </tr> <tr> <td><strong>useManagementRoutes.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-28a4eb5ed72bef3db05dca1f8e45eef0836819fe0c747783b22cce966d7d6ad4">+608/-0</a> </td> </tr> <tr> <td><strong>useAiChat.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-666a3e460b35ed780ab299fb01537fe3afdb12dabe2b363d5d91a08a728903f9">+614/-0</a> </td> </tr> <tr> <td><strong>useAiChat.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046">+3/-0</a> </td> </tr> <tr> <td><strong>MainLayout.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-59def4c2a6d83249918d30d825ccfb0aa4ce9616586fe13f16a7e29b3827cdbc">+495/-22</a></td> </tr> <tr> <td><strong>MainLayout.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+6/-1</a> </td> </tr> <tr> <td><strong>MetricLegends.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-87f5d1b4980d975625d85d549607833927202ebffe226643723bc733c344622f">+575/-0</a> </td> </tr> <tr> <td><strong>MetricList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-cfe67d5bd5005164060b2b219a86074a5b6330e1759260803e54e89255aeb86a">+976/-0</a> </td> </tr> <tr> <td><strong>MetricList.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-bba38d43b27f28395343746a2de5411a2b18ab093d1843ad6bd413ba50a2b236">+5/-0</a> </td> </tr> <tr> <td><strong>SyntaxGuideMetrics.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-e83d30b644b4e25b1867e748793726b149a5f8e5e94aac273d32b9fa9f9d73a6">+505/-0</a> </td> </tr> <tr> <td><strong>HomeView.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-73e32dfbcdec6f87abe68984231fb1227502397e28fd1d91cd9579024010fb82">+771/-0</a> </td> </tr> <tr> <td><strong>Nodes.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-bc3ed81e6399bf6502b432ec0935da08fd0a824adb265a4f579002b4bca13474">+688/-0</a> </td> </tr> <tr> <td><strong>convertBillingData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-07358b9d1c1df7af083b9843924628f0525bb2c2552ee5e1392b461a99cec321">+492/-0</a> </td> </tr> <tr> <td><strong>convertLogData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-39de9d9ab51415a842d8aa8cee7fa1beb7234eaed7dfcb996a579a2ef4930b4c">+516/-0</a> </td> </tr> <tr> <td><strong>convertLogData.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-92a6bf770bda75f5e07d57d6cc472f8defa9db6abf02e58de542988b311fed55">+1/-1</a> </td> </tr> <tr> <td><strong>promQLUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-801511331f719d887e0c2df01bfe47bee812895fb67fde768f3b33ba48ace614">+577/-0</a> </td> </tr> <tr> <td><strong>sqlUtils.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-f22df136a6cdfbacf2b637d4902002337620c8e981dbacfdd705455ff899f12d">+2074/-15</a></td> </tr> <tr> <td><strong>sqlUtils.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+4/-1</a> </td> </tr> <tr> <td><strong>vrlLanguage.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-8b8d40ee6bba3647f6e5964e1011778519325e45dbde2cf9abc64e3f9308d3e8">+866/-0</a> </td> </tr> <tr> <td><strong>vrlLanguageDefinition.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-7885cf603efcffce2a031eaab866f260d0f699f1a52b961ecd77f0bf8aa72039">+651/-0</a> </td> </tr> <tr> <td><strong>AppAlerts.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-7ac6d93d3aa4a91d52bd751822e423a21158e09bfe70cf96fba46f42376d2acf">+798/-27</a></td> </tr> <tr> <td><strong>Ingestion.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-81be229daf4204aaa0133a1c4cab618bbac68ab704b74ecf3e121636f16c6e61">+1026/-0</a></td> </tr> <tr> <td><strong>Ingestion.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-97b8e8ed2a1260a39442563c7447d4f6d4830a37d47258920d6f94a292cd2d77">+68/-64</a> </td> </tr> <tr> <td><strong>Login.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-92c3c0344a73a30eadb1c98f849f7297c460f50804cdbb2d34dd374fbcf83d74">+1183/-0</a></td> </tr> <tr> <td><strong>ShortUrl.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-3838b4efef178fdab0ba9652f21468b36918b3ca9b84783c564cde2a6556ed39">+326/-29</a></td> </tr> <tr> <td><strong>ShortUrl.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-b7ffcc5de24f9e1db5a3a8e78a686727360f9061ca6f9f8ae60456c3d603f9b7">+7/-0</a> </td> </tr> <tr> <td><strong>User.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8151/files#diff-1c14af61b2a316a418e1c7b79ff459ea61e1d1ac1f57b7c768421aa8cdd58cd1">+528/-113</a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
f31304597d |
fix: unit test cases added (#8133)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add extensive unit tests across modules - Expose internal methods for testability - Extend props for query component metadata - Minor query and ingestion component updates ___ ### Diagram Walkthrough ```mermaid flowchart LR ImportPipelineSpec["ImportPipeline.spec.ts (new tests)"] RunningQueriesSpec["RunningQueries.spec.ts (new tests)"] RunningQueriesListSpec["RunningQueriesList.spec.ts (new tests)"] PlansSpec["Billing plans.spec.ts (new tests)"] OtelLogsSpec["Logs OtelConfig.spec.ts (new tests)"] ImportPipelineVue["ImportPipeline.vue (expose internals)"] QueryListVue["QueryList.vue (add metaData prop)"] ImportPipelineSpec -- tests --> ImportPipelineVue RunningQueriesSpec -- tests --> RunningQueriesVue["RunningQueries.vue (updated)"] RunningQueriesListSpec -- tests --> RunningQueriesListVue["RunningQueriesList.vue"] PlansSpec -- tests --> BillingServices["Billing services"] OtelLogsSpec -- tests --> OtelLogsVue["OtelConfig.vue (logs)"] QueryListSpec["QueryList.spec.ts (new tests)"] -- tests --> QueryListVue ``` <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>11 files</summary><table> <tr> <td><strong>ImportPipeline.spec.ts</strong><dd><code>Add thorough unit tests for ImportPipeline</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-228ad64e4e9ffc0096add762a2619f4531b1fdd638a18b02d031f98bda0f76fd">+1083/-0</a></td> </tr> <tr> <td><strong>RunningQueries.spec.ts</strong><dd><code>Add comprehensive tests for RunningQueries view</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-b73fab81a4d70291bca59d1f0f408f872705829fadad6b8b6fe1165d8f022490">+680/-0</a> </td> </tr> <tr> <td><strong>RunningQueriesList.spec.ts</strong><dd><code>Add unit tests for RunningQueriesList table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-b80dbf8f275c5bbdae8c5b1b336a67d3dbc6aa8e6f27dd4b8be548c1e6eafae3">+664/-0</a> </td> </tr> <tr> <td><strong>plans.spec.ts</strong><dd><code>Add unit tests for billing plans component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-4398fd7c1bd0322c6a964f63b59dd79a190c2f089792460ec43dfa1cd9a8063f">+664/-0</a> </td> </tr> <tr> <td><strong>OtelConfig.spec.ts</strong><dd><code>Add unit tests for logs OtelConfig generator</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-46fbf1ab0a2ead705ff5593e115166853ebdfc66e463f893b7e8934bb50bacde">+340/-0</a> </td> </tr> <tr> <td><strong>invoiceTable.spec.ts</strong><dd><code>Add unit tests for invoice table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-a95d419747ed8c8f054d4633d524261b34d709e091af3b0ee656f1bb0c01599c">+655/-0</a> </td> </tr> <tr> <td><strong>OtelConfig.spec.ts</strong><dd><code>Add tests for recommended OtelConfig</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-f6c9086bfb3685c0483782e995b01687f40fc0d68d752fe70222512c735c79be">+529/-0</a> </td> </tr> <tr> <td><strong>SummaryList.spec.ts</strong><dd><code>Add tests for queries summary list</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-b29217e2817d222ee871ba8a205c2e89a832e59a02f0964a85a118c321f41772">+392/-0</a> </td> </tr> <tr> <td><strong>invoiceHistory.spec.ts</strong><dd><code>Add tests for invoice history component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-0a63edfe6e4c010c3f80c7afe0f22a394e666591702c376d89e4cc3d0f1f499b">+381/-0</a> </td> </tr> <tr> <td><strong>QueryList.spec.ts</strong><dd><code>Add tests for QueryList component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-e08f882439ac0d15ee00d96205df02345821408ab81bade0267f780b66b956e2">+345/-0</a> </td> </tr> <tr> <td><strong>enterprisePlan.spec.ts</strong><dd><code>Add tests for enterprise plan component</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-afe194ebfc98f24482cc388a5e8482174dd48e74c302d24c00b2c9b309b0a2d1">+271/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>ImportPipeline.vue</strong><dd><code>Expose internal methods via setup return</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670">+16/-0</a> </td> </tr> <tr> <td><strong>QueryList.vue</strong><dd><code>Support additional metaData prop</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-3daa87342834ae1e5bc6d74cb6dbd640b5b5fbb8df15c3cfe43b74c84f872d5d">+1/-0</a> </td> </tr> <tr> <td><strong>RunningQueries.vue</strong><dd><code>Update logic to align with new tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-6f0e18626a986d934c08c368ac383179c56bfcd914a27619ba748f43629c926b">+14/-0</a> </td> </tr> <tr> <td><strong>OtelConfig.vue</strong><dd><code>Minor updates to support tested behavior</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8133/files#diff-f5f5b0e070bcd827d74339487f2dd8353be1e9095fc4edf6c8c59b6b4dd56ea2">+8/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
6484335345 |
feat: added oracle database page under datasource (#8140)
### **PR Type**
Enhancement, Documentation
___
### **Description**
- Add Oracle ingestion route and page
- Include Oracle in database tabs and i18n
- Link Oracle docs in ingestion helper
___
### Diagram Walkthrough
```mermaid
flowchart LR
Routes["Ingestion routes"] -- add --> OracleRoute["/ingestion/database/oracle"]
DatabaseTabs["Database.vue tabs"] -- show --> OracleTab["Oracle tab"]
OracleTab -- loads --> OracleComponent["Oracle.vue"]
IngestionHelper["useIngestion.ts"] -- adds doc URL --> OracleDocs["Oracle documentation link"]
i18n["en.json"] -- adds key --> OracleLabel["ingestion.oracle"]
```
<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>useIngestionRoutes.ts</strong><dd><code>Add Oracle
ingestion route</code>
</dd></summary>
<hr>
web/src/composables/shared/useIngestionRoutes.ts
<ul><li>Import <code>Oracle.vue</code> component.<br> <li> Register
<code>oracle</code> child route with <code>routeGuard</code>.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8140/files#diff-29b1f8a3bf25d16999da323aefcd8cd0eff4647a0c0d737abd355a008492b2ae">+9/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>Database.vue</strong><dd><code>Add Oracle tab in
database list</code>
</dd></summary>
<hr>
web/src/components/ingestion/Database.vue
- Add Oracle tab entry with icon, label, and route.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8140/files#diff-9f043be1b81e96e163d333d8fac934fbd8cf9009076eeaaf2bd8ee360a3e913c">+12/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>Oracle.vue</strong><dd><code>Create Oracle ingestion
component</code>
</dd></summary>
<hr>
web/src/components/ingestion/databases/Oracle.vue
<ul><li>New Oracle ingestion component with copyable content.<br> <li>
Links to Oracle documentation via composable.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8140/files#diff-7b4b75f7f33025d817df39548bd9209f634f26b7c494c868a3fe1c17eca75765">+37/-0</a>
</td>
</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>useIngestion.ts</strong><dd><code>Include Oracle docs
URL</code>
</dd></summary>
<hr>
web/src/composables/useIngestion.ts
- Add `oracle` docs URL to `databaseDocURLs`.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8140/files#diff-3691717c742137402219c92e4bb4a5943d2676e058e2320bd009faa40ee2ce6a">+1/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>en.json</strong><dd><code>Add i18n label for
Oracle</code>
</dd></summary>
<hr>
web/src/locales/languages/en.json
- Add `ingestion.oracle` label.
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8140/files#diff-892aa3d75ab6e129ef9116aa21bec1b9a15ba69ce5366d2a19128078c690d824">+1/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
dd0fbf147a |
fix: remove environment option from list (#8141)
### **PR Type**
Enhancement
___
### **Description**
- Split index options for environment fields
- Remove env options from default list
- Conditionally render options based on row settings
- Expose new env options in component state
___
### Diagram Walkthrough
```mermaid
flowchart LR
UI["Schema Index Select (QSelect)"]
RowCheck["isEnvironmentSettings(row)"]
DefaultOpts["streamIndexType"]
EnvOpts["streamIndexTypeEnv"]
State["Component exports"]
UI -- evaluates --> RowCheck
RowCheck -- true --> EnvOpts
RowCheck -- false --> DefaultOpts
EnvOpts -- provided as :options --> UI
DefaultOpts -- provided as :options --> UI
EnvOpts -- added to --> State
```
<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>Split and conditionally
apply environment index options</code> </dd></summary>
<hr>
web/src/components/logstream/schema.vue
<ul><li>Add <code>streamIndexTypeEnv</code> with environment-only
options.<br> <li> Remove environment options from
<code>streamIndexType</code>.<br> <li> Conditionally set QSelect
<code>:options</code> based on
<br><code>isEnvironmentSettings(row)</code>.<br> <li> Expose
<code>streamIndexTypeEnv</code> from setup return.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8141/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+7/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
15c019fe93 |
fix: regex patterns introduce search as well (#8134)
### **User description**
1. we are now support both redaction or dropping of matched regex field
during search time and ingestion time
___
### **PR Type**
Enhancement, Bug fix
___
### **Description**
- Add confirmation dialog before removing pattern
- Support deselecting apply_at with safe revert
- Generalize redact/drop copy beyond ingestion
- Track dialog state and handlers
___
### Diagram Walkthrough
```mermaid
flowchart LR
UI["AssociatedRegexPatterns.vue"]
Dialog["ConfirmDialog component"]
State["showWarningDialogToRemovePattern state"]
Logic["apply_at change handler"]
Revert["transformApplyAtValue + cancel handler"]
Actions["handleAddOrRemovePattern"]
UI -- "imports & registers" --> Dialog
UI -- "manages" --> State
Logic -- "empty selection triggers" --> State
State -- "cancel" --> Revert
State -- "ok" --> Actions
Revert -- "restore previous apply_at" --> 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><table>
<tr>
<td>
<details>
<summary><strong>AssociatedRegexPatterns.vue</strong><dd><code>Confirmation
and apply_at handling improvements</code>
</dd></summary>
<hr>
web/src/components/logstream/AssociatedRegexPatterns.vue
<ul><li>Add ConfirmDialog to confirm pattern removal.<br> <li> Introduce
state and handlers for removal flow.<br> <li> Allow empty apply_at to
trigger confirmation; revert on cancel.<br> <li> Simplify redact/drop
help text; remove hardcoded ingestion fallback.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8134/files#diff-c6fce5e1c83798991b6ff19effb23c67af59f38fac0b9e56dcab7a09d139f550">+57/-11</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
0a63a10032 |
fix; UI unit test case v7.2 (#8132)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add comprehensive settings unit tests - Introduce regex patterns test suite - Expand MSW handlers for settings APIs - Add mock data for regex patterns ___ ### Diagram Walkthrough ```mermaid flowchart LR Specs["New settings/regex spec files"] -- "use" --> MSW["MSW rest handlers"] MSW -- "serve" --> Mocks["Regex patterns mock data"] Specs -- "mount" --> Components["Settings components"] ``` <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>6 files</summary><table> <tr> <td><strong>AddRegexPattern.spec.ts</strong><dd><code>Add end-to-end unit tests for AddRegexPattern</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-8010ecaba14a295a81248da3901421fe133feb14b178512a4690d2c76eabde03">+626/-0</a> </td> </tr> <tr> <td><strong>CipherKeys.spec.ts</strong><dd><code>Add full unit tests for Cipher Keys page</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-017c69ca1a10dd456e41c8fd188539c6b8c57c0437351710a177358ae3db1fef">+787/-0</a> </td> </tr> <tr> <td><strong>General.spec.ts</strong><dd><code>Add unit tests for General settings and branding</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-f3b556321cf5c1b7cfcc36507d050f70ea355971d718ddb6bafa6faf2dc6d298">+851/-0</a> </td> </tr> <tr> <td><strong>NoRegexPatterns.spec.ts</strong><dd><code>Add unit tests for empty Regex Patterns state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-92a31474de14534958fdf8056a7e6ab9334493c92740fe1ed738fabf01de18cd">+361/-0</a> </td> </tr> <tr> <td><strong>index.spec.ts</strong><dd><code>Add unit tests for Settings index navigation and tabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-7c2e13b69b48077a1e82e767fa048995d42d4bef03362f19ad0897f7e2a4dfb3">+543/-0</a> </td> </tr> <tr> <td><strong>regexPatterns.ts</strong><dd><code>Add mock data for regex patterns and results</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-c7324fdbffcb15b12d0597c7235234970331a4e4819611e1241a00b1b936f570">+41/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>handlers.ts</strong><dd><code>Extend MSW handlers for settings and regex APIs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8132/files#diff-fa72375a2848d474b311c07cf6aef7d6117b1f4d88f56a74c9207f39df72333c">+96/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
e92ed4bcc2 |
fix: Traces Component Testing (#7877)
### **PR Type** Tests, Enhancement, Bug fix ___ ### **Description** - Extensive unit tests for TraceDetailsSidebar and TraceTree - Add data-test attributes across trace components - Handle zero duration in formatTimeWithSuffix - Fix highlightSearch quoting and JSON formatting ___ <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody></tr></tbody></table> </details> ___ |
||
|
|
4963bd648d |
fix: parse cte query to extract stream name (#8102) (#8116)
### **User description** - #8080 - #8098 ___ ### **PR Type** Bug fix, Enhancement ___ ### **Description** - Fix stream selection for CTE queries - Add robust stream extraction utility - Make query updates async-aware - Adjust watchers to trigger reliably ___ ### Diagram Walkthrough ```mermaid flowchart LR SQL["SQL query (incl. CTE)"] -- parse --> Extract["getStreamNameFromQuery()"] Extract -- returns stream --> Panel["useDashboardPanel: updateQueryValue()"] Panel -- set --> StreamField["currentQuery.fields.stream"] Watcher["Vue watch hooks"] -- trigger on changes --> Panel ``` <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>FieldList.vue</strong><dd><code>Stabilize watcher for stream type changes</code> </dd></summary> <hr> web/src/components/dashboards/addPanel/FieldList.vue <ul><li>Change watcher source to array form.<br> <li> Ensure stream list reloads on type changes.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8116/files#diff-a071c06e3e26629cb4ae4751450acc39c61fa49b07a1cc4be3711697829668d4">+5/-3</a> </td> </tr> <tr> <td> <details> <summary><strong>sqlUtils.ts</strong><dd><code>Add robust stream extractor for SQL/CTE queries</code> </dd></summary> <hr> web/src/utils/query/sqlUtils.ts <ul><li>Add <code>getStreamNameFromQuery</code> to parse SQL/CTE.<br> <li> Safeguard recursion and circular refs with WeakSet.<br> <li> Handle FROM, WHERE, SELECT subqueries.<br> <li> Gracefully handle parser errors.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8116/files#diff-dde40e8fcb5c37b06c011ede08922c44a3c025682fbc341aee97ba046b73a0e3">+76/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Bug fix</strong></td><td><table> <tr> <td> <details> <summary><strong>useDashboardPanel.ts</strong><dd><code>Async query parsing and CTE-aware stream resolution</code> </dd></summary> <hr> web/src/composables/useDashboardPanel.ts <ul><li>Import <code>getStreamNameFromQuery</code>.<br> <li> Make <code>updateQueryValue</code> async and await in watcher.<br> <li> Use stream name from parser for selection, including CTE.<br> <li> Remove redundant parsing branch; minor bug introduced in logs flag.</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/8116/files#diff-fbba1700750053b9eaf38ddd30dab84531bc44131c795ebb713811e4930cd7cb">+15/-23</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ |
||
|
|
ebe5c0e73e |
feat: search time patterns (#8104)
### **PR Type** Enhancement, Tests, Documentation ___ ### **Description** - Apply regex patterns at search time - Map projections to source columns - Integrate enterprise pattern manager - Add tests for projection extraction ___ ### Diagram Walkthrough ```mermaid flowchart LR SearchReq["Search request"] -- "execute query" --> DatafusionPlan["DataFusion logical plan"] DatafusionPlan -- "extract projection mappings" --> ProjMap["ProjectionColumnMapping"] SearchReq -- "fetch hits" --> Hits["Search results (hits)"] ProjMap -- "guide field processing" --> PatternMgr["Pattern manager (enterprise)"] Hits -- "apply regex patterns" --> Hits2["Transformed 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>Enhancement</strong></td><td><details><summary>6 files</summary><table> <tr> <td><strong>mod.rs</strong><dd><code>Expose projections module in meta</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-bab79e8da2d0d9f903cb1a6187d922c6de63d3e4561e8ce633660b664b4e859f">+1/-0</a> </td> </tr> <tr> <td><strong>projections.rs</strong><dd><code>Add ProjectionColumnMapping structure</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-2432b13a92a92cdbd1aa1ee0fbdde05827a67c37081e7f0ecc127a4effbe3101">+26/-0</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Post-process hits with regex patterns</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-f07bfacc0501b9c234e64b16c1dd8eb0ae8fcbe231f90c81fed72bcc94946f74">+61/-2</a> </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Register regex_projections planner module</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-70bb941c2eef1365e5ead1a59b65c5397457b9197a4e22596e18d17db7eaf922">+1/-0</a> </td> </tr> <tr> <td><strong>cache.rs</strong><dd><code>Apply regex patterns to cached responses</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-55769b7cb67b550daf45363c6d7d569b39d4a6235f6a68c091beb40f16b6511e">+10/-0</a> </td> </tr> <tr> <td><strong>execution.rs</strong><dd><code>Apply regex patterns in streaming paths</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-75d432351865224f0b00d7cc819554c2ad5fa1f777e9c645d91a3fd5c1113bc0">+35/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>regex_projections.rs</strong><dd><code>Extract projection source columns with tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-b329e80dfa025fabb0ef51b6dc25285aaadc00ab7862157deb0eb7b0b01bb494">+500/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>AssociatedRegexPatterns.vue</strong><dd><code>Enable UI section for detect-at choice</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8104/files#diff-c6fce5e1c83798991b6ff19effb23c67af59f38fac0b9e56dcab7a09d139f550">+1/-1</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
c5bc2f97c2 |
fix: made fn editor by default false (#8000)
This PR fixes the issue #7960 |
||
|
|
4c03ed1a43 |
fix: normalize the limit to 100 by default (#8075) (#8078)
### **User description**
1. This PR changes the user limits to 100 by default while validating
the query so it will solve the issue of larger limit
2. we dont change the original query but instead while sending for the
validation we replace the limit if it is greater than 100 to 100
3. it will also detect limit in the entire query so multiple limit is
possible in ctes , sub queries so handled that as well
4. if no limit then we will simply return it
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Normalize SQL LIMIT during validation
- Cap LIMIT to 100 across query parts
- Preserve original user query intact
- Handle multiple LIMIT/OFFSET safely
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["User SQL"] -- "pass to validation" --> B["normalizeLimit(sql, 100)"]
B -- "replace LIMIT > 100" --> C["Capped SQL for validation"]
B -- "no LIMIT found" --> D["Original SQL for validation"]
```
<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>Query.vue</strong><dd><code>Add SQL LIMIT normalization
for validation path</code>
</dd></summary>
<hr>
web/src/components/pipeline/NodeForm/Query.vue
<ul><li>Use normalizeLimit before assigning query SQL for
validation.<br> <li> Implement normalizeLimit to cap LIMIT to maxLimit
(default 100).<br> <li> Support multiple LIMIT/OFFSET occurrences via
regex replacement.<br> <li> Add error handling and comments; keep
original query unchanged.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8078/files#diff-6247cbd506bcf963372f2e429507fc579af95f003df246889b478da11326a657">+36/-1</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
f78f5d79c8 |
fix: added unit test cases (#8121)
### **User description** with this PR the coverage is -----------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -----------------------------------------------|---------|----------|---------|---------|------------------------------------------------------------------------------------- All files | 48.05 | 82.25 | 50.81 | 48.05 | ___ ### **PR Type** Enhancement, Tests, Bug fix ___ ### **Description** - Add comprehensive unit tests across modules - Expose component internals for testability - Safely access org identifier with optional chaining - Minor exports to composables for testing ___ ### Diagram Walkthrough ```mermaid flowchart LR components["Vue components"] expose["Expose methods/refs via defineExpose"] specs["New/expanded unit tests"] fixOrg["Optional chaining for org identifier"] composables["Composables export additions"] components -- "defineExpose, returns additions" --> expose expose -- "enables" --> specs components -- "query params use ?.identifier" --> fixOrg composables -- "export more helpers" --> specs ``` <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><details><summary>1 files</summary><table> <tr> <td><strong>index.vue</strong><dd><code>Use optional chaining for org identifier in routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-699c63979f851c48ad440a078e93282fd797a18fc065e5331b2e41122ddb8b69">+15/-13</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>39 files</summary><table> <tr> <td><strong>Stream.vue</strong><dd><code>Expose stream form methods and state for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1a17ced9dc89022502cab0a6f9b97b413c2a2c4f8219733d063fc0180d361739">+33/-0</a> </td> </tr> <tr> <td><strong>RealTimeAlert.vue</strong><dd><code>Expose alert editor methods/data for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c3ae6b47832eb33f9ca877cc7165d079de14850e5c5d43a227102ba40326b9d8">+19/-0</a> </td> </tr> <tr> <td><strong>ExternalDestination.vue</strong><dd><code>Expose destination form functions and state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-7ed6a9ef676d7d6db5440d4157512f731bad58716c351ca39015125a8a9d2df5">+22/-0</a> </td> </tr> <tr> <td><strong>PerformanceSummary.vue</strong><dd><code>Export additional helpers and imports for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-fdf59594c111c1af03772c9deef4ba07cf2c2d00c9609737a0ea3e3c76fb1c1b">+3/-1</a> </td> </tr> <tr> <td><strong>StreamFieldInputs.vue</strong><dd><code>Expose field input handlers and state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c8173413939f320f197b0f8790e619da18666f79009345f72b3325e89bbb7566">+17/-0</a> </td> </tr> <tr> <td><strong>FilterGroup.vue</strong><dd><code>Expose group manipulation helpers for testing</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-8d5a73bea3aa0b5c86d48cda4a61ee3e30f27797ac2a5add1ee8bd66c75bef23">+17/-0</a> </td> </tr> <tr> <td><strong>ImportDestination.vue</strong><dd><code>Expose validation and helper functions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-814b8ef1dbb4eebca9dfab72452d9a90d5f3fa5886dea8e82ac0bde44f66b445">+7/-0</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.vue</strong><dd><code>Expose list helper functions and selectedPerPage</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+6/-0</a> </td> </tr> <tr> <td><strong>SearchBar.vue</strong><dd><code>Expose additional editor and action handlers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+11/-0</a> </td> </tr> <tr> <td><strong>ImportTemplate.vue</strong><dd><code>Expose template validation and helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-d22684c5142a49b8925a9dba1ef67631128caa95de66e71ba2a5b8120a0b91c6">+6/-0</a> </td> </tr> <tr> <td><strong>IndexList.vue</strong><dd><code>Expose websocket/search helper functions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-08f058f883b659e713e606991a7ea37ae1ff016b7cccef970489ab5840dc3d09">+11/-0</a> </td> </tr> <tr> <td><strong>ImportAlert.vue</strong><dd><code>Expose alert validation helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-0f40dbf2757672e39ad16b86dddc59b568ca2e6ca36850420cd7be617da12d38">+4/-0</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.vue</strong><dd><code>Expose destination list helpers for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+7/-0</a> </td> </tr> <tr> <td><strong>SysLog.vue</strong><dd><code>Expose syslog route helpers and state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-2f538c29fd1d51aa470edad915666faca1deade7413645f033f2a67354b3726c">+9/-0</a> </td> </tr> <tr> <td><strong>TelegrafConfig.vue</strong><dd><code>Expose ingestionURL in setup for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f934fcfd5f71fff85e099f5ddf133a1cdd2a02aa3ade339dee73d54474480acf">+2/-0</a> </td> </tr> <tr> <td><strong>schema.vue</strong><dd><code>Expose schema helpers and formatters</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9196be2ccae4054a00b0b1aa9d1e87b366c10920d6eaf9ef8c6e6293d50bcf46">+7/-0</a> </td> </tr> <tr> <td><strong>AssociatedRegexPatterns.vue</strong><dd><code>Expose pattern state/check helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c6fce5e1c83798991b6ff19effb23c67af59f38fac0b9e56dcab7a09d139f550">+6/-1</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Return defaultValue for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-41d2f8fac44084c004d8386ea4cc32e9c5d3e33266c4009cc855e57fb00a41af">+1/-0</a> </td> </tr> <tr> <td><strong>ImportRegexPattern.vue</strong><dd><code>Expose regex pattern validation and helpers</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-e8e1bcb5a02311504d7d571090eab27a270aaa71cae185ad2703023e2e70a31e">+4/-0</a> </td> </tr> <tr> <td><strong>SearchSchedulersList.vue</strong><dd><code>Expose date helpers and router</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-0c0a4097c53f07712d35562b1336602bf24faddedab77a9f5717f5582dcac2f1">+5/-0</a> </td> </tr> <tr> <td><strong>MoveAcrossFolders.vue</strong><dd><code>Expose getModuleName from setup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-3826ffbf7e4cbae5b621527c9df856e1bd3b349b78d4a6c514b6967636d04237">+1/-0</a> </td> </tr> <tr> <td><strong>SearchResult.vue</strong><dd><code>Expose row/partition helpers and column sizes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+5/-0</a> </td> </tr> <tr> <td><strong>AddUpdateTicket.vue</strong><dd><code>Expose validation/upload methods via expose</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-bd6f97ffe635a2127610e0bbc94b1c9fe40a6ca1dff98e72efc4a449116c59db">+2/-0</a> </td> </tr> <tr> <td><strong>usage.vue</strong><dd><code>Expose getUsage and router</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-87c1e1d75e488a25773db68ada1e49913ad50be7971fbb588939941a3ea6302b">+2/-0</a> </td> </tr> <tr> <td><strong>Databricks.vue</strong><dd><code>Expose database config state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-2ff8f0c23b75de8b87f86d00af9de4f6c8ceb335ade6cbef227cb37f26d42ae6">+4/-0</a> </td> </tr> <tr> <td><strong>SqlServer.vue</strong><dd><code>Expose database config state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-23653eb1e4b5fa9fc519ac44cdf06b01e645d61c86340e59fcf58eb11702008f">+5/-0</a> </td> </tr> <tr> <td><strong>JsonPreview.vue</strong><dd><code>Expose getTracesStreams function</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+1/-0</a> </td> </tr> <tr> <td><strong>VisualizeLogsQuery.vue</strong><dd><code>Expose hovered series and metadata</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-979b01d943d58c5d70faeeac5948b7f02f0b2392a12b84ef07ba7f7393ab0261">+2/-0</a> </td> </tr> <tr> <td><strong>FrontendRumConfig.vue</strong><dd><code>Expose defaultConfig for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a90414833508a6d5f76b245c65f2a2ff067ada5e1c5c09b1b53598a4881e2676">+1/-0</a> </td> </tr> <tr> <td><strong>OpenTelemetry.vue</strong><dd><code>Expose ingestionURL in setup</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-45be3e74a543860331e1cbb11c299a81d5f2e49030bcc3eab03dd6db09f93c5b">+1/-0</a> </td> </tr> <tr> <td><strong>Index.vue</strong><dd><code>Expose ingestRoutes for tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a8ce6281b41747a4c58b111d6c31a57f8597b2c33f79d9b236af548d5683b200">+1/-0</a> </td> </tr> <tr> <td><strong>PipelineFlow.vue</strong><dd><code>Expose store and setViewport</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9c7475a54f0c895dd49eb0c5b53fe0a76ceff0520f667a9cb065b364557ced50">+2/-0</a> </td> </tr> <tr> <td><strong>MessageQueues.vue</strong><dd><code>Expose messageQueueTabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-ab520bb9b203fc532d2544ba60b140600cbc0efb9773e000c1867076275780bc">+1/-0</a> </td> </tr> <tr> <td><strong>Database.vue</strong><dd><code>Expose databaseTabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9f043be1b81e96e163d333d8fac934fbd8cf9009076eeaaf2bd8ee360a3e913c">+1/-0</a> </td> </tr> <tr> <td><strong>Languages.vue</strong><dd><code>Expose languagesTabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-5ac446e8fed967883b402dfe4ff686717138a76f0333c2416a6b6f955a0086fc">+1/-0</a> </td> </tr> <tr> <td><strong>Networking.vue</strong><dd><code>Expose networkingTabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-ca61b8331afde2b46c0a193e0cc31e2b6b8a915aad1841fbbda229450af02726">+1/-0</a> </td> </tr> <tr> <td><strong>Recommended.vue</strong><dd><code>Expose recommendedTabs</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-d52f7f52bf8f6d3d639e5d0a550bed82223cd4fbd3eee3c257b7f80e0b8ee6d2">+1/-0</a> </td> </tr> <tr> <td><strong>SearchBar.spec.ts</strong><dd><code>Rewrite and expand SearchBar unit tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-63ac75d3fe278dad233e7dd7c51b3b33076d54a776b89ae05190d8522130c78b">+1058/-1118</a></td> </tr> <tr> <td><strong>GCPConfig.spec.ts</strong><dd><code>Add unit tests for GCP config logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-76e896e96fdae254b7b569e0d3afdea55b05c7777d6eda2da0374fe782d74457">+533/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>usePromqlSuggestions.ts</strong><dd><code>Export additional suggestion helpers/state</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-250bf4b2d8cb3845005f72188d73ab954359f841e15c4f217708beac1493e83a">+4/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Additional files</strong></td><td><details><summary>101 files</summary><table> <tr> <td><strong>App.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-e5d10660c09127e3b4234cd8fe18303e53db38e43a1c5a6edb13032afbebe28f">+291/-0</a> </td> </tr> <tr> <td><strong>AutoRefreshInterval.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-4fae96431d981a4338e96dd393820e3497ed56382adc77fab6024f6efd15bd4c">+320/-0</a> </td> </tr> <tr> <td><strong>ConfirmDialog.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-16ffba01e15b66513827b99a68c002b567e65bd1124f9bcf7c4db8db5795df8a">+61/-0</a> </td> </tr> <tr> <td><strong>CopyContent.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a09160ad7355806c5f4f5b0194a6026ed7c24a77f3de0bce58ffa67c4e97de4d">+348/-0</a> </td> </tr> <tr> <td><strong>CustomDateTimePicker.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f3c4dc21e87d485ae2d167b1f4e993ffc00b941b207a664ea504468842f4d428">+338/-0</a> </td> </tr> <tr> <td><strong>DateTime.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-ee6ae1a77af32afb0b0410cbe812d546c8639815748908e716d48a189695d8ec">+543/-0</a> </td> </tr> <tr> <td><strong>MenuLink.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-bd04ff500fc31583a430993830eed36cdf6254c2ce1a52b8a58a07b89bb9f825">+56/-4</a> </td> </tr> <tr> <td><strong>PendingSubscriptionWarning.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a38d050077b70a4e16ed3fa89df6978e0d15284b824fc1840ed3d0f10403f9f8">+301/-0</a> </td> </tr> <tr> <td><strong>ResumePipelineDialog.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-ca982d78b8c120585dcf75837fbc09426c3fa2dd7e0f3a8d6cdbf9954aee6027">+136/-0</a> </td> </tr> <tr> <td><strong>RouteTabs.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f4940a707bb9a1790b34d87c2588bb957876214edbfaf0072b2519afe230d077">+400/-0</a> </td> </tr> <tr> <td><strong>SanitizedHtmlRenderer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-b45de775a1fc42af052b7af7b5c0b40512fab530db228a548e5bbe0510e774de">+350/-0</a> </td> </tr> <tr> <td><strong>FileItem.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-189b4998b9446d2b44aa820117eb54f555e15fb5d12dbd5bf61b4722fbc85b4e">+395/-0</a> </td> </tr> <tr> <td><strong>ScriptEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-7989b3c2125f44e258f2e1e12dbb6e0608c2cfd6165619815501c8a4548b641c">+408/-0</a> </td> </tr> <tr> <td><strong>ScriptToolbar.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-5057edcc2e7f7f2bd115d1ad3b00bb668607662edee60131ba04fd078e41eaef">+412/-0</a> </td> </tr> <tr> <td><strong>AddAlert.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-84362398fea8abd9acf30f4f40ba8d4cf27348677454017bd4e6f568d5176ac6">+5/-3</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-796a77635e67bca70cc19a671e1862438f78a9391ede0e936763e2204bd7a876">+709/-0</a> </td> </tr> <tr> <td><strong>FilterCondition.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-d09ca687da324598f7c1f17610406dda5c47faba21b1eba5dd606ce8f5a2671e">+463/-0</a> </td> </tr> <tr> <td><strong>FilterGroup.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1628547d4b6650b1e87817989b84ffb25895c64ad789457b094860fcd7f13447">+1405/-0</a></td> </tr> <tr> <td><strong>ImportAlert.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-553f61b4cb949550d09d7016031a29361e4aaa22ad86f20781787bc4ccf43272">+951/-0</a> </td> </tr> <tr> <td><strong>ImportDestination.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-cf334a840c66788867f54f726f5d9431f8e1197637c641469a34e63facfcb180">+815/-0</a> </td> </tr> <tr> <td><strong>ImportTemplate.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1a14d1b5cdc535c0fd982bcb6c02af07b647d5013922084df5d208c673eefaff">+875/-0</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f749b2cdb5476b289a38418201bf27c69a7e9ab01237f6ffefc7b23392c3ff71">+529/-0</a> </td> </tr> <tr> <td><strong>RealTimeAlert.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-3b33541be3d07c04f1afd3b0a716e683b804b4f8adcba09b4fc5f3ddd0c14ef6">+693/-0</a> </td> </tr> <tr> <td><strong>ScheduledAlert.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c85c209fe2d6eb3e8a223ddc1124e713f21ce3bbddf657be931cf8726f2e2934">+1197/-0</a></td> </tr> <tr> <td><strong>VariablesInput.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1c6c211f8e8e49e12619c73ac450cfdc6f92f5ffc533bf09716477fa37154786">+353/-0</a> </td> </tr> <tr> <td><strong>AddCipherKey.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1ae71f00dfb6f9424d2443856ca3a419aaf2ee0c08900f7ef2ca44e41c1982e9">+507/-467</a></td> </tr> <tr> <td><strong>AppDialog.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-28cde24b3e035186bbdf389f3c7560ba087588fd52d377c5615d50a6b5ad3dc7">+443/-0</a> </td> </tr> <tr> <td><strong>AppTabs.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1a762da82b05a89aaea5cfac75315972be2fcc622d8dcabd9bb6e10a091a2e9d">+132/-0</a> </td> </tr> <tr> <td><strong>JsonEditor.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-be62ee12fe0b191ed850f0d8c6be49abc52596a06bfd10ac037ecc8f758d2660">+107/-0</a> </td> </tr> <tr> <td><strong>LoadingProgress.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-6096c465ac03fdbe599251405ff150d38ffc2f42be501d93723a6cc9f8eeae52">+153/-0</a> </td> </tr> <tr> <td><strong>RelativeTime.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1ab920651a73975c32a1e00c0c6c0596866bf65b6aeec005e0d17f5084fddfef">+75/-0</a> </td> </tr> <tr> <td><strong>AddFolder.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c47fb42fd03cf2b19f7c1da98ec484699730d00d2a5ae348002df727c6f009b4">+545/-0</a> </td> </tr> <tr> <td><strong>FieldList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-b32e6b73a1268169f32fcd0a092350e543c3d4ffb00eef685aed4ba8c36ac6a1">+907/-0</a> </td> </tr> <tr> <td><strong>MoveAcrossFolders.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-4bce3286733956ade6e6f93cc65f471314a07e610b7e3f57a95050f683fc688a">+1385/-0</a></td> </tr> <tr> <td><strong>AddFunction.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-5bf8cf7b136d01ade73a969358f28642eca484ee1f93008f2787405bc928c0df">+883/-0</a> </td> </tr> <tr> <td><strong>EnrichmentSchema.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-020714ac53ba9e0397b5f0d7fa40bbb54638a30858d2e85693e117e3616c03d1">+394/-0</a> </td> </tr> <tr> <td><strong>FullViewContainer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-498a7631461da0b1acbb272f4e1be20f999a28cdbf66f3e2f86b2f59b82841fd">+503/-0</a> </td> </tr> <tr> <td><strong>FunctionList.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-555eb5d72b94d73c66cc303b1e3cece61564b622f7b1010219a23761c21f4c55">+0/-618</a> </td> </tr> <tr> <td><strong>TestFunction.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c1b26d908f381d548650300e436d7b2e22410ef4e3d6508287c951add6633f3c">+598/-0</a> </td> </tr> <tr> <td><strong>ServiceAccountsList.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-7b77b3425b30af8671b95b2c74702c89cf374669c2dc67a0b49ec182d30bedcd">+415/-99</a></td> </tr> <tr> <td><strong>AscSort.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-afc2d5fea4960d77d9f0487a89139f5409c9f55e34c3a58aedc8664cb9465c36">+200/-0</a> </td> </tr> <tr> <td><strong>DescSort.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f6c074687e3f02ec34f0c398f64a100f5511baf1789e5dd280d48f999dfd8505">+231/-0</a> </td> </tr> <tr> <td><strong>FunctionIcon.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-5ce858f61f52bf2fdad1dc34d3ecdd852f38c66e329b6f71a4eb25f745530ada">+313/-0</a> </td> </tr> <tr> <td><strong>PipelineIcon.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-28fb2dcadc48a4bf7407fe99d2dddcd4993b430fe8398db23c786abd9cdad427">+340/-0</a> </td> </tr> <tr> <td><strong>Custom.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-75fb68bb0e3ab0416c7a6840bd615a0432026c0675b7b8db80cedd8a29f07d0f">+941/-0</a> </td> </tr> <tr> <td><strong>Database.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-890a9b5f5bde73f36522a300d5ada6f14fae2a94bdb3f061ac3e7d1d0cb9cd8e">+775/-0</a> </td> </tr> <tr> <td><strong>DevOps.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-8dbbccb5f29f0766ead95f3aea538f5f5b85ec3b2ff8fbedbaff50f0c5771ab4">+331/-0</a> </td> </tr> <tr> <td><strong>Languages.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-34642bc2e6238f98a78fe2185eadd4995749ae336204bfb6095620369268e7d1">+753/-0</a> </td> </tr> <tr> <td><strong>MessageQueues.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-eee646fcdd254e0be152dfb3f2c6749b1710b6ec6be272b8c5f865b83d2853df">+526/-0</a> </td> </tr> <tr> <td><strong>Networking.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-aff8de29d05af2b04cc0b83ab292896c79a6d68cfb3649c10ec517679b73e97e">+659/-0</a> </td> </tr> <tr> <td><strong>Others.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-56f4544b83413f5b8d87c5fec280204b75388a0686c388445b3eceaef523f10e">+493/-0</a> </td> </tr> <tr> <td><strong>Recommended.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-86de7fab5e678188cf1b96d463809fa645abd8d1a19d86cd3f2214b12fac3c43">+557/-0</a> </td> </tr> <tr> <td><strong>Security.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-952301dec9efb69bbdc3b82753e8a7c86d64a67e3cd544fcc50f118fcd1d017e">+623/-0</a> </td> </tr> <tr> <td><strong>Server.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-80a46b98c8aef2059b9d25de464c3450aa3310c02d1a4bbfcd32a706b5d0334c">+667/-0</a> </td> </tr> <tr> <td><strong>Databricks.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-0cc6f4230b08c6d1f888bae4c5d9f11169714506be5f3be77b371ced9d084936">+350/-0</a> </td> </tr> <tr> <td><strong>Postgres.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-046ae7ca570ff9960c83ec5fca8a95110a5158ceafda48549bdf47ccc5c71b71">+498/-0</a> </td> </tr> <tr> <td><strong>SqlServer.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-33abd49e96a5a6ecb0e07f76f3b55cb53a12674ddd450890ec185eb85e33fae3">+313/-0</a> </td> </tr> <tr> <td><strong>Curl.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-755d02153c11d74b259e12605ae3ad203b01507c4f778347616ed4c1ba542024">+374/-24</a></td> </tr> <tr> <td><strong>FileBeat.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-d4f433b57979c49407559afd1b9a35131cf823a29596882f46aca6aa8789a777">+389/-0</a> </td> </tr> <tr> <td><strong>FluentBit.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9bb84df5402b65026cdf6fe4ead0937f825f129538f4e7e6291492a9b9ade289">+362/-27</a></td> </tr> <tr> <td><strong>Fluentd.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-b0d737e6ac8536493791c38acde3b0b339bae519b8ce58fb780f794bc31f62d1">+382/-23</a></td> </tr> <tr> <td><strong>LogstashDatasource.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-2cd019295a25886a037e6ede5cad795b52851a377f48beb46f3897bc6d64a20b">+522/-0</a> </td> </tr> <tr> <td><strong>SysLog.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-98526471b0f8a5a7547c205c9da6f8b4e62f20c6ee728b687225d4ee1c564758">+966/-0</a> </td> </tr> <tr> <td><strong>SyslogNg.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c1afe13c4d7ccf6c9e360c4beff423e785f52c05b58340acf5d0e11fbc77bfc3">+787/-0</a> </td> </tr> <tr> <td><strong>Vector.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-35a48d805d8ded5b793d07c4dbb85cfafb759d073e597758cb999ed28eaf3f31">+571/-26</a></td> </tr> <tr> <td><strong>ingestionIndex.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-aa6c7d67f4885ef49f587f3dde7760ba3eabea6478e776aede5f86ab4ca76e75">+570/-0</a> </td> </tr> <tr> <td><strong>CloudWatchMetrics.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-d2e18e89f6400e04f77e4dff297030ffdf6306038d7cfe08315e0736cd0520f4">+615/-0</a> </td> </tr> <tr> <td><strong>PrometheusConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9026aa740243dc87d7be703fad5ad83e8ebdbb907b20b0f75a653ea3514dd6b4">+416/-0</a> </td> </tr> <tr> <td><strong>TelegrafConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-9de7588766a4cc480d9b053d4c6dd34bad93c4e85c6580c2d8f04073f8f0fa25">+350/-0</a> </td> </tr> <tr> <td><strong>AWSConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a40ad271f4e88e42c4e746b5ce54ef0dceca122bedf3f9fa1f0571765001c680">+500/-0</a> </td> </tr> <tr> <td><strong>FrontendRumConfig.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-28bda2968dbbe401bacf2ce4a95e566d4672d59dafdf309d9a66dd567734af9a">+945/-0</a> </td> </tr> <tr> <td><strong>OpenTelemetry.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-489085e78e204c6e2b6dfdf21f1e48fef86d4bc4dd6f36869f9a2164027b3b7b">+554/-0</a> </td> </tr> <tr> <td><strong>Login.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-746b43968d685362866c3f97bf2b5e0846bac7463fe1ecb080c1c7d962cb855b">+994/-0</a> </td> </tr> <tr> <td><strong>AssociatedRegexPatterns.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-4ca41bf14fd6a3c79a3877324a7c7520a25d1d33f97fe947b2f6dd4bbf6ca5b4">+1384/-0</a></td> </tr> <tr> <td><strong>Schema.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-27aac0c27d14c76ae7d02277822392d29777f07fb588bc4a19d93cc0379a25e6">+593/-677</a></td> </tr> <tr> <td><strong>StreamFieldInputs.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a421936485eb26fe8b6c1a89cd0b40de202936fd57b49957e8ac1521a4641f57">+469/-0</a> </td> </tr> <tr> <td><strong>ExternalDestination.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-716d02dd388d827ba64d21320834f07a281242627dbce78a9d29fa84e2727a42">+0/-584</a> </td> </tr> <tr> <td><strong>ExternalDestination.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a404d8244c3beb0122fbd403d2b8b410a934aacd3e498c73499204db85bc790e">+1029/-0</a></td> </tr> <tr> <td><strong>Query.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-28606cc9e509c3f1c132551ed29c46ef168444b4425cf5e81e0eff65302a9d16">+950/-0</a> </td> </tr> <tr> <td><strong>Stream.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f0e36c3bdbe8da79becc97e236de086bec117c4272ef4a7691a3330835993e40">+232/-5</a> </td> </tr> <tr> <td><strong>PipelineView.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-f78a1273b1fb7f5696f364f509b6bd13a1536a160b4fd98260cc8e61750e96f9">+600/-0</a> </td> </tr> <tr> <td><strong>PipelinesList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-afcaf75b1dd20ccf66bd61334ba262512135a3f85593310890a774421d50265e">+712/-0</a> </td> </tr> <tr> <td><strong>pipelineCommonValidation.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-820d4f4f076840724bd6f0e7b5a9da1cbacea4d074249f07c957120b6601ac38">+311/-0</a> </td> </tr> <tr> <td><strong>pipelineCommonValidation.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-b2c4c50027aace8991d17030333e880b7d4808ab04d96e9c372d82d424235ef5">+1/-1</a> </td> </tr> <tr> <td><strong>CreateReport.spec.js</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-8a0f39751d08a258c4997c5e68edaf167ea01477528beee2295dd9f992310cc6">+0/-1854</a></td> </tr> <tr> <td><strong>PerformanceOverview.vue</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-c37f87d6d7205b9688af8c24fa6d7847c77bf35c51d4d7d1e08e6f10f3af2942">[link]</a> </td> </tr> <tr> <td><strong>PerformanceSummary.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-a2a97a13f8d5caa69d38d883576678dacecd8728386886f76d105e376879d60e">+1582/-0</a></td> </tr> <tr> <td><strong>ImportRegexPattern.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1111ec8ccc0c9b62d4791101f69855ac22baa856dedd54827970f993147c3aed">+811/-0</a> </td> </tr> <tr> <td><strong>RegexPatternList.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-df942239cac609f116dcb4aa61405a60fc718219c77af46258c34e8e86e44080">+1005/-0</a></td> </tr> <tr> <td><strong>settingsIndex.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-fc96fd3ae93a42ba09577ee2c27416e9e729f2729146f88e146e4a9473626da2">+774/-0</a> </td> </tr> <tr> <td><strong>FilterCreatorPopup.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-4167cd3f9eec0c9df78517b7514c39dcc2c0234810010d93e311879971bd552e">+439/-0</a> </td> </tr> <tr> <td><strong>NoData.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-e7f5be4faf7164f86bdfea69049db3aae0509a8d33b037bfcf799347b3a0ab0d">+335/-0</a> </td> </tr> <tr> <td><strong>NoOrganizationSelected.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1338e495c82b9d07995c13a6b245c919588012974c0f08096c7b93b5e143606c">+88/-0</a> </td> </tr> <tr> <td><strong>Pagination.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-8846923daf3fe7a897ab5956098564aeb6d1748db90f637fc39f4ac8a30e1234">+110/-0</a> </td> </tr> <tr> <td><strong>AddUpdateTicket.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-8f7eb6b61a8dfdab68d5e2f73e1d2bc9580e03290d287bcfb35802331165d118">+531/-0</a> </td> </tr> <tr> <td><strong>usePermissions.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-83e050b2b1753f98e357db0e2f8a6a353b24857640c3a522a73d0d2609a0bced">+513/-0</a> </td> </tr> <tr> <td><strong>useActions.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1bd297e5011b31dca1cb4edb6ff63a705e582dfe392e34b2e781c8051be5ee5e">+158/-0</a> </td> </tr> <tr> <td><strong>useIngestion.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-495d1e7e830eecd3e430e987a7056298d67df84282b31869bb27973aec8e4f06">+606/-0</a> </td> </tr> <tr> <td><strong>useIsMetaOrg.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-635f3965352f56c275b1309753a9f1421ffb0e8bd985b1286a012217df33eab5">+123/-0</a> </td> </tr> <tr> <td><strong>useLogs.spec.ts</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-1e4dd9056495ae6a0c1cf2b8c9e803d7372c2c1426918d848bb903b424103875">+2/-2</a> </td> </tr> <tr> <td><strong>Additional files not shown</strong></td> <td><a href="https://github.com/openobserve/openobserve/pull/8121/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
3960871ad2 |
fix: added test cases for iam groups (#8105)
### **PR Type**
Tests
___
### **Description**
- Add comprehensive IAM groups unit tests
- Cover create, list, edit flows
- Include roles, users, service accounts
- Verify notifications and error handling
___
### Diagram Walkthrough
```mermaid
flowchart LR
AddGroupSpec["AddGroup.spec: create group tests"]
AppGroupsSpec["AppGroups.spec: list/delete groups tests"]
EditGroupSpec["EditGroup.spec: edit group tests"]
GroupRolesSpec["GroupRoles.spec: manage roles tests"]
GroupUsersSpec["GroupUsers.spec: manage users tests"]
GroupSActionsSpec["GroupServiceAccounts.spec: manage service accounts tests"]
AddGroupSpec -- "emit, validate, notify" --> AppGroupsSpec
AppGroupsSpec -- "edit/delete navigation" --> EditGroupSpec
EditGroupSpec -- "tabs and updates" --> GroupRolesSpec
EditGroupSpec -- "tabs and updates" --> GroupUsersSpec
EditGroupSpec -- "tabs and updates" --> GroupSActionsSpec
```
<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>AddGroup.spec.ts</strong><dd><code>Tests for AddGroup
dialog behaviors</code>
</dd></summary>
<hr>
web/src/components/iam/groups/AddGroup.spec.ts
<ul><li>Add unit tests for AddGroup dialog<br> <li> Validate input rules
and trimming<br> <li> Mock IAM createGroup and notifications<br> <li>
Test success and error scenarios</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-2bf9c9935bbd22db8608e9b5e12c1f85ad8afcb9a4eacb5cee672e69e544a79e">+340/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AppGroups.spec.ts</strong><dd><code>Tests for Groups
list and actions</code>
</dd></summary>
<hr>
web/src/components/iam/groups/AppGroups.spec.ts
<ul><li>Add tests for groups listing table<br> <li> Cover search, add
dialog, actions<br> <li> Mock permissions, router, and services<br> <li>
Test delete flow with notifications</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-cfe60bc2c1440c6b2a41eb2db9901f922afa6adcd09ae263d4444556a1d1ac12">+486/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>EditGroup.spec.ts</strong><dd><code>Tests for EditGroup
flows and tabs</code>
</dd></summary>
<hr>
web/src/components/iam/groups/EditGroup.spec.ts
<ul><li>Add tests for editing group details<br> <li> Cover tabs, data
fetch, save payload<br> <li> Validate notifications and navigation<br>
<li> Mock child components and services</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-7683afda02004afab5d91e031b8ae82d614ecae38c926f6b6af2d3cf9528b725">+561/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>GroupRoles.spec.ts</strong><dd><code>Tests for group
roles selection</code>
</dd></summary>
<hr>
web/src/components/iam/groups/GroupRoles.spec.ts
<ul><li>Add tests for role selection table<br> <li> Cover filtering,
search, and selection sets<br> <li> Mock getRoles and permissions
state<br> <li> Verify rows/columns and edge cases</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-0833bc337b21487c4ef1deffcac799a91dbaf35241374284deb328e6482c11d9">+533/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>GroupServiceAccounts.spec.ts</strong><dd><code>Tests
for service accounts management</code>
</dd></summary>
<hr>
web/src/components/iam/groups/GroupServiceAccounts.spec.ts
<ul><li>Add tests for service accounts selection<br> <li> Cover data
fetch, filter, search<br> <li> Validate add/remove selection logic<br>
<li> Note existing bug in removedUsers logic</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-ef96f03e5a8237d18edf3b51dcf65f33d6f2938859a9a55d10eaf0f502954589">+572/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>GroupUsers.spec.ts</strong><dd><code>Tests for group
users management and org filters</code>
</dd></summary>
<hr>
web/src/components/iam/groups/GroupUsers.spec.ts
<ul><li>Add extensive tests for users selection<br> <li> Cover org
filtering, meta org, search<br> <li> Validate selection add/remove
sets<br> <li> Theme and accessibility checks included</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8105/files#diff-7a9c6922e6c8a7d2c052f7f74ceba652af41bc123aa127a05276696278d792d8">+894/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
9a422cb34d |
feat: dashboard unique colors to the table column automatically. (#8051)
### **PR Type**
Enhancement
___
### **Description**
- Add unique value auto-color for tables
- Introduce typed override config schema
- Update popup UI for new config types
- Pass color mode through table pipeline
___
### Diagram Walkthrough
```mermaid
flowchart LR
Schema["Dashboard v5 Config enum"]
Popup["OverrideConfigPopup UI logic"]
Convert["convertTableData column metadata"]
Renderer["TableRenderer cell style"]
Palette["colorPalette getColorForTable"]
Schema -- "new type 'unique_value_color'" --> Popup
Popup -- "persist {type, autoColor|value}" --> Convert
Convert -- "set col.colorMode='auto'" --> Renderer
Renderer -- "map unique values to colors" --> Palette
```
<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>mod.rs</strong><dd><code>Typed dashboard Config with
color variant</code>
</dd></summary>
<hr>
src/config/src/meta/dashboards/v5/mod.rs
<ul><li>Replace <code>Config</code> struct with tagged enum.<br> <li>
Add variants: <code>Unit{value?}</code> and
<code>UniqueValueColor{auto_color}</code>.<br> <li> Adjust serde to use
<code>type</code> tag and camelCase.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-da49585bbcb02bf0f737bb68739ebc248edd15c7ad9427c0e68f7728bb4a8c17">+13/-8</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>OverrideConfigPopup.vue</strong><dd><code>Popup
supports unit and auto color overrides</code>
</dd></summary>
<hr>
web/src/components/dashboards/OverrideConfigPopup.vue
<ul><li>Redesign popup to choose config type.<br> <li> Support unit
config and unique value color (auto).<br> <li> Normalize, transform, and
save typed configs.<br> <li> UI tweaks: width, layout, and
handlers.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-f1512a15069c23bcc71ac88db5b0ab882031bf6ec9d53a84de2fcd8adb6dec2c">+155/-62</a></td>
</tr>
<tr>
<td>
<details>
<summary><strong>OverrideConfig.vue</strong><dd><code>Adapt prop shape
for typed overrides</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/OverrideConfig.vue
<ul><li>Pass override configs via <code>{ overrideConfigs }</code>
shape.<br> <li> Simplify dialog prop wiring.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-54a6038f5c684ade27b88e3c6a134874b51501904441fa7849a532d10aa7d533">+3/-5</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>TableRenderer.vue</strong><dd><code>Table cells
auto-colored by unique values</code>
</dd></summary>
<hr>
web/src/components/dashboards/panels/TableRenderer.vue
<ul><li>Add auto-color rendering path for columns.<br> <li> Use
<code>getColorForTable</code> palette and per-column cache.<br> <li>
Fallback to value-mapping color.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-794706ea9da3a70012a0327c0464f9fd16802f78ece26055fe951716c2d73d59">+24/-1</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>colorPalette.ts</strong><dd><code>Add table color
palette export</code>
</dd></summary>
<hr>
web/src/utils/dashboard/colorPalette.ts
<ul><li>Export <code>getColorForTable</code> palette for tables.<br>
<li> Provide light pastel color list.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-30ac812743f2388c4061647fac5e9f413bfe561f1fc5d4f6f7be82fce73f2840">+27/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>convertTableData.ts</strong><dd><code>Pipe override
color/unit configs to table</code>
</dd></summary>
<hr>
web/src/utils/dashboard/convertTableData.ts
<ul><li>Parse typed override configs to maps.<br> <li> Set
<code>colorMode: 'auto'</code> on columns when enabled.<br> <li> Use
unit config map for formatting.</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8051/files#diff-a672094c46e697ee7b7a3949a901cc1f7f88ec06cddaf67370474b508d5b0960">+32/-8</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
---------
Co-authored-by: Loakesh Indiran <66478092+Loaki07@users.noreply.github.com>
|
||
|
|
d48e35fa05 |
fix: added test cases for cipher keys (#8101)
### **PR Type**
Tests
___
### **Description**
Add comprehensive unit tests for cipher keys
Cover Akeyless provider form behaviors
Test encryption mechanism selection logic
Validate OpenObserve local secret workflows
___
### Diagram Walkthrough
```mermaid
flowchart LR
AddCipherKeySpec["AddCipherKey.spec.ts"] -- "mount, navigation, submit" --> AddCipherKeyVue["AddCipherKey.vue"]
AddCipherKeySpec -- "stubs, mocks" --> ServicesMocks["cipher_keys service"]
AkeylessSpec["AddAkeylessType.spec.ts"] -- "fields, validation, update mode" --> AddAkeylessTypeVue["AddAkeylessType.vue"]
OpenobserveSpec["AddOpenobserveType.spec.ts"] -- "local secret, update mode" --> AddOpenobserveTypeVue["AddOpenobserveType.vue"]
MechanismSpec["AddEncryptionMechanism.spec.ts"] -- "provider, algorithm" --> AddEncryptionMechanismVue["AddEncryptionMechanism.vue"]
```
<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>AddAkeylessType.spec.ts</strong><dd><code>Tests for
Akeyless provider form behavior</code>
</dd></summary>
<hr>
web/src/components/cipherkeys/AddAkeylessType.spec.ts
<ul><li>Add unit tests for Akeyless form fields<br> <li> Validate URL,
access ID, and HTML sanitization<br> <li> Test auth types (access_key,
ldap) conditional UI<br> <li> Test secret types (static_secret, dfc)
conditional UI and update mode</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8101/files#diff-394b98b49b31d82146024ad8d9ad900a69afd49cb33d913514bb61058c7a2649">+324/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AddCipherKey.spec.ts</strong><dd><code>Comprehensive
tests for AddCipherKey flow</code>
</dd></summary>
<hr>
web/src/components/cipherkeys/AddCipherKey.spec.ts
<ul><li>Add end-to-end component tests with mocks/stubs<br> <li> Cover
create/update workflows and validations<br> <li> Test dynamic child
rendering and step navigation<br> <li> Verify helpers, state management,
and error handling</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8101/files#diff-1ae71f00dfb6f9424d2443856ca3a419aaf2ee0c08900f7ef2ca44e41c1982e9">+616/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AddEncryptionMechanism.spec.ts</strong><dd><code>Tests
for encryption mechanism selection</code>
</dd></summary>
<hr>
web/src/components/cipherkeys/AddEncryptionMechanism.spec.ts
<ul><li>Add tests for provider type and algorithm options<br> <li>
Validate conditional rendering for simple provider<br> <li> Verify
bindings, validation, and accessibility props<br> <li> Include robust
stubs for Quasar selects</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8101/files#diff-041335605ede2ba506406e550ba3c7663f4a8155f8c548f9e18b95ddfea4a51e">+402/-0</a>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>AddOpenobserveType.spec.ts</strong><dd><code>Tests for
OpenObserve local secret form</code>
</dd></summary>
<hr>
web/src/components/cipherkeys/AddOpenobserveType.spec.ts
<ul><li>Add tests for local secret input behavior<br> <li> Validate
required rules and data binding<br> <li> Cover update mode toggle and
buttons<br> <li> Verify field properties and structure</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8101/files#diff-d4c9e84859e41b57861e8ec93d08f28111c13c5ca1143c0613f9e3f55051a2f2">+675/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
86362dc372 |
fix: useLogs test cases added (#8071)
### **PR Type**
Tests
___
### **Description**
Add unit tests for initialization functions
Add stream management tests with API mocks
Add SQL parsing and search build tests
Improve error handling coverage in tests
___
### Diagram Walkthrough
```mermaid
flowchart LR
Init["Initialization tests"] -- clear/reset --> SearchObj["searchObj defaults"]
Streams["Stream management tests"] -- getStreamList/getStream --> API["Mocked services"]
SQL["SQL parse/build tests"] -- fnParsedSQL/fnUnparsedSQL --> Parser["Mocked parser"]
SQL -- buildSearch --> QueryReq["Query request assertions"]
Init -- initialLogsState --> Store["Mocked store"]
```
<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>useLogs.spec.ts</strong><dd><code>Comprehensive tests
for useLogs initialization, streams, SQL</code></dd></summary>
<hr>
web/src/plugins/logs/useLogs.spec.ts
<ul><li>Add tests for clearSearchObj and resetSearchObj<br> <li> Add
initialLogsState behavior and error tests<br> <li> Add
getStreamList/loadStreamFields tests with mocks<br> <li> Add
fnParsedSQL/fnUnparsedSQL and buildSearch tests</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8071/files#diff-842307ae8db03aa51891ddde98cfdbbabc712db1e1614c9eee99a59add395f70">+582/-0</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
f8956f30c1 |
fix: dashboard stream fields not found (#8087)
### **PR Type**
Bug fix
___
### **Description**
Handle missing or empty stream schemas
Fetch schema when absent or zero-length
Default to empty schema to avoid errors
Improve robustness of dashboard field loading
___
### Diagram Walkthrough
```mermaid
flowchart LR
UI["FieldList.vue"]
Check["Check stream.schema present and non-empty"]
Fetch["Fetch schema via loadStreamFields(name)"]
Validate["Validate schema not null/empty"]
Assign["Assign settings and schema"]
DefaultEmpty["Set stream.schema = [] and return"]
UI -- "iterate streams" --> Check
Check -- "missing or empty" --> Fetch
Fetch --> Validate
Validate -- "valid schema" --> Assign
Validate -- "invalid/empty" --> DefaultEmpty
```
<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>FieldList.vue</strong><dd><code>Robust schema presence
and fallback handling</code>
</dd></summary>
<hr>
web/src/components/dashboards/addPanel/FieldList.vue
<ul><li>Add check for empty <code>stream.schema</code> arrays<br> <li>
Fetch schema when missing or empty<br> <li> Guard against
undefined/empty fetched schema<br> <li> Default
<code>stream.schema</code> to <code>[]</code> on failure</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8087/files#diff-a071c06e3e26629cb4ae4751450acc39c61fa49b07a1cc4be3711697829668d4">+10/-2</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|