ROVI Data Hub Vendor CLI
Command-line client for vendor and system operations against the ROVI Data Hub API.
The CLI lets you:
- manage vendor API tokens (admin operations),
- create/renew/delete system JWTs,
- upload metadata, files, ONNX models, and Grafana dashboards to ingestion endpoints,
- inspect active configuration loaded from environment files.
Requirements
- Python 3.11+
uv(recommended) or another Python environment manager- network access to the ROVI Data Hub API
Install
Option 1: with uv (recommended)
uv sync
Run commands with:
uv run rovidh --help
Option 2: with pip
python -m venv .venv
source .venv/bin/activate
pip install -e .
rovidh --help
Configuration
The app uses environment-based configuration and looks for values in this order (if present):
config/.env.default.env.defaultconfig.env.env
You can also pass values directly via CLI options.
Common variables
| Variable | Required For | Description |
|---|---|---|
ROVI_API |
all commands | Base API endpoint (default: https://rovidatahub.ornl.gov/api) |
VERIFY_SSL |
all commands | SSL verification toggle (true/false) |
USE_SYSTEM_TRUST |
all commands | Augment the standard certificate bundle with the operating system certificate store (true/false, default: true) |
ADMIN_KEY |
admin commands |
Admin access token |
VENDOR_NAME |
admin commands |
Vendor name for token operations |
VENDOR_ID |
system commands |
Vendor identifier |
VENDOR_KEY |
system commands |
Vendor key used as access-token header |
SYSTEM_NAME |
system commands |
System name |
SYSTEM_JWT |
system + upload commands |
System JWT bearer token |
Example .env:
ROVI_API=https://rovidatahub.ornl.gov/api
VERIFY_SSL=true
USE_SYSTEM_TRUST=true
ADMIN_KEY=...
VENDOR_NAME=example-vendor
VENDOR_ID=...
VENDOR_KEY=...
SYSTEM_NAME=test-system
SYSTEM_JWT=...
Command Groups
Top-level help:
uv run rovidh --help
config
Show active resolved config:
uv run rovidh config show
admin
Create vendor token:
uv run rovidh admin new
Delete vendor token:
uv run rovidh admin delete
system
Check API connectivity, TLS verification, and the resolved connection settings without creating or changing remote resources:
uv run rovidh system health
This command calls the unauthenticated GET /metrics endpoint. It does not
validate vendor credentials or system JWTs.
Create system JWT (also saves SYSTEM_NAME, VENDOR_ID, and SYSTEM_JWT into .env):
uv run rovidh system new
Renew current system JWT (updates SYSTEM_JWT in .env):
uv run rovidh system renew
Delete system JWT:
uv run rovidh system delete
upload
Upload metadata JSON file:
uv run rovidh upload metadata ./metadata.json
Upload single data file:
uv run rovidh upload file ./payload.json
Upload ONNX model:
uv run rovidh upload model ./model.onnx
Upload Grafana dashboard JSON:
uv run rovidh upload dashboard ./dashboard.json
Upload multiple files:
uv run rovidh upload files ./a.json ./b.json ./c.json
Upload all files in a directory:
uv run rovidh upload directory ./batch
API Endpoints Used
The CLI calls these API paths relative to ROVI_API:
POST create_token/{vendor_name}POST delete_token/{vendor_name}POST create_jwt/{vendor_id}/{system_name}POST renew_jwtPOST delete_jwt/{vendor_id}/{system_name}GET metricsPOST upload-metadata/POST upload-file/POST upload-model/POST upload-dashboard/POST upload-batch/
Development
Install editable dependencies and run commands through uv:
uv sync
uv run rovidh --help
Run tests:
uv run pytest
Upload tests read openapi.json from the repository root when it is present.
That file is local-only and is not required to be committed; OpenAPI-backed
tests skip with a clear message if the file is absent.
Security Notes
- Do not commit
.envwith live credentials. - Rotate
ADMIN_KEY, vendor keys, and JWTs regularly. - Keep
VERIFY_SSL=trueexcept in controlled local testing. USE_SYSTEM_TRUSTdefaults totrue, augmenting the standard Requests certificate bundle with certificates trusted by the operating system (such as a lab-managed macOS Keychain HTTPS-inspection root). It affects only therovidhprocess; it neither installs nor bundles organization certificates.
Metadata
Release files for rovidh 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rovidh-0.1.1.tar.gz | 45.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rovidh-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.2 kB
Release files / rovidh-0.1.1.tar.gz
| Download URL | rovidh-0.1.1.tar.gz |
|---|---|
| Size | 45.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a8a7641045a4fca568b2065bf7a4b1b061dd6f2fdf6412c230a93f70ede2dbe3
|
|
BLAKE2b-256 checksum How to use checksums |
c3cdc1aa4db61cfbdfc4a318eea20b418707b1cbc50a409b180b3a84f8e3dce4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / rovidh-0.1.1-py3-none-any.whl
| Download URL | rovidh-0.1.1-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b8db69f6a20a0eb7a59972df41b287982fed6ac8385011d77f7570eb6070a8d
|
|
BLAKE2b-256 checksum How to use checksums |
cc14ab24a008faec7399b0051b38ba740a67856437deb7b3ec789652170c2690
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|