v2.0.4
📋Changelog
OpenMetadata 2.0.4 is a maintenance release focused on connector reliability and data quality. It fixes reindexing alias lookups and Explore counts, adds upgrade migrations for table-alias search settings and Data Insights charts, and makes bot bulk imports safer.
🔌 Connectors & Ingestion
- AWS Glue: table parameters weren't captured #34269: Glue table parameters are now ingested as custom properties.
- SQL Server: table synonyms weren't ingested #33415: SQL Server synonyms are now ingested as table aliases and allowed through the entity patch.
- Snowflake: aggregate subclasses could overflow again during a retry #34396: The overflow-retry fallback now excludes
Sum,Mean, andStdDevmetrics and their subclasses so the remaining column metrics can still be collected. - Datalake: MF4 file reads failed after a
canmatrixupdate #34419: Pinscanmatrixbelow 1.3 soasammdfimports again and MF4 reads work. - Ingestion could break under SQLAlchemy 2.1 #34259: Caps SQLAlchemy below 2.1 to keep ingestion working.
📊 Data Quality
- A test case's status followed the last result written or deleted, not the newest one #34285: A late older result, or deleting the newest result, could overwrite the status and even auto-resolve a newer failure's incident. Status now always reflects the newest result.
- The Test Definition "Supported Services" picker listed the
DbtandQueryLogpseudo-types #34624: These have no connection schema, so a test definition restricted to one silently vanished from the Add Test Case picker. Both are now filtered out. - Setting a 0% profile sample silently discarded the Profiler Settings config #34625: A
0%or0-row sample saved nothing while still showing a success toast, and a stored0would force a full-table scan. A non-zero sample is now required.
🔀 Lineage
- Upstream data quality failures were missed once an instance had more than 100 test cases #34286: The upstream-failure check kept only the 100 busiest test cases before filtering, dropping failing upstream tables. It now uses one exact, batched lookup on the test case index.
🔍 Search & Discovery
- Reindexing could fail before processing any records with a 403 from alias discovery #33893: Alias lookups now use index-scoped requests, so search roles restricted to their own
<clusterAlias>*prefix can discover the deployment's aliases. - Plain-text natural-language query (NLQ) and aggregate searches were slow and over-broad #34393: The NLQ keyword fallback and aggregate text now go through the search builder with a field list, instead of an unscoped
query_stringacross every index field. - Explore tab counts didn't match the result rows #34398: Counts could include fuzzy-only matches absent from the rows. They now use the same authorized, configured matching as each tab, and each tab renders as soon as its own request finishes.
- Data Marketplace list search was off-centre and keyword-only #34252: The Data Marketplace list search is now centred and supports natural-language search.
📈 Data Insights
- Data Insights summary cards and asset charts counted test case results #33415: Summary cards no longer count test case results. A 2.0.4 upgrade migration updates stored data asset chart definitions with corrected filters and matching governance-type exclusions.
🛡️ Data Governance & Quality
- Approving a tier change left an asset with two mutually exclusive tiers #34288: A tier approval now replaces the existing tier through the normal entity patch, increments the version, and records the tag change.
🎛️ UI
- Personas had no default landing page #34312: Adds persona General Preferences with a configurable default landing page.
- What's New showed a raw version, and opening an asset from an Assets tab card lost the breadcrumb #34685: What's New now shows a human-readable version and release date, and the full breadcrumb is kept when opening an asset from an Assets tab card.
📣 Alerts & Events
- Testing an alert with only unconfigured destinations returned a 400 error #34626: Clicking Test Destinations when every external destination is unconfigured now skips the request instead of sending an empty destination list.
⚙️ Platform & Operations
- Upgrades need table-alias search settings #33415: A 2.0.4 upgrade migration adds missing alias search and highlight fields to stored table search settings while preserving existing custom boosts and highlight fields.
- Data Retention deleted charts that no dashboard used #34105: Data Retention no longer removes charts that aren't referenced by any dashboard.
- Elasticsearch request compression wasn't configurable #34635: Adds a
requestCompressionEnabledsetting on the Elasticsearch configuration. - Bot bulk imports blanked fields the source didn't send #34671: With
overrideMetadata=true, a bot bulk PUT no longer blanks a storeddescriptionordisplayNameit doesn't send, andtableConstraintsare preserved when the bot sends none.