Skip to content

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 05 Oct 09:36
· 27 commits to main since this release

[1.2.3] - 2026-10-05

Added

  • ClickHouse and Hive:
    • datacontract test: test ClickHouse and Hive servers (new clickhouse and hive extras) (#1687)
    • datacontract import clickhouse and datacontract import hive: import a data contract from a live ClickHouse or Hive database (#1687)
    • datacontract import sql: support the clickhouse and hive dialects (#1687)
  • XML:
    • datacontract import xsd: import a data contract from an XML Schema (XSD) file (new xml extra) (#1684)
    • datacontract export xsd: export a data contract to an XML Schema (XSD) (#1684)
    • datacontract test: test XML files (format: xml) (#1684)
  • datacontract import openapi: import a data contract from the response of a GET operation in an OpenAPI 3.x document
  • datacontract test: test YAML responses of API servers
  • datacontract export pydantic-model: export logicalTypeOptions as pydantic.Field constraints (#1678,#1679 @amassoudi)
  • datacontract export dbt-models and dbt-sources write a property's meta custom property to the column's config.meta (#1655,#1661 @lguyaux)

Changed

  • datacontract export dbt-models, datacontract export dbt-sources and datacontract dbt sync nest generic-test parameters under arguments: (we now require dbt 1.10+) (#1680,#1682 @opencode13241-eng @benvdh)
  • datacontract export pydantic-model: optional fields default to None (#1678,#1679 @amassoudi)
  • datacontract test:
    • an optional field that no record of a JSON, YAML or XML document has is no longer reported as missing
    • warns when the column types cannot be read from the catalog, as the physical type checks then compare only the logicalType (#1688)
    • glue, kinesis and sftp servers report that they are valid ODCS but cannot be tested yet, like the other untestable server types (#1688)

Fixed

  • datacontract export dbt-models and dbt-sources write column meta and tags under config, so dbt Fusion accepts the output (#1661)
  • datacontract test:
    • reports "no checks were executed" instead of failing when nothing was tested (#1504,#1675)
    • a JSON record that breaks the JSON Schema no longer stops the other checks, and every such record is reported
    • JSON schema validation on S3 checks every file matched by the location, not only the last one (#1511,#1673 @AdamoElProfesor)
    • JSON schema validation on S3 uses the AWS credential chain (#1683)
    • a JSON value of the wrong type fails the JSON Schema check, not every check on its column
    • the JSON Schema check reads .jsonl and .ndjson files, and files without a delimiter the way DuckDB does
    • constraints on the items of an array of plain values (pattern, enum, minimum, …) are checked
    • required fields of an absent optional object are no longer reported as missing (#1684)
    • JSON files that are not found are reported instead of failing with a TypeError
    • a duplicate check on a composite primary key no longer breaks the JSON output and run.pretty() (#1687)
    • a DATACONTRACT_MAX_ERRORS below 1 is reported as a configuration error (#1673 @AdamoElProfesor)
  • datacontract import jsonschema:
    • resolves local $refs and merges allOf, which imported as strings or not at all
    • imports const, additionalProperties as a map, minItems, maxItems, uniqueItems, multipleOf and examples, and warns about the keywords it leaves out
    • boolean schemas (true, false) no longer fail the import
  • datacontract import dbt keeps column meta instead of silently dropping it: classification maps to ODCS classification, the other entries to a meta custom property (#1655,#1661 @lguyaux)
  • datacontract import sql: the fields of a STRUCT column are no longer imported as columns of the table (#1688)
  • datacontract export html: add schema and property anchors (#<schema name>.<property name>) and nested objects in array items back (#1676,#1677 @dmaresma)
  • datacontract api: authoritative definitions are looked up with the Entropy Data API key sent with the request again (since v1.2.1, the API was unable to resolve authoritative definitions if ENTROPY_DATA_API_KEY was unset) (#1681)
  • datacontract api caches authoritative definitions for only 60s, previously until the next restart (#1681)
  • datacontract export sodacl: date and timestamp minimum/maximum no longer fail in soda-core (#1662,#1665 @AdamoElProfesor @parvin-97)
  • datacontract test and datacontract import s3: public S3 buckets are read at the server's endpointUrl (#1683)