ray:
  # Ray Job server address (head 容器内视角)
  address: "http://127.0.0.1:8265"

  # 共享根路径（容器内统一 /private，对齐生产）
  shared_root: "/private"

  # 强制 driver 落 worker（head 不跑训练）
  entrypoint_num_cpus: 1
  entrypoint_resources:
    worker_node: 1

  # 所有 job 通用 runtime env
  runtime_env:
    env_vars:
      HF_ENDPOINT: "https://hf-mirror.com"
      PYTHONUNBUFFERED: "1"

  # 用户自定义代码目录（可被 PYTHONPATH 注入）
  user_code_path: "/private/user/code"

service:
  api:
    host: "0.0.0.0"
    port: 8080
  auth:
    token_env: "MVP_INTERNAL_TOKEN"
  sqlite:
    db_path: "/private/common/db/mvp.sqlite3"
  scheduler:
    tick_s: 5
    retry_interval_s: 60
    max_running_tasks: 1

# v3.0: user data management (filesystem + SFTPGo)
data:
  # All user writable data is placed under this root:
  #   /private/users/<user_id>/{datasets,models,code,jobs,trash/jobs}
  user_root: "/private/users"

  # SFTPGo is optional in dev; when enabled, admin endpoints will call SFTPGo admin API.
  # Admin password is provided by env var `data.sftpgo.admin_password_env`.
  sftpgo:
    enabled: false
    host: ""              # shown to users via GET /api/v2/me
    sftp_port: 2022
    admin_api_base: ""    # e.g. http://argus-sftpgo:8080
    admin_user: "admin"
    admin_password_env: "SFTPGO_ADMIN_PASSWORD"

  # Jobs retention policy (v3.0 janitor): move to trash after 3d, purge after 7d.
  retention:
    jobs_trash_after_days: 3
    jobs_purge_after_days: 7
    janitor_interval_s: 3600
