Skip to main content
Version: 1.55.0

1.55.0 - 2026-10-29

Added​

  • Client/Go: Add OAuth 2.0 client credentials authentication #4940 @rahul-madaan Adds the oauth2 HTTP authentication type to the Go client, matching Java and Python, with client_secret_basic or client_secret_post credentials and token refresh.
  • dbt: Support dbt Core v2 with live OpenTelemetry events #5064 @mobuchowski dbt-ol detects dbt Core v2 and emits lineage while dbt runs by reading its OpenTelemetry output. Breaking: on v2, node jobs are named by unique_id; unit tests get the UNIT_TEST job 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 a DatasetEvent with 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 from spark.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 and openlineage.common.sql.parse accept a default database that qualifies unqualified tables and column lineage origins. Java callers pass it through ParseOptions.

Changed​

  • Client/Python: Share the composite transport shutdown timeout #5060 @vishwanathmuthuraman CompositeTransport.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 @mobuchowski openlineage-dbt no longer installs dbt-core, which overwrote dbt Core v2 installations. jinja2 is now declared directly in openlineage-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 as 1234e5678 being sent as Bearer inf.
  • dbt: Keep dbt's outcome when structured-logs parsing fails #5108 @gusvargas In --consume-structured-logs mode, lineage parsing errors no longer abandon dbt or change its exit code, and unsupported commands such as run-operation now run dbt instead of exiting 0.
  • dbt: Treat warn status on model runs as success #5068 @smitstay A warn status on model and snapshot runs, such as an unchanged Snowflake dynamic table on dbt v2, is reported as success instead of raising ValueError.
  • dbt, SQL: Preserve dbt source identifiers and MySQL UPDATE join inputs #5066 @mattfaltyn dbt source datasets use the physical identifier when set, matching column lineage, and MySQL UPDATE ... JOIN statements report joined tables and tables in ON subqueries as inputs.
  • Hive: Fix NullPointerException when generating runId in Hive CLI #5091 @tnazarew Derives the runId from QueryPlan when QueryInfo is 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 for rewrite_data_files on Spark 4.1 with Iceberg 1.11+, where reads and writes go through SparkRewriteTable.
  • 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 when inputStatistics is disabled, and no longer logs a warning for scans without tasks().
  • 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 shaded kafkashaded.org.apache.kafka.common.TopicPartition class.
  • 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