Skip to content

Releases: datacontract/datacontract-cli

v0.11.8

10 Apr 11:13

Choose a tag to compare

[0.11.8] - 2026-04-10

Added

  • Added ci command for CI/CD-optimized test runs: multi-file support, GitHub Actions annotations and step summary, Azure DevOps annotations, --fail-on flag, --json output (#1114)
  • Added changelog command and API endpoint (#1118 @davidb-tada)
  • Added opt-in --all-errors mode for datacontract lint to report all JSON Schema validation errors, with matching all_errors support in the Python library and API (#1125 @jmbenedetto)
  • Added --schema-name option to custom model export (#978 @AntoineGiraud)

Fixed

  • Avro importer now raises an error for union fields with multiple non-null types, which are not supported by ODCS (#1124)
  • Fix SQL export generating multiple PRIMARY KEY constraints for composite keys (#1026,#1092 @barry0451 @dwestheide)
  • Preserve parametrized physicalTypes for SQL export (#1086,#1093 @barry0451 @alexander-griesbeck)
  • Fix incorrect SQL type mappings: SQL Server double/jsonb, MySQL bare varchar, missing Trino types (#1110)
  • Fix markdown export breaking table structure when extra field values contain pipe characters (#832,#1117 @barry0451 @grepwood)
  • Fix dbt import using incorrect physicalType instead of actual materialization type (#1136)
  • Remove unnecessary numpy dependency from databricks and kafka extras (#1135 @kayhendriksen)

Special thanks to @davidb-tada for the outstanding contribution of the new changelog command and API endpoint! Also thanks to @barry0451 for multiple quality fixes across the SQL exporter and markdown export, and to @AntoineGiraud and @jmbenedetto for their feature contributions.

v0.11.7

24 Mar 19:04

Choose a tag to compare

[0.11.7] - 2026-03-24

Fixed

  • Escape single quotes in string values for SodaCL checks (#1090)
  • Escape BigQuery field and model names with backticks for SodaCL checks (#736)
  • Escape Databricks model names with backticks for SodaCL checks
  • Fixed catalog export SpecView not having a tags property for the index.html template (#1059)
  • Fix SQL importer type mappings: binary types, datetime/time, uuid now map to correct ODCS logicalType and format (#790)

Added

  • Added support for MySQL for data contract tests (#1101)
  • Support additional PyArrow types in Parquet importer (#1091)
  • Populate logicalTypeOptions.format for SQL import from binary and uuid types (#790)
  • Snowflake DDL import with tags, descriptions, and template variable handling (#790)

Release v0.11.6

18 Mar 07:36

Choose a tag to compare

[0.11.6] - 2026-03-17

Fixed

  • Fix parser error for CSV / Parquet table names containing special characters (#1066)
  • Fix BigQuery export failing with "Unsupported type" for parameterized physicalType like NUMERIC(18, 4) (#1083)

Added

  • Added JSON output format for test results (--output-format json)
  • Added Azure AD / Entra ID authentication support for SQL Server and Microsoft Fabric

Release v0.11.5

19 Feb 20:02

Choose a tag to compare

[0.11.5] - 2026-02-19

Fixed

  • Fix BigQuery import for repeated fields (#1017)
  • Make Markdown export compatible with XHTML by replacing <br> with <br /> (#1030)
  • Add ADC/WIF and impersonation support for BigQuery (#1064)
  • Fix Snowflake quoted identifiers by enabling double-quote quoting (#1053)
  • Fix retention duration crash for numeric ODCS values (#1051)
  • Fix physicalType bypass for precision and scale conversion (#1043)
  • Fix mkdir TOCTOU race causing silent JUnit write failure (#1050)
  • Fix validation failure for field names with special chars on Databricks (#1049)
  • Add Azure support for field name quoting in schema checks (#1025)

v0.11.4

19 Jan 22:00

Choose a tag to compare

[0.11.4] - 2026-01-19

Changed

  • Made duckdb an optional dependency. Install with pip install datacontract-cli[duckdb] for local/S3/GCS/Azure file testing.
  • Removed unused fastparquet and numpy core dependencies.

Added

  • Include searchable tags in catalog index.html

Fixed

  • Fixed example(s) field mapping for Data Contract Specification importer (#992).
  • Spark exporter now supports decimal precision/scale via customProperties or parsing from physicalType (e.g., decimal(10,2)) (#996)
  • Fix catalog/HTML export failing on ODCS contracts with no schema or no properties (#971)

v0.11.3

10 Jan 15:03

Choose a tag to compare

Fixed

  • Fix datacontract init to generate ODCS format instead of deprecated Data Contract Specification (#984)
  • Fix ODCS lint failing on optional relationship type field by updating open-data-contract-standard to v3.1.2 (#971)
  • Restrict DuckDB dependency to < 1.4.0 (#972)
  • Fixed schema evolution support for optional fields in CSV and Parquet formats. Optional fields marked with required: false are no longer incorrectly treated as required during validation, enabling proper schema evolution where optional fields can be added to contracts without breaking validation of historical data files (#977)
  • Fixed decimals in pydantic model export. Fields marked with type: decimal will be mapped to decimal.Decimal instead of float.
  • Fix BigQuery test failure for fields with FLOAT or BOOLEAN types by mapping them to equivalent types (BOOL and FLOAT64)

v0.11.2

15 Dec 19:06

Choose a tag to compare

Release 0.11.2

v0.11.1

14 Dec 19:09
dc5975a

Choose a tag to compare

This is a major release with breaking changes:
We switched the internal data model from Data Contract Specification to Open Data Contract Standard (ODCS).

Not all features that were available are supported in this version, as some features are not supported by the Open Data Contract Standard, such as:

  • Internal definitions using $ref (you can refer to external definitions via authoritativeDefinition)
  • Lineage (no real workaround, use customProperties or transformation object if needed)
  • Support for different physical types (no real workaround, use customProperties if needed)
  • Support for enums (use quality metric invalidValues)
  • Support for properties with type map and defining keys and values (use logical type map)
  • Support for scale and precision (define them in physicalType)

The reason for this change is that the Data Contract Specification is deprecated, we focus on best possible support for the Open Data Contract Standard.
We try to make this transition as seamless as possible.
If you face issues, please open an issue on GitHub.

We continue support reading Data Contract Specification data contracts during v0.11.x releases until end of 2026.
To migrate existing data contracts to Open Data Contract Standard use this instruction: https://datacontract-specification.com/#migration

Changed

  • ODCS v3.1.0 is now the default format for all imports.
  • Renamed --model option to --schema-name in the export command to align with ODCS terminology.
  • Renamed exporter files from *_converter.py to *_exporter.py for consistency (internal change).

Added

  • If an ODCS slaProperty "freshness" is defined with a reference to the element (column), the CLI will now test freshness of the data.
  • If an ODCS slaProperty "retention" is defined with a reference to the element (column), the CLI will now test retention of the data.
  • Support for custom Soda quality checks in ODCS using type: custom and engine: soda with raw SodaCL implementation.

Fixed

  • Oracle: Fix service_name attribute access to use ODCS field name serviceName

Removed

  • The breaking, changelog, and diff commands are now deleted (#925).
  • The terraform export format has been removed.

v0.10.41

04 Dec 08:49

Choose a tag to compare

Changed

  • Great Expectations export: Update to Great Expectations 1.x format (#919)
    • Changed expectation_suite_name to name in suite output
    • Changed expectation_type to type in expectations
    • Removed data_asset_type field from suite output
    • Breaking: Users with custom quality definitions using expectation_type must update to use type

Added

  • test: Log server name and type in output (#963)
  • api: CORS is now enabled for all origins
  • quality: Support {schema} and ${schema} placeholder in SQL quality checks to reference the server's database schema (#957)
  • SQL Server: Support DATACONTRACT_SQLSERVER_DRIVER environment variable to specify the ODBC driver (#959)
  • Excel: Add Oracle server type support for Excel export/import (#960)
  • Excel: Add local/CSV server type support for Excel export/import (#961)
  • Excel Export: Complete server types (glue, kafka, postgres, s3, snowflake, sqlserver, custom)

Fixed

  • Protobuf import: Fix transitive imports across subdirectories (#943)
  • Protobuf export now works without error (#951)
  • lint: YAML date values (e.g., 2022-01-15) are now kept as strings instead of being converted to datetime objects, fixing ODCS schema validation
  • export: field annotation now matches to number/numeric/decimal types
  • Excel: Server port is now correctly parsed as integer instead of string for all server types
  • Excel: Remove invalid table and view fields from custom server import
  • Fixed DuckDB DDL generation to use JSON type instead of invalid empty STRUCT() for objects without defined properties (#940)

Deprecated

  • The breaking, changelog, and diff commands are now deprecated and will be removed in a future version (#925)

v0.10.40

25 Nov 10:10

Choose a tag to compare

Prepare for ODCS v3.1.0