Entropy Data CLI
The entropy-data CLI lets you manage your Entropy Data platform from the command line.
You can manage data products, data contracts, access agreements, teams, source systems, definitions, certifications, and more — directly from your terminal or CI/CD pipeline.
- Docs: https://docs.entropy-data.com
- PyPI: https://pypi.org/project/entropy-data/
- GitHub: https://github.com/entropy-data/entropy-data-cli
Install
Requires Python >= 3.11.
uv tool install entropy-data
entropy-data --help
Or with pip:
pip install entropy-data
entropy-data --help
Docker
docker run --rm entropydata/entropy-data-cli --help
Getting Started
1. Configure a connection
Generate an API key in the Entropy Data UI under organization settings, then:
entropy-data connection add prod
# prompts for API key and host
2. Explore your data platform
# List teams
entropy-data teams list
# Get a specific data product
entropy-data dataproducts get my-data-product
# List data contracts as JSON
entropy-data datacontracts list --output json
3. Manage resources
# Create or update a team from a YAML file
entropy-data teams put marketing --file team.yaml
# Show the team roles configuration, or switch to a custom role catalog
entropy-data settings team-roles get
entropy-data settings team-roles put --file team-roles.yaml
# Approve an access agreement
entropy-data access approve 640864de-83d4-4619-afba-ccea8037ed3a
# Search across all resources
entropy-data search query "customer orders"
Commands
entropy-data [--version] [--connection NAME] [--output table|json|yaml] [--debug]
connection list | get | add | remove | set-default | test
dataproducts list | get | put | delete | import-from-git | star | unstar | star-status | stargazers | gitconnection ...
datacontracts list | get | put | test | delete | yaml | generate | import-from-git | gitconnection ...
access list | get | put | delete | approve | reject | cancel | request
teams list | get | put | delete | git-credentials ... | notifications ...
sourcesystems list | get | put | delete
definitions list | get | put | delete
certifications list | get | put | delete
classifications list | get | put | delete
policies list | get | put | delete
example-data list | get | put | delete
test-results list | get | publish | delete
costs list | add | delete
assets list | get | put | delete | tags ...
tags list | get | put | delete
api-keys create | delete
connectors list | get | put | delete
integrations list | get | runs | runs-get | runs-latest | run | cancel
organization get | members ... | git-credentials ...
settings get-customization | put-customization | get-scim-mapping | put-scim-mapping | team-roles ...
events poll
lineage list | submit | delete
schemas get
search query
semantics namespaces ... | concepts ... | relationships ... | search
usage list | submit | delete
export dir
apply dir [--include] [--exclude] [--prune] [--dry-run]
import zip
sync --source SRC --target TGT --include a,b [--exclude] [--prune] [--dry-run] [--keep DIR]
Syncing organization state between instances
sync copies the portable declarative state of an organization from one Entropy Data
instance to another — for example to promote a test environment to prod. It exports the
source and applies it to the target in one step (export dir + apply dir do the same in
two). Only state reachable through the public /api/** API and portable across instances
is copied (no secrets, telemetry, or environment-specific identity). Every write is an
idempotent PUT-by-id, so runs converge and are safe to repeat.
sync copies nothing by default — name the resources to sync with --include.
Supported resources (in dependency order): teams, tags, definitions, policies,
sourcesystems, certifications, classification-schemes, assets, datacontracts,
dataproducts, example-data, access, semantic-namespaces, semantic-ontology,
organization-features.
Not synced: users & team members, API keys, git credentials, integration and connector credentials, usage, costs, test results, events, and lineage (per-instance identity, secrets, or telemetry). Organization customization, SCIM mapping, team-roles configuration, notification channels, connectors, and integrations are not supported yet.
# Preview a test -> prod sync of selected resources without writing anything.
entropy-data sync --source test --target prod --include teams,policies,datacontracts,dataproducts --dry-run
# Sync those resources.
entropy-data sync --source test --target prod --include teams,policies,datacontracts,dataproducts
# Mirror: also delete target resources that are absent from the source.
entropy-data sync --source test --target prod --include datacontracts --prune
# The two-step equivalent, with a reviewable YAML tree in between.
entropy-data -c test export dir ./state
entropy-data -c prod apply dir ./state
apply dir — apply a local export tree
apply dir <path> reconciles a local export directory into the connected instance, in the
spirit of kubectl apply -f <dir>. The tree follows a folder-as-kind convention: the
directory name is the resource kind and each YAML file below it is one resource, addressed
by the id in its body.
state/
teams/ # folder name = resource kind
marketing.yaml # one file per resource (filename is cosmetic)
policies/
pii-policy.yaml
datacontracts/
orders-1-orders.yaml
semantic-ontology/
main.yaml # document resources: one YAML doc per namespace
organization-features/
organization-features.yaml # singleton: <name>/<name>.yaml
Unlike kubectl, the files carry no kind: field — the enclosing folder is authoritative,
so a file only means what its folder says. Folders that are not a known resource kind are
ignored. Unlike sync, apply dir applies the whole tree by default (the directory is
your selection); use --include/--exclude to narrow it, --dry-run to preview, and
--prune to also delete instance resources absent from the tree. This layout matches the
app's own organization export, so an export dir tree and an in-app export zip interchange.
Useful options:
--include a,b— narrow the apply to these resources (names from the supported list above). Optional; the whole tree is applied when omitted.--exclude a,b— drop resources from the applied set.--prune— after upserts, delete target resources absent from the directory, in reverse dependency order. Guarded by a confirmation prompt unless--yesis passed.--dry-run— print per-resource create/update/(prune) counts; no writes.
Notes:
- Team members are stripped on import (users are per-instance identities); the export keeps them so the artifact is a faithful snapshot.
- The semantics graph is copied as one OSI ontology YAML document per namespace
(
semantic-ontology/<namespace>.yaml) via the app's.../{ns}/ontology.yamlendpoint, which imports it in the correct internal dependency order and provisions the namespace from the metadata (display name, read-only flag, owning team) carried in the document's rootcustom_properties— so there is no separate namespace artifact. Requires that endpoint on the target instance. A tree exported by an older version that still carries asemantic-namespaces/folder is applied as before. - The organization feature configuration is an org-level singleton
(
organization-features/organization-features.yaml), applied last and never pruned. It requires the app'sGET/PUT /api/organization/featuresendpoint (entropy-data#1521), which must be merged and deployed to the target instance first.
Connection Management
Connections are stored in ~/.entropy-data/config.toml:
default_connection_name = "prod"
[connections.prod]
api_key = "ed_abc123..."
host = "https://api.entropy-data.com"
[connections.dev]
api_key = "ed_xyz789..."
host = "https://localhost:8080"
You can also use environment variables (ENTROPY_DATA_API_KEY, ENTROPY_DATA_HOST) or CLI options (--api-key, --host).
.env File Support
The CLI automatically loads a .env file from the current working directory. This is useful for project-specific configuration:
# .env
ENTROPY_DATA_API_KEY=ed_abc123...
ENTROPY_DATA_HOST=https://api.entropy-data.com
Values from .env are loaded as environment variables and do not override already-set environment variables.
Resolution precedence: CLI options > environment variables / .env > config file.
TLS behind a corporate proxy or internal CA
By default the CLI verifies TLS certificates against the bundled CA certificates (certifi). In a corporate network with a TLS-inspecting proxy or an internal certificate authority, this can fail with CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate, because the root CA is installed in the operating system's trust store but not in the bundled list.
Use the global --system-truststore option to verify against the operating system's trust store (macOS Keychain, Windows certificate store, or the system CA certificates on Linux) instead:
entropy-data --system-truststore datacontracts list
You can also enable it for every invocation by exporting an environment variable:
export ENTROPY_DATA_SYSTEM_TRUSTSTORE=1
This keeps certificate verification on while trusting the corporate root CA, and applies to every command that makes HTTPS requests.
Development
git clone https://github.com/entropy-data/entropy-data-cli
cd entropy-data-cli
uv sync --dev
uv run pytest
uv run ruff check .
Release
- Update the version in
pyproject.toml - Update
CHANGELOG.mdwith a## [X.Y.Z]section - Commit, tag, and push:
git add pyproject.toml CHANGELOG.md
git commit -m "Bump version to X.Y.Z"
git tag vX.Y.Z
git push origin main --tags
The release workflow will automatically run tests, publish to PyPI, create a GitHub Release, and push a Docker image to Docker Hub.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file entropy_data-0.3.21.tar.gz.
File metadata
- Download URL: entropy_data-0.3.21.tar.gz
- Upload date:
- Size: 84.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70aca18b5b06dbfdb6fb90e5fd7dd9cfdb0cc0d7797e9676f5616637e960b83b
|
|
| MD5 |
df7b7b8c2f06baff22fe245fec1cefe2
|
|
| BLAKE2b-256 |
327b9dcac4245bcc4dcdc71ea8fe396fd571533b30b1ce819eddca80e8ec1dfa
|
Provenance
The following attestation bundles were made for entropy_data-0.3.21.tar.gz:
Publisher:
release.yaml on entropy-data/entropy-data-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
entropy_data-0.3.21.tar.gz -
Subject digest:
70aca18b5b06dbfdb6fb90e5fd7dd9cfdb0cc0d7797e9676f5616637e960b83b - Sigstore transparency entry: 2450879948
- Sigstore integration time:
-
Permalink:
entropy-data/entropy-data-cli@be3f325cef6b18789bda55895d12e5bbd5f5758b -
Branch / Tag:
refs/tags/v0.3.21 - Owner: https://github.com/entropy-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@be3f325cef6b18789bda55895d12e5bbd5f5758b -
Trigger Event:
push
-
Statement type:
File details
Details for the file entropy_data-0.3.21-py3-none-any.whl.
File metadata
- Download URL: entropy_data-0.3.21-py3-none-any.whl
- Upload date:
- Size: 70.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f371cd45257144610762780b90dac8c11e3fe795478bf5655fbeef8a57fdc742
|
|
| MD5 |
133b8c939310dd865112bd247d8dbf5a
|
|
| BLAKE2b-256 |
bd7c07e2f97fde2a756679bf280096332596e4f75d4319eae445610bbdee0a6a
|
Provenance
The following attestation bundles were made for entropy_data-0.3.21-py3-none-any.whl:
Publisher:
release.yaml on entropy-data/entropy-data-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
entropy_data-0.3.21-py3-none-any.whl -
Subject digest:
f371cd45257144610762780b90dac8c11e3fe795478bf5655fbeef8a57fdc742 - Sigstore transparency entry: 2450879968
- Sigstore integration time:
-
Permalink:
entropy-data/entropy-data-cli@be3f325cef6b18789bda55895d12e5bbd5f5758b -
Branch / Tag:
refs/tags/v0.3.21 - Owner: https://github.com/entropy-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@be3f325cef6b18789bda55895d12e5bbd5f5758b -
Trigger Event:
push
-
Statement type: