| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| datacontract_cli-1.0.15-py3-none-any.whl | 2026-07-30 | 3.1 MB | |
| datacontract_cli-1.0.15-py3-none-any.whl.sigstore.json | 2026-07-30 | 9.4 kB | |
| datacontract_cli-1.0.15.tar.gz | 2026-07-30 | 3.1 MB | |
| datacontract_cli-1.0.15.tar.gz.sigstore.json | 2026-07-30 | 9.5 kB | |
| README.md | 2026-07-30 | 7.9 kB | |
| v1.0.15 source code.tar.gz | 2026-07-30 | 6.7 MB | |
| v1.0.15 source code.zip | 2026-07-30 | 7.3 MB | |
| Totals: 7 Items | 20.3 MB | 0 | |
[1.0.15] - 2026-07-30
Added
datacontract testtreats a server typedmssqlas SQL Server, so contracts carrying the ODBC/dbt spelling are testable (ODCS itself only definessqlserver)datacontract test --quality-idruns a single quality rule by its ODCSquality.id, and--tagruns every quality rule declaring one of the givenquality.tags(#1080)- Test results report the
quality_idandtagsof the quality rule a check comes from - New
databricks-runtimeextra for installing inside a Databricks Runtime, where the cluster already provides PySpark:pip install datacontract-cli[databricks-runtime](#1211 @chifu1234) - The docs Commands reference documents the global options
--versionand--system-truststore, and every import and export guide links to its command page and back datacontract test --dimensionruns only the checks measuring one data quality dimension, e.g.--dimension uniqueness; it matches the ODCSquality.dimensionof a rule and the schema and service level checks that measure the same aspect- New
dataframeextra installs just what testing Spark DataFrames needs:pip install datacontract-cli[dataframe] datacontract import trinocreates a data contract from a Trino catalog, including a ready-to-testserversblockdatacontract import oraclecreates a data contract from a live Oracle database, including a ready-to-testserversblockdatacontract import gcsanddatacontract import adlscreate a data contract from files in Google Cloud Storage or Azure Blob Storage, including a ready-to-testserversblockdatacontract import sqlservercreates a data contract from a live SQL Server database, including a ready-to-testserversblockdatacontract import mysqlcreates a data contract from a live MySQL database, including a ready-to-testserversblock- The documentation has a Release Notes page, generated from this changelog
- The documentation has a guide to migrate contracts from DCS to ODCS
datacontract import s3creates a data contract from files in an S3 bucket, including a ready-to-testserversblockdatacontract import athenacreates a data contract from an Amazon Athena database, including a ready-to-testserversblockdatacontract import unityis nowdatacontract import databricks; theunityformat name keeps working- Redshift infers the authentication method: a password means a database login, otherwise your AWS session is used for IAM.
DATACONTRACT_REDSHIFT_AUTHENTICATIONis no longer required and remains as an override datacontract import postgrescreates a data contract from a live Postgres schema, including a ready-to-testserversblockdatacontract import redshiftcreates a data contract from an Amazon Redshift schema, including a ready-to-testserversblock- Redshift supports IAM authentication, using temporary credentials from your AWS session instead of a database password
datacontract import bigquerynow generates aserversblock, sodatacontract testworks right after the importdatacontract testverifies declared primary keys: each key column must have no missing values, and the key must have no duplicates (a composite key is checked as a tuple) (#1220 @DMZ22)
Fixed
datacontract testcheckedphysicalTypeagainst a same-named table in another schema when one existed, because the native column types were read from the catalog without the contract's schemadatacontract testagainst SQL Server no longer fails every check with "Could not read model" whenserver.schemadiffers from the login's default schemadatacontract-cli[s3]could not rundatacontract test, anddatacontract-cli[gcs]was missing the AWS duckdb extension the GCS connection loads; each data source extra now installs everything its guide needs- The API testing guide stated that no extra is required, but the response is tested with duckdb; it installs
datacontract-cli[duckdb]now datacontract testtold users to installdatacontract-cli[local], an extra that does not exist, anddatacontract-cli[api], which installs the web server rather than a test backend; both now point atduckdbdatacontract import gcswrotetype: gcs, which is not an ODCS server type, so the imported contract faileddatacontract lintanddatacontract test; GCS is now written as ans3server on the Google interoperability endpoint- A data contract could inject SQL into the duckdb session through
endpointUrl, which is interpolated into the statement that stores the S3, GCS and Azure credentials; every value is escaped now - The
datacontract apiserver accepted a local file path as theschemaquery parameter, so a caller could have it read files from the server's filesystem; onlyhttp(s)URLs are accepted now - Trino physical type checks were silently skipped: its
information_schemahas no length or precision columns, so the catalog query failed and a wrongphysicalTypestill passed datacontract import athenaanddatacontract import gluenow honourDATACONTRACT_S3_ACCESS_KEY_IDandDATACONTRACT_S3_SECRET_ACCESS_KEY; the Glue catalog was read with ambient AWS credentials only- S3 now uses an existing AWS session (
aws sso login,AWS_PROFILE, instance roles) when no access key is configured; previously such a setup failed with403 Forbidden - Documented that Athena authenticates with an existing AWS session (
aws sso login,AWS_PROFILE, instance roles); static access keys were presented as the only option regionNamein an Athenaserversblock was ignored, so the region could only be set viaDATACONTRACT_S3_REGIONdatacontract import gluemappedtimestampcolumns tologicalType: dateinstead oftimestamp- Testing and importing Redshift failed with
codec not available in Python: 'UNICODE' - Error messages no longer drop bracketed text such as
pip install "botocore[crt]" - BigQuery export failed on fields with
logicalType: time - Testing Parquet files failed for
numberfields without a declared precision and scale - CSV and JSON imports now write detected formats (
email,uuid,date-time) tologicalTypeOptions.formatinstead of a custom property, so they are validated bydatacontract test - SQL imports now map
TIMEtypes with precision or time zone (e.g.TIME(9)) tologicalType: time; previously the logical type was left unset datacontract test --checks qualitynow runsrowCountquality rules, which were wrongly categorized as schema checksdatacontract import dbtderives the contractidfrom the dbt manifest'sproject_nameinstead of always emitting the placeholdermy-data-contract(#1221 @DMZ22)- A
physicalTypedeclaring a zero scale (NUMBER(38,0),decimal(18,0)) failed against its own column on Snowflake, Oracle, SQL Server and Databricks (#1377 @DMZ22) - Snowflake
physicalTypechecks failed for structuredOBJECT,ARRAYandMAPcolumns, whose fields are now compared field by field instead of as rendered strings (#1377 @DMZ22) datacontract teston Athena failed aphysicalTypewritten in the Hive spellingdatacontract import athenaproduces (array<string>against the reportedarray(varchar)) (#1377 @DMZ22)- A
physicalTypedeclaring fractional seconds (TIMESTAMP_NTZ(9),datetime2(7),timestamp(3)) failed against its own column, so every timestamp column imported from Snowflake failed the firstdatacontract test datacontract testanddatacontract import oracleread Oracle character lengths in bytes, so anNVARCHAR2(50)column was reported and checked asNVARCHAR2(100)datacontract teston Databricks could not check the element types ofARRAY,MAPandSTRUCTcolumns, which the catalog reports as a bare type name