steer_workspace/
config.rs

1use serde::{Deserialize, Serialize};
2
3/// Configuration for a workspace
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub enum WorkspaceConfig {
6    /// Local filesystem workspace
7    Local {
8        /// Path to the workspace directory
9        path: std::path::PathBuf,
10    },
11    /// Remote workspace accessed via gRPC
12    Remote {
13        /// Address of the remote workspace service (e.g., "localhost:50051")
14        address: String,
15        /// Optional authentication for the remote service
16        auth: Option<RemoteAuth>,
17    },
18    /// Container workspace (not yet implemented)
19    Container {
20        /// Container ID or name
21        container_id: String,
22    },
23}
24
25/// Authentication information for remote workspaces
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub enum RemoteAuth {
28    /// Bearer token authentication
29    BearerToken(String),
30    /// API key authentication
31    ApiKey(String),
32}