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
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
[package]
 | 
						|
name = "hero-supervisor-openrpc-client"
 | 
						|
version = "0.1.0"
 | 
						|
edition = "2021"
 | 
						|
description = "OpenRPC client for Hero Supervisor"
 | 
						|
license = "MIT OR Apache-2.0"
 | 
						|
 | 
						|
[lib]
 | 
						|
crate-type = ["cdylib", "rlib"]
 | 
						|
 | 
						|
[features]
 | 
						|
default = []
 | 
						|
 | 
						|
[dependencies]
 | 
						|
# Common dependencies for both native and WASM
 | 
						|
serde = { version = "1.0", features = ["derive"] }
 | 
						|
serde_json = "1.0"
 | 
						|
thiserror = "1.0"
 | 
						|
log = "0.4"
 | 
						|
uuid = { version = "1.0", features = ["v4", "serde"] }
 | 
						|
# Collections (common)
 | 
						|
indexmap = "2.0"
 | 
						|
 | 
						|
# Native JSON-RPC client (not WASM compatible)
 | 
						|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
 | 
						|
jsonrpsee = { version = "0.24", features = ["http-client", "macros"] }
 | 
						|
tokio = { version = "1.0", features = ["full"] }
 | 
						|
hero-supervisor = { path = "../.." }
 | 
						|
runner_rust = { git = "https://git.ourworld.tf/herocode/runner_rust.git", branch = "main" }
 | 
						|
env_logger = "0.11"
 | 
						|
 | 
						|
# WASM-specific dependencies
 | 
						|
[target.'cfg(target_arch = "wasm32")'.dependencies]
 | 
						|
wasm-bindgen = "0.2"
 | 
						|
wasm-bindgen-futures = "0.4"
 | 
						|
js-sys = "0.3"
 | 
						|
serde-wasm-bindgen = "0.6"
 | 
						|
web-sys = { version = "0.3", features = [
 | 
						|
  "console",
 | 
						|
  "Request",
 | 
						|
  "RequestInit",
 | 
						|
  "RequestMode",
 | 
						|
  "Response",
 | 
						|
  "Headers",
 | 
						|
  "Window",
 | 
						|
] }
 | 
						|
console_log = "1.0"
 | 
						|
getrandom = { version = "0.2", features = ["js"] }
 | 
						|
# Crypto for signing
 | 
						|
secp256k1 = { version = "0.29", features = ["rand", "global-context"] }
 | 
						|
sha2 = "0.10"
 | 
						|
hex = "0.4"
 | 
						|
 | 
						|
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
 | 
						|
wasm-bindgen-test = "0.3"
 | 
						|
 | 
						|
# UUID for job IDs (native)
 | 
						|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.uuid]
 | 
						|
version = "1.0"
 | 
						|
features = ["v4", "serde"]
 | 
						|
 | 
						|
# Time handling (native)
 | 
						|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.chrono]
 | 
						|
version = "0.4"
 | 
						|
features = ["serde"]
 | 
						|
 | 
						|
# WASM-compatible dependencies (already defined above)
 | 
						|
 | 
						|
[target.'cfg(target_arch = "wasm32")'.dependencies.chrono]
 | 
						|
version = "0.4"
 | 
						|
features = ["serde", "wasmbind"]
 | 
						|
 | 
						|
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
 | 
						|
version = "1.0"
 | 
						|
features = ["v4", "serde", "js"]
 | 
						|
 | 
						|
# Collections (common)
 | 
						|
indexmap = "2.0"
 | 
						|
 | 
						|
 | 
						|
[dev-dependencies]
 | 
						|
# Testing utilities
 | 
						|
tokio-test = "0.4"
 |