Files

39 lines
1.4 KiB
Python

"""Configuration for the cloud runtime with conservative inert defaults."""
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class CloudConfig:
"""Tunable cloud-runtime knobs.
Defaults are deliberately conservative so importing ``cloud`` is inert
until a caller actually registers a second host or submits through the SDK.
"""
# How frequently a host is expected to push its device snapshot. Informational
# only at runtime (the pool does not run a timer); drives operator expectations.
sync_interval_seconds: int = 30
# A host whose ``last_seen_at`` is older than this threshold reports all its
# devices as ``unreachable`` on the next pool read.
stale_after_seconds: int = 90
# Bound on the number of ``queued`` ScheduledTasks. Submissions beyond this
# are rejected rather than letting the backlog grow without limit.
max_queue_depth: int = 100
# Duration of each scheduler-created assignment lease.
lease_duration_seconds: float = 60.0
# Strategy name looked up in the AssignmentStrategy registry (default fifo_match).
default_assignment_strategy: str = "fifo_match"
# Public SDK URL prefix. Mounted as the FastAPI APIRouter ``prefix``.
api_version_prefix: str = "/v1"
# SQLite file path (relative to CWD or absolute) owned by CloudStore.
db_path: str = "cloud/cloud.sqlite3"