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.1.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.1.0.tar.gz | 63.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| datanivra_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 131.0 kB
Release files / datanivra_cli-0.1.0.tar.gz
| Download URL | datanivra_cli-0.1.0.tar.gz |
|---|---|
| Size | 63.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c535f1fa9b98f2aeb5d4c4e3f7f4a46fc1c821efb32521109869094e1679925e
|
|
BLAKE2b-256 checksum How to use checksums |
a034f88b32217b446f27a87ba0f39485a3cc46a548ccc8a4e971bb1c321739b8
|
| 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.1.0-py3-none-any.whl
| Download URL | datanivra_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 68.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c508fac9748026866d48424f45bcfcbcd5ef0237a616ac7e729291cff5e9e59a
|
|
BLAKE2b-256 checksum How to use checksums |
d6e06ac50bfd4f369d9e4fb049503eb7fa142eec6053a5d9b0c5355fe0af0f37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|