- Fix YAML tags in auth config struct (json -> yaml) - Update CLI configs to use pre-hashed API keys - Remove double hashing in WebSocket client - Fix port mapping (9102 -> 9103) in CLI commands - Update permission keys to use jobs:read, jobs:create, etc. - Clean up all debug logging from CLI and server - All user roles now authenticate correctly: * Admin: Can queue jobs and see all jobs * Researcher: Can queue jobs and see own jobs * Analyst: Can see status (read-only access) Multi-user authentication is now fully functional.
106 lines
2 KiB
YAML
106 lines
2 KiB
YAML
$schema: "http://json-schema.org/draft-07/schema#"
|
|
title: "FetchML Worker Configuration"
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- base_path
|
|
- worker_id
|
|
- redis_addr
|
|
- podman_image
|
|
- container_workspace
|
|
- container_results
|
|
- train_script
|
|
properties:
|
|
host:
|
|
type: string
|
|
user:
|
|
type: string
|
|
ssh_key:
|
|
type: string
|
|
port:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 65535
|
|
base_path:
|
|
type: string
|
|
train_script:
|
|
type: string
|
|
redis_addr:
|
|
type: string
|
|
redis_password:
|
|
type: string
|
|
redis_db:
|
|
type: integer
|
|
minimum: 0
|
|
known_hosts:
|
|
type: string
|
|
worker_id:
|
|
type: string
|
|
minLength: 1
|
|
max_workers:
|
|
type: integer
|
|
minimum: 1
|
|
poll_interval_seconds:
|
|
type: integer
|
|
minimum: 1
|
|
resources:
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
max_workers:
|
|
type: integer
|
|
minimum: 1
|
|
desired_rps_per_worker:
|
|
type: integer
|
|
minimum: 1
|
|
requests_per_sec:
|
|
type: integer
|
|
minimum: 1
|
|
podman_cpus:
|
|
type: string
|
|
podman_memory:
|
|
type: string
|
|
request_burst:
|
|
type: integer
|
|
minimum: 1
|
|
auth:
|
|
type: object
|
|
additionalProperties: true
|
|
metrics:
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
listen_addr:
|
|
type: string
|
|
metrics_flush_interval:
|
|
type: string
|
|
description: Duration string (e.g., "500ms")
|
|
data_manager_path:
|
|
type: string
|
|
auto_fetch_data:
|
|
type: boolean
|
|
data_dir:
|
|
type: string
|
|
dataset_cache_ttl:
|
|
type: string
|
|
description: Duration string (e.g., "24h")
|
|
podman_image:
|
|
type: string
|
|
minLength: 1
|
|
container_workspace:
|
|
type: string
|
|
container_results:
|
|
type: string
|
|
gpu_access:
|
|
type: boolean
|
|
task_lease_duration:
|
|
type: string
|
|
heartbeat_interval:
|
|
type: string
|
|
max_retries:
|
|
type: integer
|
|
minimum: 0
|
|
graceful_timeout:
|
|
type: string
|