config

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package config provides configuration management for OpenPass. It handles vault, git, and MCP server configuration with support for YAML serialization and default value merging.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentProfile

type AgentProfile struct {
	Name            string        `yaml:"-"`
	ApprovalMode    string        `yaml:"approvalMode"`
	AllowedPaths    []string      `yaml:"allowedPaths"`
	RedactFields    []string      `yaml:"redactFields,omitempty"`
	CanWrite        bool          `yaml:"canWrite"`
	RequireApproval bool          `yaml:"requireApproval"`
	ApprovalTimeout time.Duration `yaml:"approvalTimeout,omitempty"`
}

type ClipboardConfig

type ClipboardConfig struct {
	AutoClearDuration int `yaml:"auto_clear_duration,omitempty"` // seconds, 0 = disabled
}

ClipboardConfig holds clipboard-related configuration.

func MergeFileClipboardConfig

func MergeFileClipboardConfig(fileCfg *fileClipboardConfig, defaults ClipboardConfig) ClipboardConfig

MergeFileClipboardConfig merges file config with defaults, returning the final ClipboardConfig. If fileCfg is nil, defaults are returned unchanged.

type Config

type Config struct {
	Agents         map[string]AgentProfile `yaml:"agents"`
	Vault          *VaultConfig            `yaml:"vault,omitempty"`
	Git            *GitConfig              `yaml:"git,omitempty"`
	MCP            *MCPConfig              `yaml:"mcp,omitempty"`
	Update         *UpdateConfig           `yaml:"update,omitempty"`
	Clipboard      *ClipboardConfig        `yaml:"clipboard,omitempty"`
	VaultDir       string                  `yaml:"vaultDir"`
	DefaultAgent   string                  `yaml:"defaultAgent"`
	SessionTimeout time.Duration           `yaml:"sessionTimeout"`
	UseTouchID     bool                    `yaml:"useTouchID"`
}

func Default

func Default() *Config

func Load

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

func (*Config) Save

func (c *Config) Save() error

type GitConfig

type GitConfig struct {
	CommitTemplate string `yaml:"commit_template,omitempty"`
	AutoPush       bool   `yaml:"auto_push,omitempty"`
}

GitConfig holds git-related configuration for automatic commits and pushes.

func MergeFileGitConfig

func MergeFileGitConfig(fileCfg *fileGitConfig, defaults GitConfig) GitConfig

MergeFileGitConfig merges file config with defaults, returning the final GitConfig. If fileCfg is nil, defaults are returned unchanged.

type MCPConfig

type MCPConfig struct {
	Bind                string        `yaml:"bind,omitempty"`
	HTTPTokenFile       string        `yaml:"httpTokenFile,omitempty"`
	Port                int           `yaml:"port,omitempty"`
	Stdio               bool          `yaml:"stdio,omitempty"`
	ApprovalRequired    bool          `yaml:"approval_required,omitempty"`
	ReadHeaderTimeout   time.Duration `yaml:"read_header_timeout,omitempty"`
	ReadTimeout         time.Duration `yaml:"read_timeout,omitempty"`
	WriteTimeout        time.Duration `yaml:"write_timeout,omitempty"`
	ShutdownTimeout     time.Duration `yaml:"shutdown_timeout,omitempty"`
	ApprovalTimeout     time.Duration `yaml:"approval_timeout,omitempty"`
	RateLimit           int           `yaml:"rate_limit,omitempty"` // requests per minute, 0 = disabled
	TrustedProxyIPs     []string      `yaml:"trusted_proxy_ips,omitempty"`
	MetricsAuthRequired bool          `yaml:"metrics_auth_required,omitempty"`
}

MCPConfig holds MCP server-related configuration for AI agent integration.

func MergeFileMCPConfig

func MergeFileMCPConfig(fileCfg *fileMCPConfig, defaults MCPConfig) MCPConfig

MergeFileMCPConfig merges file config with defaults, returning the final MCPConfig. If fileCfg is nil, defaults are returned unchanged.

type UpdateConfig added in v1.1.1

type UpdateConfig struct {
	CacheTTL time.Duration `yaml:"cache_ttl,omitempty"`
}

UpdateConfig holds update check-related configuration.

func MergeFileUpdateConfig added in v1.1.1

func MergeFileUpdateConfig(fileCfg *fileUpdateConfig, defaults UpdateConfig) UpdateConfig

MergeFileUpdateConfig merges file config with defaults, returning the final UpdateConfig. If fileCfg is nil, defaults are returned unchanged.

type VaultConfig

type VaultConfig struct {
	Path              string   `yaml:"path,omitempty"`
	DefaultRecipients []string `yaml:"default_recipients,omitempty"`
	ConfirmRemove     bool     `yaml:"confirm_remove,omitempty"`
	UseTouchID        bool     `yaml:"useTouchID,omitempty"`
}

VaultConfig holds vault-related configuration.

func MergeFileVaultConfig

func MergeFileVaultConfig(fileCfg *fileVaultConfig, defaults VaultConfig) VaultConfig

MergeFileVaultConfig merges file config with defaults, returning the final VaultConfig. If fileCfg is nil, defaults are returned unchanged.

Jump to

Keyboard shortcuts

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