use std::{net::SocketAddr, path::PathBuf, time::Duration};
use super::{
AuthConfig, AuthoringConfig, AutoCreate, DeployConfig, DevConfig, ListenConfig, MetricsConfig,
NamespaceConfig, ObservabilityConfig, OpsConsoleConfig, OutboxConfig, ResolvedMcpConfig,
TlsConfig, WebSocketConfig, WorkerConfig,
};
#[derive(Debug, Default)]
pub struct CliOverrides {
pub config_path: Option<PathBuf>,
pub listen_address: Option<SocketAddr>,
pub grpc_address: Option<SocketAddr>,
pub store_url: Option<String>,
pub scheduler_threads: Option<usize>,
pub jit_threshold: Option<u32>,
pub drain_timeout_seconds: Option<u64>,
pub workflow_packages: Vec<PathBuf>,
pub gleam_path: Option<PathBuf>,
pub authoring_project_root: Option<PathBuf>,
}
#[derive(Clone, Debug)]
pub struct RuntimeConfig {
pub listen: ListenConfig,
pub tls: Option<TlsConfig>,
pub auth: AuthConfig,
pub ops_console: OpsConsoleConfig,
pub namespace: NamespaceConfig,
pub worker: WorkerConfig,
pub websocket: WebSocketConfig,
pub workflow_packages: Vec<PathBuf>,
pub deploy: DeployConfig,
pub authoring: AuthoringConfig,
pub dev: DevConfig,
pub outbox: OutboxConfig,
pub observability: ObservabilityConfig,
pub mcp: ResolvedMcpConfig,
pub scheduler_threads: usize,
pub jit_threshold: Option<u32>,
pub query_timeout: Option<Duration>,
pub default_namespace: String,
pub auto_create: AutoCreate,
pub max_in_flight_activities: u32,
pub drain_timeout: Duration,
pub metrics: MetricsConfig,
pub owned_shards: Vec<usize>,
pub cors_allowed_origins: Vec<String>,
}