1.55.0 - 2026-10-29
Added
- Client/Go: Add OAuth 2.0 client credentials authentication
#4940@rahul-madaan Adds theoauth2HTTP authentication type to the Go client, matching Java and Python, withclient_secret_basicorclient_secret_postcredentials and token refresh. - dbt: Support dbt Core v2 with live OpenTelemetry events
#5064@mobuchowskidbt-oldetects dbt Core v2 and emits lineage while dbt runs by reading its OpenTelemetry output. Breaking: on v2, node jobs are named byunique_id; unit tests get theUNIT_TESTjob type and no datasets; commands that produce no lineage (compile,run-operation,docs generate,deps, ...) run as plain dbt without wrapper events, also on v1. - OData: Add experimental OData catalog integration
#4967@pawel-big-lebowski Adds a read-only service that scans OData v4 services and emits aDatasetEventwith schema, row count, and last-updated time for each entity set, with SAP Datasphere as the worked example. - Spark: Add Dataproc Metastore properties to Hive catalog facets
#4461@tnazarew Detects Dataproc Metastore fromspark.dataproc.metastore.*settings and adds its service name, project, and location to the catalog properties of Hive and Iceberg Hive catalogs. - SQL: Accept a default database in parser APIs
#5067@autoCAT6 The Rust, Python, and Java parser APIs andopenlineage.common.sql.parseaccept a default database that qualifies unqualified tables and column lineage origins. Java callers pass it throughParseOptions.
Changed
- Client/Python: Share the composite transport shutdown timeout
#5060@vishwanathmuthuramanCompositeTransport.close(timeout)passes each child transport the remaining time instead of the full timeout, so total shutdown time no longer grows with the number of transports. - dbt: Drop the dbt-core dependency
#5063@mobuchowskiopenlineage-dbtno longer installsdbt-core, which overwrote dbt Core v2 installations.jinja2is now declared directly inopenlineage-integration-common.
Fixed
- Clients: Keep environment and YAML values as text for string settings
#5111@mobuchowski Tag values, API keys, file paths, headers, and other string settings that look like numbers or booleans are kept as written instead of being decoded, which fixes tags with non-string values and API keys such as1234e5678being sent asBearer inf. - dbt: Keep dbt's outcome when structured-logs parsing fails
#5108@gusvargas In--consume-structured-logsmode, lineage parsing errors no longer abandon dbt or change its exit code, and unsupported commands such asrun-operationnow run dbt instead of exiting 0. - dbt: Treat warn status on model runs as success
#5068@smitstay Awarnstatus on model and snapshot runs, such as an unchanged Snowflake dynamic table on dbt v2, is reported as success instead of raisingValueError. - dbt, SQL: Preserve dbt source identifiers and MySQL UPDATE join inputs
#5066@mattfaltyn dbt source datasets use the physicalidentifierwhen set, matching column lineage, and MySQLUPDATE ... JOINstatements report joined tables and tables inONsubqueries as inputs. - Hive: Fix NullPointerException when generating runId in Hive CLI
#5091@tnazarew Derives the runId fromQueryPlanwhenQueryInfois unavailable, which stopped all lineage events under Hive CLI since 1.40.0. - Spark: Keep MERGE source columns in Iceberg column lineage
#5109@mobuchowski Keeps MERGE source columns in column lineage for Iceberg copy-on-write MERGE on Spark 4.1 and for partitioned Iceberg tables, and fixes column lineage for cached datasets. - Spark: Report datasets for Iceberg rewrite actions on Spark 4.1
#4994@MSDehghan Reports the compacted table as input and output forrewrite_data_fileson Spark 4.1 with Iceberg 1.11+, where reads and writes go throughSparkRewriteTable. - Spark: Report nested Delta MERGE source datasets
#5080@MSDehghan Reports Delta MERGE source datasets behind joins, filters, aggregates, and parquet-backed temporary views. - Spark: Skip Iceberg input statistics when the facet is disabled
#5015@MSDehghan Stops scanning Iceberg data files on the listener thread wheninputStatisticsis disabled, and no longer logs a warning for scans withouttasks(). - Spark: Skip unavailable RDD file paths
#5082@MSDehghan One unavailable file path no longer aborts RDD dataset extraction, and expected extraction misses are logged at DEBUG. - Spark: Support shaded Kafka topic partitions on Databricks
#5101@autoCAT6 Reports Kafka streaming inputs on Databricks, which uses the shadedkafkashaded.org.apache.kafka.common.TopicPartitionclass. - SQL: Keep CTE source tables as inputs when defaults are set
#5113@mobuchowski CTE source tables stay in the inputs when a default schema or database is set, or when a source table has the same name as a CTE.
SPDX-License-Identifier: Apache-2.0
Copyright 2018-2026 contributors to the OpenLineage project