Skip to main content

Latest Release Notes

27 October 2026
For more information, see the OpenMetadata 2.0.7 GitHub release.

Changelog

OpenMetadata 2.0.7 is a maintenance release that improves connector reliability and search consistency. It also strengthens governance workflows and access controls. The release fixes user interface (UI) issues across activity feeds, bulk editing, lineage, and intake forms. It also includes security updates for server, ingestion, and frontend dependencies.

🔌 Connectors and Ingestion

This release includes the following connector and ingestion fixes:
  • Google Cloud Pub/Sub test connections ignored service account impersonation #35831: Publisher, subscriber, and schema clients now use the configured impersonated identity instead of falling back to application default credentials.
  • Microsoft SQL Server connection tests could time out on large schemas #35906: Table and view checks now use limited catalog probes instead of sorting the entire catalog.
  • Unity Catalog lineage dropped upstream tables ingested under another service #35919: Cross-database lineage now searches configured services in order and reports unresolved upstream assets as warnings.
  • Hex lineage appeared as manually created lineage #35946: Hex table-to-dashboard edges now record DashboardLineage as their source.
  • dbt Cloud test results were missing when dbt test wasn’t the final run step #35947: Ingestion now reads run_results.json from every run step and keeps the latest result for each test.
  • Power BI reports were ingested without their pages #36062: Each report page is now ingested as a chart under its report without requiring an additional API request.
  • Tableau ingestion could delete data models while the Metadata API was rebuilding #36067: While Tableau rebuilds its Metadata API store, runs with both Include Data Models and Mark Deleted Data Models enabled now fail with an error instead of treating partial results as deleted data. Both options are enabled by default, and the rebuild can take up to a week after the Metadata API is enabled or Tableau is upgraded. To keep ingesting during that time, turn off Mark Deleted Data Models until the rebuild finishes.
  • Power BI BigQuery lineage failed when SQL contained comment markers inside strings #36232: Native-query extraction now preserves SQL literals, line breaks, and comments for accurate parsing.
  • Auto-classification could fail while loading the English language model #36177: Ingestion now avoids the preshed release that causes tokenizer hash overflows.
  • Doris operator images included unused MariaDB libraries with known vulnerabilities #36052: Doris now uses PyMySQL, allowing unused native libraries to be removed from operator images.

🛡️ Data Governance and Access Control

This release includes the following governance and access-control fixes:
  • Domain-scoped policies allowed assets to be moved into unauthorized domains #35798: Domain changes now validate access to the destination domain and reject unauthorized moves with a clear 403 response.
  • Users could assign domains to themselves without administrator approval #35846: Only administrators can now add or change a user’s domains.
  • Soft-deleting a user permanently removed their metadata tasks #35964: Soft deletion now preserves tasks so they remain available if the user is restored.
  • The Updated by workflow rule saved display names and never matched entities #36056: The rule now displays a person’s display name while saving the account name used by entity updates. Rules saved before the upgrade still hold display names. Open each existing rule, select the user again, and save it.
  • Governance workflow history could become slow and grow without a retention limit #36059: Indexed lookups improve run-history reads. The Data Retention application now also removes completed runs older than 30 days by default, while keeping active runs and the latest run of each workflow for each asset. To keep the full history, set Governance Workflow Run History Retention Period (days) to 0 right after upgrading, before the Data Retention application runs again.
  • Bulk glossary term creation skipped per-term authorization #36071: Every term is now checked for limits and CREATE permission before any terms are written.
  • Automation updates could overwrite their original execution inputs #36212: PUT and PATCH updates now preserve the saved request and workflow type while continuing to update status, response, and description.

🔍 Search and Discovery

This release includes the following search fixes:
  • OpenSearch vector indexes could fail with already_closed_exception while the cluster appeared healthy #36208: Vector indexes now store vectors in _source, avoiding closed derived-source readers during searches and embedding updates. Existing indexes pick this up only when they are recreated, so run a full reindex with index recreation after upgrading. Vector indexes use somewhat more disk space as a result.
  • Search results could retain stale metadata after entity changes #36255: Entity writes and recursive operations now refresh affected search documents. Renames and moves also refresh copied tags, labels, references, and team memberships.

🔗 MCP Server and Authentication

