ROVI Data Hub Vendor Agent
Project description
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.
Project details
Release history Release notifications | RSS feed
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 rovidh-0.1.0.tar.gz.
File metadata
- Download URL: rovidh-0.1.0.tar.gz
- Upload date:
- Size: 69.0 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27d73b484c8db1034d581d63cd3947082be760b82a1306a5d64acfedd183f1f3
|
|
| MD5 |
5c20ecd8315aa427477fb1d6fb444da5
|
|
| BLAKE2b-256 |
4f0032955cbd8f4d4fc9b70105de3ae7f963e87c155c330fe1ee96982d96843e
|
File details
Details for the file rovidh-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rovidh-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57adfe42a2862c48515c4ce274941e9269d7065837d5fca94847297502a8c825
|
|
| MD5 |
546ece1fd8b3cbf7ea44abba8e48df38
|
|
| BLAKE2b-256 |
7cec6859ff0333c8c0ea3241630df7c7fdb66c0fe14efdd5a8d1120767558523
|