ROVI Data Hub Vendor CLI
Command-line client for vendor and system operations against the ROVI Data Hub API.
Full documentation is available in the MkDocs source under docs/.
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) |
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
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
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}POST 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.
Release files for rovidh 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 | |
|---|---|---|---|
| rovidh-0.1.0.tar.gz | 69.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rovidh-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.4 kB
Release files / rovidh-0.1.0.tar.gz
| Download URL | rovidh-0.1.0.tar.gz |
|---|---|
| Size | 69.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27d73b484c8db1034d581d63cd3947082be760b82a1306a5d64acfedd183f1f3
|
|
BLAKE2b-256 checksum How to use checksums |
4f0032955cbd8f4d4fc9b70105de3ae7f963e87c155c330fe1ee96982d96843e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / rovidh-0.1.0-py3-none-any.whl
| Download URL | rovidh-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57adfe42a2862c48515c4ce274941e9269d7065837d5fca94847297502a8c825
|
|
BLAKE2b-256 checksum How to use checksums |
7cec6859ff0333c8c0ea3241630df7c7fdb66c0fe14efdd5a8d1120767558523
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|