Skip to content

Releases: datacontract/datacontract-cli

v0.12.1

21 Apr 06:55

Choose a tag to compare

[0.12.1] - 2026-04-21

This release introduces several changes to improve the usability of datacontract-cli for AI Agents.

  • Breaking: Several changes in the CLI syntax (#1157):

Fix in v0.12.1: re-added --schema as alias for the new --json-schema (will be removed in v0.13.0)

Command Old option New option
lint, test, ci, publish, catalog --schema <PATH> (still works until v0.13.0) --json-schema <PATH>
export, import --format <FORMAT> <OPTIONS> <FORMAT> <OPTIONS> (drop --format)
Export options:
export --format dbt --format dbt dbt-models (format renamed)
export --format great-expectations --sql-server-type <TYPE> --dialect <TYPE>
export --format rdf --rdf-base <URI> --base <URI>
export --format sql --sql-server-type <TYPE> --dialect <TYPE>
export --format sql-query --sql-server-type <TYPE> --dialect <TYPE>
Import options:
import --format bigquery --bigquery-[project|dataset|table] <NAME> --[project|dataset|table] <NAME>
import --format dbt --dbt-model <NAME> --model <NAME>
import --format glue --source <NAME>, --glue-table <NAME> --database <NAME>, --table <NAME>
import --format iceberg --iceberg-table <NAME> --table <NAME>
import --format unity --unity-table-full-name <NAME> --table <NAME>
import --format spark --source <NAMES> --tables <NAMES>
import --template dropped (was a no-op)

The --schema option (referring to the ODCS JSON schema) was renamed to --json-schema to avoid confusion with --schema-name, which refers to the schema within the data contract to test for.

  • Error messages for uncaught exceptions are shortened now. Pass --debug (or set DATACONTRACT_CLI_DEBUG=1) to see the full traceback. (#1175)
  • Add example calls to --help outputs (#1176)
  • Add explicit errors when required env vars for soda connections are missing (#1177)
  • Validate some of the CLI options against their allowed values instead of accepting any string (#1178)

v0.12.0

20 Apr 21:11

Choose a tag to compare

v0.12.0 Pre-release
Pre-release

[0.12.0] - 2026-04-20

This release introduces several changes to improve the usability of datacontract-cli for AI Agents.

  • Breaking: Several changes in the CLI syntax (#1157):

Fix in v0.12.1: re-added --schema as alias for the new --json-schema (will be removed in v0.13.0)

Command Old option New option
lint, test, ci, publish, catalog --schema <PATH> (still works until v0.13.0) --json-schema <PATH>
export, import --format <FORMAT> <OPTIONS> <FORMAT> <OPTIONS> (drop --format)
Export options:
export --format dbt --format dbt dbt-models (format renamed)
export --format great-expectations --sql-server-type <TYPE> --dialect <TYPE>
export --format rdf --rdf-base <URI> --base <URI>
export --format sql --sql-server-type <TYPE> --dialect <TYPE>
export --format sql-query --sql-server-type <TYPE> --dialect <TYPE>
Import options:
import --format bigquery --bigquery-[project|dataset|table] <NAME> --[project|dataset|table] <NAME>
import --format dbt --dbt-model <NAME> --model <NAME>
import --format glue --source <NAME>, --glue-table <NAME> --database <NAME>, --table <NAME>
import --format iceberg --iceberg-table <NAME> --table <NAME>
import --format unity --unity-table-full-name <NAME> --table <NAME>
import --format spark --source <NAMES> --tables <NAMES>
import --template dropped (was a no-op)

The --schema option (referring to the ODCS JSON schema) was renamed to --json-schema to avoid confusion with --schema-name, which refers to the schema within the data contract to test for.

  • Error messages for uncaught exceptions are shortened now. Pass --debug (or set DATACONTRACT_CLI_DEBUG=1) to see the full traceback. (#1175)
  • Add example calls to --help outputs (#1176)
  • Add explicit errors when required env vars for soda connections are missing (#1177)
  • Validate some of the CLI options against their allowed values instead of accepting any string (#1178)

v0.11.9

20 Apr 14:21

Choose a tag to compare

[0.11.9] - 2026-04-20

Added

  • Added --checks option to test command to selectively run check categories: schema, quality, servicelevel (#678)
  • Added --schema-name option to test command to test a specific schema instead of all schemas (#1079,#1085 @kelsoufi-sanofi)

Fixed

Thanks to @kelsoufi-sanofi for the new --schema-name option on test, and to @Schokuroff, @Ai-chan-0411, and @davidb-tada for their contributions.

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