config

package
v0.0.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheConfig added in v0.0.11

type CacheConfig struct {
	Enabled bool          `yaml:"enabled"`       // Whether caching is enabled (default: false)
	TTL     time.Duration `yaml:"ttl,omitempty"` // Cache TTL (default: 5m)
}

CacheConfig represents cache configuration

func (*CacheConfig) UnmarshalYAML added in v0.0.11

func (c *CacheConfig) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom YAML unmarshaling to handle TTL as duration string

type Config

type Config struct {
	Inherit   bool             `yaml:"inherit"` // Whether to inherit system environment variables (default: true)
	Providers []ProviderConfig `yaml:"providers"`
	SSO       *SSOConfig       `yaml:"sso,omitempty"`   // SSO configuration
	Cache     *CacheConfig     `yaml:"cache,omitempty"` // Cache configuration
	MCP       *MCPConfig       `yaml:"mcp,omitempty"`   // MCP proxy configuration
}

Config represents the main configuration structure

func Load

func Load(path string) (*Config, error)

Load reads and parses the configuration file

func (*Config) GetCacheTTL added in v0.0.11

func (c *Config) GetCacheTTL() time.Duration

GetCacheTTL returns the cache TTL, or 0 if not configured

func (*Config) GetProvider

func (c *Config) GetProvider(id string) (*ProviderConfig, error)

GetProvider returns a provider configuration by id

func (*Config) HasMCP added in v0.0.11

func (c *Config) HasMCP() bool

HasMCP returns whether MCP configuration is present

func (*Config) IsCacheEnabled added in v0.0.11

func (c *Config) IsCacheEnabled() bool

IsCacheEnabled returns whether caching is enabled globally

type EnvVars

type EnvVars map[string]string

EnvVars represents environment variable overrides

type MCPConfig added in v0.0.11

type MCPConfig struct {
	Servers []MCPServerConfig `yaml:"servers"` // List of downstream MCP servers
}

MCPConfig represents the MCP proxy configuration

type MCPServerConfig added in v0.0.11

type MCPServerConfig struct {
	ID      string   `yaml:"id"`             // Unique identifier for the server (used for namespacing)
	Command string   `yaml:"command"`        // Command to execute
	Args    []string `yaml:"args,omitempty"` // Command arguments
	Env     EnvVars  `yaml:"env,omitempty"`  // Additional environment variables

}

MCPServerConfig represents a single downstream MCP server configuration

type OIDCConfig added in v0.0.6

type OIDCConfig struct {
	ClientID     string   `yaml:"clientId"`               // OIDC client ID (required)
	ClientSecret string   `yaml:"-"`                      // OIDC client secret (only from env var SSTART_SSO_SECRET, never from YAML)
	Issuer       string   `yaml:"issuer"`                 // OIDC issuer URL (required)
	Scopes       []string `yaml:"scopes"`                 // OIDC scopes (required)
	RedirectURI  string   `yaml:"redirectUri,omitempty"`  // OIDC redirect URI (optional, can be auto-generated)
	PKCE         *bool    `yaml:"pkce,omitempty"`         // Enable PKCE flow (optional, auto-enabled if clientSecret is empty)
	ResponseMode string   `yaml:"responseMode,omitempty"` // OIDC response mode (optional)
}

OIDCConfig represents OIDC configuration

func (*OIDCConfig) UnmarshalYAML added in v0.0.6

func (o *OIDCConfig) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom YAML unmarshaling to handle scopes as either array or space-separated string

type ProviderConfig

type ProviderConfig struct {
	Kind   string                 `yaml:"kind"`
	ID     string                 `yaml:"id,omitempty"`   // Optional: defaults to 'kind'. Required if multiple providers share the same kind
	Config map[string]interface{} `yaml:"-"`              // Provider-specific configuration (e.g., path, region, endpoint, etc.)
	Keys   map[string]string      `yaml:"keys,omitempty"` // Optional key mappings (source_key: target_key, or "==" to keep same name)
	Env    EnvVars                `yaml:"env,omitempty"`
	Uses   []string               `yaml:"uses,omitempty"` // Optional list of provider IDs to depend on
}

ProviderConfig represents a single provider configuration Each provider loads from a single source. To load multiple secrets from the same provider type, configure multiple provider instances with the same 'kind' but different 'id' values.

func (*ProviderConfig) UnmarshalYAML

func (p *ProviderConfig) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom YAML unmarshaling to capture provider-specific fields

type SSOConfig added in v0.0.6

type SSOConfig struct {
	OIDC *OIDCConfig `yaml:"oidc,omitempty"` // OIDC configuration
}

SSOConfig represents SSO configuration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL