package service type Alias struct { Name string `json:"name"` Command string `json:"command"` Description string `json:"description,omitempty"` } type ServerConfig struct { Host string `json:"host"` Port int `json:"port"` } type OIDCConfig struct { Issuer string `json:"issuer"` ClientID string `json:"client_id"` ClientSecret string `json:"client_secret"` // PublicURL is the externally reachable base URL of this server, used to // construct the OIDC redirect URI (e.g. "https://ax.example.com:7000"). PublicURL string `json:"public_url"` UserClaim string `json:"user_claim"` // default "preferred_username" } type Config interface { GetUser() string SetUser(username string) error GetAlias(name string) (*Alias, error) SetAlias(alias *Alias) error DeleteAlias(name string) error ListAliases() ([]*Alias, error) GetServerConfig() ServerConfig // GetRemoteConfig returns the remote server address and whether remote mode is enabled. GetRemoteConfig() (ServerConfig, bool) // GetOIDCConfig returns the OIDC configuration and whether OIDC is enabled. GetOIDCConfig() (OIDCConfig, bool) Save() error }