fetch_ml/configs/schema/worker_config_schema.yaml
Jeremie Fraeys ea15af1833 Fix multi-user authentication and clean up debug code
- 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.
2025-12-06 12:35:32 -05:00

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