This release includes the following Model Context Protocol (MCP) server and authentication fixes:
  • MCP claim mappings failed when a source claim name contained a colon #36213: OAuth claim mappings now parse colon-containing claim names without silently dropping them.
  • MCP OAuth failed when OpenMetadata used a non-root BASE_PATH #36224: MCP routes and login forms now respect the configured context path. Base URLs and OpenID discovery use the same path.
  • Requests outside Jersey could reuse cached identity state from an earlier request #36222: A request cleanup filter now clears entity and security contexts before and after MCP, WebSocket, and single sign-on requests.
  • Impersonated requests could reach credential endpoints through alternate URL forms #36233: Restrictions now bind to the routed resource method and block impersonated credential creation or privilege grants.

⚙️ Platform and Operations

This release includes the following platform fixes:
  • Profiler settings could be overwritten when the saved configuration failed to load #36091: The Save action now remains unavailable until the stored configuration loads successfully.
  • Pipeline summary filters could expose unauthorized results or mishandle quoted values #36133: Summary endpoints now enforce view permissions and bind filter values instead of interpolating them into SQL.

🎛️ UI and Lineage

This release includes the following UI and lineage fixes:
  • Activity feed items hid the column and field that a conversation referenced #35859: Feed cards now show a field path after the entity name, including nested columns.
  • Map fields in agent forms were difficult to read and could submit untouched rows #35895: Map entries now appear as aligned key-value rows with accessible labels, and unused rows are removed on submission.
  • Bulk edit interactions were unreliable #36116: The grid now supports selecting text and copying or pasting tags. Search also finds values consistently.
  • Temporary table lineage nodes showed empty breadcrumbs and uneven spacing #36239: Temporary nodes now omit empty breadcrumbs and center their labels.
  • Intake form table headings didn’t align with their fields #36304: Header widths now apply to the correct layout elements so every heading lines up with its column.

🔒 Security

This release includes the following security updates:
  • Frontend networking and Markdown dependencies contained known vulnerabilities #35873: qs and fast-uri move to patched versions. follow-redirects and markdown-it are also updated.
  • Server dependencies contained authentication and configuration vulnerabilities #35885: Jetty moves to 12.1.14 and Logback to 1.5.38. Avatica moves to 1.29.0.
  • UI build and runtime dependencies contained known vulnerabilities #35976, #36110, #36201: Vite, PostCSS Selector Parser, and Storybook receive patched versions. DOMPurify, Undici, and Serialize JavaScript are also updated.
  • Requests and Snowflake Connector for Python contained known vulnerabilities #36106: Ingestion now requires patched versions of both packages.
  • The Amazon Web Services SDK included a vulnerable shaded JSON parser #36081, #36095: The software development kit (SDK) moves to a patched 2.57.x release that includes an updated Jackson Core.
  • The Node.js version used to build the UI contained Brotli and TLS vulnerabilities #36085: OpenMetadata now standardizes on Node.js 22.23.4 across builds and development environments. Building from source now requires Node.js 22.23.4 or later.
  • Outbound TLS connections may fail if they depend on emSign Root CA - G1 #36088, #36235: Release images now explicitly distrust six emSign and AAA Certificate Services roots. Only emSign Root CA - G1 was still present in the current base images. Before upgrading, verify the certificate chains presented by outbound services such as email servers and webhook endpoints. Each chain must be anchored in another trusted root.
  • The server included Apache Tika with known vulnerabilities #36090: Apache Tika and the Context Center image text-extraction code that used it are removed. No image shipped the optical character recognition engine it needed, so uploaded images were already marked Unsupported for text extraction. PDFs, Office documents, and other text files are read as before.
  • Server images included unused encryption and audio libraries with known vulnerabilities #36108, #36214: Image builds now remove ssl_client, alsa-lib, and unused desktop libraries while retaining required image and font support.
  • Network, archive, and database drivers contained known vulnerabilities #36107, #36155, #36205: dnspython, Brotli, and MySQL Connector/J move to patched versions.
  • Service connection details were readable by roles that couldn’t edit the service #36266: Service responses now include the connection only for bots and for users who can edit the whole service: administrators, service owners, and roles that grant EditAll. Those users see it masked. Everyone else, including the default Data Steward and Data Consumer roles, no longer receives it. Services list columns built from the connection, such as host or brokers, show --. Before upgrading, check any API or SDK script that reads service connections with a personal access token: without EditAll, connection is now null instead of masked.