Skip to main content

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.default
  • config.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_jwt
  • POST 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 .env with live credentials.
  • Rotate ADMIN_KEY, vendor keys, and JWTs regularly.
  • Keep VERIFY_SSL=true except 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)

Source distribution for rovidh 0.1.0
File Size Uploaded
rovidh-0.1.0.tar.gz 69.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rovidh 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page