Skip to main content

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.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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rovidh-0.1.0.tar.gz (69.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rovidh-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

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

Hashes for rovidh-0.1.0.tar.gz
Algorithm Hash digest
SHA256 27d73b484c8db1034d581d63cd3947082be760b82a1306a5d64acfedd183f1f3
MD5 5c20ecd8315aa427477fb1d6fb444da5
BLAKE2b-256 4f0032955cbd8f4d4fc9b70105de3ae7f963e87c155c330fe1ee96982d96843e

See more details on using hashes here.

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

Hashes for rovidh-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57adfe42a2862c48515c4ce274941e9269d7065837d5fca94847297502a8c825
MD5 546ece1fd8b3cbf7ea44abba8e48df38
BLAKE2b-256 7cec6859ff0333c8c0ea3241630df7c7fdb66c0fe14efdd5a8d1120767558523

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page