Admin UI Features:
- Complete job lifecycle: create, run, view status, view output, delete
- Job table with sorting, filtering, and real-time status updates
- Status polling with countdown timers for running jobs
- Job output modal with result/error display
- API keys management: create keys, list keys with secrets visible
- Sidebar toggle between runners and keys views
- Toast notifications for errors
- Modern dark theme UI with responsive design
Supervisor Improvements:
- Fixed job status persistence using client methods
- Refactored get_job_result to use client.get_status, get_result, get_error
- Changed runner_rust dependency from git to local path
- Authentication system with API key scopes (admin, user, register)
- Job listing with status fetching from Redis
- Services module for job and auth operations
OpenRPC Client:
- Added auth_list_keys method for fetching API keys
- WASM bindings for browser usage
- Proper error handling and type conversions
Build Status: ✅ All components build successfully
67 lines
1.5 KiB
TOML
67 lines
1.5 KiB
TOML
[package]
|
|
name = "hero-supervisor"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
# Runner crate with integrated job module
|
|
runner_rust = { path = "../runner_rust" }
|
|
# Async runtime
|
|
tokio = { version = "1.0", features = ["full"] }
|
|
|
|
# Async trait support
|
|
async-trait = "0.1"
|
|
|
|
# Redis client
|
|
redis = { version = "0.25", features = ["aio", "tokio-comp"] }
|
|
|
|
# Job module dependencies (now integrated)
|
|
uuid = { version = "1.0", features = ["v4"] }
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
thiserror = "1.0"
|
|
chrono = "0.4"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
env_logger = "0.10"
|
|
|
|
# CLI argument parsing
|
|
clap = { version = "4.0", features = ["derive"] }
|
|
toml = "0.8"
|
|
|
|
# OpenRPC dependencies (now always included)
|
|
jsonrpsee = { version = "0.24", features = ["server", "macros"] }
|
|
anyhow = "1.0"
|
|
|
|
# CORS support for OpenRPC server
|
|
tower-http = { version = "0.5", features = ["cors"] }
|
|
tower = "0.4"
|
|
hyper = { version = "1.0", features = ["full"] }
|
|
hyper-util = { version = "0.1", features = ["tokio"] }
|
|
|
|
# Mycelium integration (optional)
|
|
base64 = { version = "0.22", optional = true }
|
|
rand = { version = "0.8", optional = true }
|
|
reqwest = { version = "0.12", features = ["json"], optional = true }
|
|
|
|
[dev-dependencies]
|
|
tokio-test = "0.4"
|
|
hero-supervisor-openrpc-client = { path = "clients/openrpc" }
|
|
escargot = "0.5"
|
|
|
|
[features]
|
|
default = ["cli"]
|
|
cli = []
|
|
mycelium = ["base64", "rand", "reqwest"]
|
|
|
|
[[bin]]
|
|
name = "supervisor"
|
|
path = "cmd/supervisor.rs"
|
|
|
|
# Examples
|
|
[[example]]
|
|
name = "osiris_openrpc"
|
|
path = "examples/osiris_openrpc/main.rs"
|
|
|