Skip to main content

Data Product CLI

The dataproduct CLI is an open-source command-line tool for working with data products defined with the Open Data Product Standard (ODPS).

It is the data-product sibling of datacontract-cli (which targets the Open Data Contract Standard) and mirrors its technology and release mechanism. The tool is written in Python and can be used standalone, in CI/CD, or as a Python library.

The behavior of each command is specified in specs/.

Install

uv tool install --python python3.11 dataproduct-cli
# or
pip install dataproduct-cli

Commands

init — create a data product

dataproduct init                       # writes ./dataproduct.odps.yaml
dataproduct init my.odps.yaml          # custom path
dataproduct init --overwrite           # replace an existing file
dataproduct init --template <url|path> # seed from a template or existing product

lint — validate against the ODPS standard

dataproduct lint                                   # lints ./dataproduct.odps.yaml
dataproduct lint my.odps.yaml
dataproduct lint --all-errors                      # report every schema violation
dataproduct lint --output-format junit --output TEST-dataproduct.xml
dataproduct lint --json-schema ./odps.schema.json  # validate against a custom schema

The data product is checked against the bundled ODPS JSON Schema matching its apiVersion (v1.1.0, v1.0.0, or v0.9.0; unknown versions are validated against the latest). Exit code is 0 when valid, 1 otherwise.

lint also resolves the data contracts linked via inputPorts[].contractId / outputPorts[].contractId: through Entropy Data when an API key is set, otherwise by searching *.odcs.yaml files (kind: DataContract, matching id) under the current directory. --local-references searches the local files even when an API key is set. If datacontract is on your PATH, each resolved contract is linted with it too. Unresolved or invalid contracts are reported as warnings; --no-resolve-references turns this off.

publish — publish to Entropy Data

export ENTROPY_DATA_API_KEY=...        # from Entropy Data → Settings → API Keys
dataproduct publish my.odps.yaml

publish sends PUT {host}/api/dataproducts/{id} with an x-api-key header. The host defaults to https://api.entropy-data.com and can be overridden with ENTROPY_DATA_HOST. The referenced team must already exist in your org.

Configuration

Purpose Variable (with fallbacks)
API host ENTROPY_DATA_HOST → DATAMESH_MANAGER_HOST → DATACONTRACT_MANAGER_HOST → https://api.entropy-data.com
API key ENTROPY_DATA_API_KEY → DATAMESH_MANAGER_API_KEY → DATACONTRACT_MANAGER_API_KEY

.env files are loaded automatically.

Use as a library

from dataproduct.data_product import DataProduct

run = DataProduct(data_product_file="dataproduct.odps.yaml").lint()
assert run.result == "passed"

DataProduct(data_product_file="dataproduct.odps.yaml").publish()

Development

See AGENTS.md.

License

MIT

Metadata

Release files for dataproduct-cli 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataproduct-cli 0.3.1
File Size Uploaded Provenance Actions
dataproduct_cli-0.3.1.tar.gz 28.3 kB With provenance Details for dataproduct_cli-0.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dataproduct-cli 0.3.1
File Interpreter ABI Platform Actions
dataproduct_cli-0.3.1-py3-none-any.whl Python 3 none any Details for dataproduct_cli-0.3.1-py3-none-any.whl

Total release size: 60.3 kB

Release files / dataproduct_cli-0.3.1.tar.gz

Download URL dataproduct_cli-0.3.1.tar.gz
Size 28.3 kB
Tags Source
SHA-256 checksum
How to use checksums
29ee6ce826f9f4585469c8a90261d8cbddbf7fe451909a2a25be0af27ba3300b
BLAKE2b-256 checksum
How to use checksums
f326fb9fb4c505e66d2f7aa5a215e77687c71b0cb0c853bbab8e18b3f1a591c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / dataproduct_cli-0.3.1-py3-none-any.whl

Download URL dataproduct_cli-0.3.1-py3-none-any.whl
Size 32.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f27669f547a9bc800557da0c8f12829bac01f639c86dcd1c10194305c7448f95
BLAKE2b-256 checksum
How to use checksums
7c8eea9d766a7e44d10835986b74a95d64d7d187c071bcbed9e57fef3269c8a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Security for dataproduct-cli 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dataproduct_cli-0.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page