Client/Java: Add configurable retries to the GCP Lineage transport#4759@tnazarewExposes GCP Lineage API retry settings through transport configuration and applies them to the underlying client.
Client/Java: Add configurable retries to the GCS transport#4798@tnazarewExposes the lineage producer's retry policy through GcsTransport configuration instead of always using defaults.
Client/Java: Generate singleton-enum discriminated unions#4778@mobuchowskiGenerates typed Jackson union interfaces and concrete variants, enabling correct construction and deserialization of explicit lineage entries.
Client/Java: Support Oracle TNS connect descriptors#4812@karthikchundi-commitsParses Oracle RAC and failover TNS descriptors into stable oracle://host:port dataset namespaces.
Client/Python and Spark: Add Python 3.14 and Spark 4.2 support#4747@mobuchowskiAdds Python 3.14 support and validates the Spark integration on Spark 4.2 with Java 17 and Java 21.
Client/Python: Add dataset normalization#4465@kchledowskiAdds opt-in normalization of input and output datasets before the Python client emits an event.
dbt/Athena: Add Glue dataset symlinks#4875@mobuchowskiAdds canonical AWS Glue table identifiers as symlinks for datasets emitted by the dbt Athena integration.
Flink: Add Kinesis lineage visitors#4861@fmorillo7694Aligns SQL and DataStream Kinesis dataset identities and converts Kinesis type metadata into schema facets.
Spark: Add ClickHouse V2 catalog handler#4878@MSDehghanAdds dataset identifiers plus catalog and storage facets for reads and writes through the official ClickHouse V2 catalog.
Spark: Add descriptions to column lineage transformations#4782@mobuchowski with @tnazarewCaptures expression descriptions while resolving Spark column-level lineage transformation chains.
Spark: Add Lakehouse catalog handler#4797@tnazarewAdds dedicated handling for Google Lakehouse Catalog identifiers instead of relying on the generic REST catalog path.
Spark: Emit LOAD DATA source paths as inputs#4848@mishrasangeeta87Emits the filesystem path read by LOAD DATA INPATH as an input dataset alongside the target table output.
Spec: Add explicit lineage facets#4804@mobuchowskiAdds Job and Dataset facets for declaring exact dataset-, field-, and job-level relationships without Cartesian-product inference.
SQL: Support parenthesized joins#4859@mattfaltynExtracts table lineage from nested join expressions while preserving aliases, constraints, and subquery traversal.
Client/Python: Replace httpx with httpx2#4902@dolfinusMoves AsyncHttpTransport to the maintained httpx2 drop-in replacement and updates related configuration and tests.
Clients: Enforce dependentRequired in generated models#4819@mobuchowskiAdds Java, Python, and Go validation for schema fields that must be supplied together, including explicit lineage job identities.
Client/Java: Fix JDBC IPv6 custom-port extraction#4612@matveeysvParses custom ports after bracketed IPv6 hosts without appending an incorrect default port.
Client/Java: Make ReducedDataset facet comparison null-safe#4838@MSDehghanPrevents partition-aware dataset reduction from failing when generated or mocked datasets have null facets.
Client/Python: Keep the async worker alive after wait#4824@mattfaltynKeeps AsyncHttpTransport usable after wait_for_completion() so later events are still delivered.
Client/Python: Prevent async release-queue deadlock#4882@mattfaltynMoves released completion events to a worker-owned backlog so bursts cannot block the sole worker on its bounded queue.
Client/Python: Queue async completion events atomically#4900@mattfaltynPrevents terminal run events from being stranded when their START event completes concurrently.
Client/Python: Read configuration files as UTF-8#4509@hcthakur2004Avoids locale-dependent decoding failures by reading Python client YAML configuration explicitly as UTF-8.
dbt: Read OPENLINEAGE_CONTEXT on the local-artifacts path#4808@chuenchen309Propagates standardized parent and root run metadata when the dbt wrapper consumes local artifacts.
dbt: Set the data-quality assertion name on structured-log events#4809@chuenchen309Adds the dbt test name to structured-log dataQualityAssertions, matching the run-results processor.
dbt: Use test_metadata presence when parsing assertions#4777@kacpermudaRestores short assertion types and column associations for generic tests in dbt manifest v12.
Great Expectations: Emit a valid producer URI and timezone-aware eventTime#4846@chuenchen309Replaces the unresolved producer placeholder and emits RFC 3339 timestamps with a UTC offset.
Great Expectations: Restore data-quality metrics on 1.x#4733@chuenchen309Uses the renamed expectation type field and maps file-size results to bytes, restoring metrics and assertions.
Great Expectations: Stop forwarding data_context on 1.x#4811@chuenchen309Allows OpenLineageValidationAction to construct on Great Expectations 1.x while retaining compatibility with versions that require the argument.
Java integrations: Upgrade Jackson to 2.18.8 for CVE-2026-54512 and CVE-2026-54513#4765@sulikismaylovvUpdates bundled Jackson dependencies across Java, Spark, Flink, and Hive and adjusts shaded jars for the newer release.
Java integrations: Upgrade Jackson to 2.18.9#4853@Poojitha-R-RaoApplies the subsequent Jackson patch release consistently across the Java client and integrations.
Spark: Apply removePath.pattern to RDD datasets#4726@zerafachrisApplies configured dataset path removal to RDD job inputs and outputs, matching SQL and DataFrame behavior.
Spark: Clean up retained lifecycle state#4894@mobuchowskiEvicts completed jobs, stages, and metrics so long-lived Spark drivers do not retain state without bound.
Spark: Extract Delta output from V1 micro-batch writes#4884@MSDehghanRestores output datasets for Spark 4 structured-streaming writes through Delta's V1 sink.
Spark: Fix Databricks COPY INTO lineage#4850@mishrasangeeta87Emits source inputs and Unity Catalog target outputs for proprietary Databricks COPY INTO plan variants.
Spark: Fix Databricks CTAS output lineage#4849@mishrasangeeta87Restores output datasets for CTAS and related V2 create or replace commands on Databricks runtimes.
Spark: Fix Databricks DELETE lineage#4815@mishrasangeeta87Emits the DELETE target as an output and tables referenced by predicate subqueries as inputs.
Spark: Fix Databricks UPDATE lineage#4835@mishrasangeeta87Emits UPDATE targets and SET or WHERE subquery inputs from proprietary Databricks plan nodes.
Spark: Prevent read-only V2 plans from becoming outputs#4898@MSDehghanStops read-only V2 scans, such as lazy Iceberg checkpoints, from being reported as writes.
Spark: Register the V1 micro-batch output builder for Spark 4#4772@MSDehghanRestores output lineage for Spark 4 structured-streaming jobs that use V1 sinks.
Spark: Report Iceberg writes through the cached catalog#4896@JDarDagranResolves maintenance-action datasets from the underlying Iceberg relation when writes use SparkCachedTableCatalog.
Spark: Support Spark 4.2 CatalogManager compatibility#4779@mobuchowskiAvoids listener failures after Spark 4.2 changed CatalogManager from a class to an interface.
SQL: Fix MySQL multi-table DELETE lineage#4775@mattfaltynClassifies explicit DELETE targets as outputs and joined lookup tables as inputs.
SQL: Fix Snowflake COPY unload lineage#4791@mattfaltynReports source tables as inputs and the destination location as output for Snowflake unload statements.
SQL: Include aggregate filter lineage#4865@mattfaltynCaptures predicate columns and subquery tables referenced only by aggregate FILTER expressions.
SQL: Include ARRAY subquery inputs#4763@mattfaltynIncludes tables referenced by BigQuery ARRAY subqueries in input lineage.
SQL: Include HAVING subquery inputs#4785@mattfaltynIncludes tables read only by subqueries in HAVING expressions.
SQL: Include JOIN-condition subquery inputs#4783@mattfaltynIncludes tables read only by subqueries in JOIN ... ON conditions.
SQL: Include MERGE-predicate subquery inputs#4855@mattfaltynIncludes tables referenced only by subqueries in MERGE ON predicates.
SQL: Include UPDATE-assignment subquery inputs#4767@mattfaltynIncludes tables read by subqueries in UPDATE SET assignment expressions.
SQL: Include VALUES subquery inputs#4788@mattfaltynIncludes tables read by scalar subqueries inside VALUES rows.
SQL: Preserve lineage through derived PIVOT inputs#4852@mattfaltynRetains source datasets when a Snowflake PIVOT wraps a derived table.