datanivra-cli
The datanivra command line (DX-01): metadata and orchestration only.
datanivra login --url https://api.example.test --device --tenant acme-qa # identity provider (RFC 8628)
datanivra login --url https://api.example.test --id-token-stdin --tenant acme-qa < id_token.txt # CI
datanivra login --url https://api.example.test --token-stdin < token.txt
datanivra jobs list --state FAILED -o json
datanivra datasets request create request.json --idempotency-key "$CI_PIPELINE_ID"
src/datanivra_cli/app.py— argparse command tree (login, org, roles, users, agents [enroll], sources, discover [review], policies [lifecycle], environments, datasets [request, provision, rollback, revoke], jobs, certify, refresh, packs, billing, audit, capacity) and exit codes. Everyauth='user'operation ofAPI_ROUTEShas a command —tests/test_cli_coverage.pyruns each one against a recording fake and fails for a new operation without a command.config.py— profiles inprofiles.json(0600, atomic writes, refuses group/world-readable files, token never printed, only sent to the URL it was issued for).device.py— OAuth 2.0 device authorization grant against the identity provider the control plane advertises (GET /v1/auth/oidc/config): https-only IdP URLs (http only to loopback), issuer check,slow_down/denial/expiry handling; the ID token is exchanged atPOST /v1/auth/oidc/exchangeand never printed.logoutrevokes the session server-side (POST /v1/auth/logout) before forgetting it.- Transport security: the control-plane URL must be
https://; plainhttp://is accepted only for a loopback host (localhost,127.0.0.0/8,[::1]), so neither a stored nor aDATANIVRA_TOKENsession token is ever sent in clear text across a network.--insecure-httpis the explicit opt-in for a trusted private network. output.py— egress guard (onlyCONTROL_METADATA/AGGREGATE_METRIC/EVIDENCE_METADATA/SECRET_REFERENCEfields are printed), stable JSON, tables.
The CLI talks only to the control plane via datanivra_sdk; it imports no connectors, engine
or agent code (enforced by tests/contract/test_import_boundaries.py and
tests/test_cli_unit.py). User guide: apps/docs/content/cli.md.
Tests: uv run pytest packages/cli -q (unit + end-to-end against the composed control plane
on embedded PostgreSQL).
Metadata
Release files for datanivra-cli 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| datanivra_cli-0.2.0.tar.gz | 70.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| datanivra_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 147.0 kB
Release files / datanivra_cli-0.2.0.tar.gz
| Download URL | datanivra_cli-0.2.0.tar.gz |
|---|---|
| Size | 70.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e5835421a213799f34a7421db170c40a52748b957417479548685eea7a40900
|
|
BLAKE2b-256 checksum How to use checksums |
16d460b678f1924fe7823e6c0489795d6f5aefcaa80b5b95d61111265ff6ae3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / datanivra_cli-0.2.0-py3-none-any.whl
| Download URL | datanivra_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 76.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4af3c033654ef15c284c30f7e03afcc0e8cbf713cc46e603d3da5ed31cd74a6c
|
|
BLAKE2b-256 checksum How to use checksums |
c04969dde5d21b5b67e3bfe850094048769575581b292189b7ca004616d1412f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|