Version 3.7.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.7.0
Features
- Add dashboard variables support for dynamic, parameterized dashboards with template syntax interpolation (#11646)
- Add identity source service for customizing identity management APIs (#9137)
- Add optional displayName field to index patterns for user-friendly UI labels (#11719)
- Add icon-based sidebar navigation for Observability workspace (#11811)
- Add investigation export feature for sharing AI chat results as PDF or Markdown reports (#11764)
- Add pluggable SQLite storage backend for saved objects (#11771)
- Add backend compatibility plugin for legacy Elasticsearch 6.x and 7.x support (#11961)
- Add AnalyticEngine detection and manifest-driven plugin opt-out for data sources (#12023)
- Add metrics explore tab to discover metrics for browsing metrics without writing queries (#11766)
- Add metrics builder mode to discover metrics with builder/code toggle (#11775)
- Add data transformation panel to Explore visualization editor (#11944)
- Add split chart with custom legend as a universal chart-level setting (#11975)
- Support multiple fields per axis in bar, line, and area visualizations (#11726)
- Add query-based tab auto-switching in Discover for Statistic and Visualization tabs (#11635)
- Add resizable query panel with drag handle to Explore plugin (#11684)
- Add workspace ACL authorization method for cross-plugin permission checks (#11770)
- Add OBO token caching with proactive refresh for AG-UI forwarding (#11610)
Enhancements
- Add maturity-based sync polling and resend affordance for tool result dispatch in chat (#11949)
- Skip tool result dispatch when another window already submitted it (#11867)
- Disable chat input based on tool call state to prevent premature user messages (#11982)
- Improve chat session management and add recent conversations to empty screen (#11808)
- Register disabled PPL execute query action as fallback on plugin start and restore on unmount (#11693)
- Restrict field stats tab to only OpenSearch-backed datasets (#11718)
- Fill the update button with primary color when query changes in Explore (#11823)
- Restrict response size for S3 datasets by appending default
| head 10000to PPL queries (#11665) - Add series limit and truncation warnings in metrics charts (#11829)
- Enable and optimize dashboard variable experience with type-aware interpolation and workspace-specific UX (#11876)
- Add dashboard-driven variables with in-context editor integration (#11784)
- Show alias for user type collaborator in workspace if present (#11929)
- Add collaborator name lookup support in workspace (#11780)
- Optimize UI settings client to search only the relevant scope for a given key (#11040)
- Add cross-origin check for trusted AWS domains in session redirect URL validation (#11791)
- Disable Data Source management page for unsupported OpenSearch versions (1.3, 2.11) (#11879)
- Resize the query panel when generating queries using AI mode (#11950)
- Align input handling across saved-objects import and data_source routes (#12014)
- Optimize plugin build bundle size by eliminating duplicate core module bundling (#9737)
- Parallelize release build stages for ~15% faster wall time (#11833)
- Skip bootstrap when nothing has changed for ~14x faster warm runs (#11831)
- Remove application-level bundle cache and rely on Rspack persistent cache (#11866)
- Enable icon side nav by default for Observability workspace (#12047)
- Integrate Tailwind CSS via PostCSS for osd-apm-topology (#11880)
- Expose strict and loose CSP rule sets on CspConfig for request-time selection (#11989)
- Variables UI enhancement with improved dropdown behavior and layout (#11795)
- Export CSV table from Explore visualizations (#11774)
Bug Fixes
- Fix chat telemetry incorrectly sending success event after a run error (#11963)
- Fix tool running state showing incorrectly on snapshot-loaded conversations (#11958)
- Fix unfinished frontend tool calls not being restored when loading a conversation (#11706)
- Fix PPL query status lookup to use per-query queryStatusMap instead of overallQueryStatus (#11717)
- Fix global banner overlap with sidecar (#11893)
- Fix dashboard table visualization displaying stale data instead of error when PPL query fails (#12004)
- Fix dashboard panels resetting when switching variables in VIEW mode (#12006)
- Fix dashboard panels rendering empty for Explore visualizations built from non-INDEX_PATTERN datasets (#11788)
- Fix DQL/Lucene autocomplete after language switching (#10963)
- Fix recent queries not working for DQL and Lucene (#10837)
- Fix misaligned font in Discover query editor for Windows (#11767)
- Fix CSP violation for visTimeseries plugin on every page load (#11723)
- Fix banner plugin text rendering after React 18 upgrade (#11503)
- Fix 'add to dashboard' not working when saving a visualization the second time (#11790)
- Fix Explore visualization crashes when dashboard variables change due to multi-axis fields (#11934)
- Fix variables and in-context editor compatibility with newly saved dashboards (#11834)
- Fix variable import error (#11877)
- Fix synthetic message ID mismatch and potential XSS in chat export (#11793)
- Fix scatter chart to allow zero and negative size values (#11744)
- Fix index patterns disappearing when Query Enhancements is enabled (#11720)
- Fix saved explore not loading due to DatasetProvider race condition (#11942)
- Skip failed DataViews in getMultiple() instead of breaking entire dataset list (#11752)
- Fix time bucket config option not rendering in bar and histogram visualizations (#11897)
- Fix Data Table visualization filter actions using wrong row after sorting (#11810)
- Fix autocomplete hiding behind bottom container in Explore (#11747)
- Fix overflow issue in bottom container caused by drag query (#11746)
- Fix AI editor resize handle overlapping generated query bar in prompt mode (#11759)
- Fix beta badge vertical alignment in secondary page header (#11952)
- Fix Discover initial load 500 error for INDEXES-typed default index patterns (#11887)
- Fix loading indicator for dashboard embeddable during search source loading (#11894)
- Fix unable to switch from PromQL to PPL in Explore visualization (#11983)
- Fix metric visualization sparkline not rendering (#11974)
- Fix display of object values as JSON in table visualization (#11948)
- Fix minor bugs in Metric builder including tab switch fallback and code editor shortcuts (#11839)
- Fix test and placeholder placement on drag in query editor (#11728)
- Restore UTF-8 BOM in CSV exports for Excel compatibility (#11812)
- Show time filter and run button in Explore embed mode (#11968)
- Restore filter and search bar display in dashboard within Observability and Analytics workspaces (#12059)
- Fix TypeScript strict mode errors in osd-agents ts-node compilation (#11769)
- Restore gulp-babel and add build sanity check to PR CI (#11822)
- Fix Tailwind v4 build problems with sass compressed style stripping whitespace (#11945)
- Anchor Tailwind source scan to each SCSS file's directory for third-party plugins (#12016)
- Delete query action registry for in-context visualization editor (#12024)
- Fix React console warnings (#11836)
Infrastructure
- Add issues write permission to untriaged label workflow (#12000)
- Pin actions/github-script to exact commit SHA (#12032)
- Pin jest-canvas-mock to 2.5.1 to mitigate supply chain risk (#11998)
- Remove final trailing comma for Cypress 13 compatibility (#11901)
- Remove final trailing comma for Cypress 13 compatibility (#12030)
- Add Cypress and unit tests for Explore visualization editor (#11688)
- Add Cypress tests for downloading CSV from Explore visualizations (#11875)
- Add Cypress testing groups for Observability specs (#11999)
- Fix unstable Cypress tests for downloading CSV (#11900)
- Wrap mount() in act() to stabilize embeddable panel test flake (#12035)
- Update AI PR description skill and add unit test skill (#11686)
Documentation
- Update Developer Guide to use yarn equivalent for linting (#11531)
- Fix 'occured' → 'occurred' typos across 7 files (#11773)
Maintenance
- Add Qxisylolo and Yubo Luo as maintainers and update Emeritus list (#11690)
- Bump @hono/node-server from 1.19.11 to 1.19.13 (#11707)
- Bump axios from 1.13.5 to 1.15.0 (#11721)
- Bump basic-ftp from 5.2.0 to 5.2.1 (#11716)
- Bump basic-ftp from 5.2.1 to 5.2.2 (#11731)
- Bump dompurify from 3.3.2 to 3.4.0 (#11763)
- Bump hono from 4.12.12 to 4.12.14 (#11761)
- Bump hono from 4.12.9 to 4.12.12 (#11708)
- Bump mathjs from 11.8.2 to 15.2.0 (#11732)
- Bump axios from 1.15.0 to 1.15.2 (#11863)
- Bump fast-xml-parser from 5.5.12 to 5.7.2 (#11837)
- Bump Node from v22.22.0 to v22.22.3 to address CVEs (#11986)
- Bump basic-ftp to 5.3.1 and uuid to 11.1.1 to address CVEs (#11936)
- Bump brace-expansion to 5.0.6 and ws to 8.20.1 to address CVEs (#11995)
- Bump @types/node to ~22.19.0 to match Node 22.22.0 runtime (#11872)
- Bump fast-xml-builder from 1.1.5 to 1.2.0 (#11909)
- Bump hono from 4.12.14 to 4.12.18 (#11904)
- Bump fast-uri to 3.1.2 to fix path traversal vulnerability (#11907)
- Bump @babel/plugin-transform-modules-systemjs to 7.29.4, langsmith to 0.5.26, and postcss to 8.5.14 (#11943)
- Bump simple-git to 3.36.0 to fix RCE vulnerability (#11908)
- Update Rspack to 1.7.11 and @swc/helpers to 0.5.21 (#11748)
- Upgrade ip-address to 10.2.0 and replace ip-cidr with internal CIDR utility (#12013)
- Upgrade @hapi/content to 6.0.1 to fix CVE-2026-35213 (#11785)
- Upgrade jimp to v1.6.1 to fix CVE-2026-31808 (#12008)
- Replace dns-sync with Node built-in dns.promises to fix CVE-2017-16100 (#11898)
- Fix CVE-2026-40190 (#11781)
- Remove
@lhci/clifrom package.json to resolve CVE (#11735) - Remove unused dependencies from root package.json (#11805)
- Remove useless changelog files (#11738)
- Upgrade TypeScript from 4.6.4 to 6.0.2 with full toolchain update (#11687)