Documentation
¶
Overview ¶
Package config provides types for interacting with clawker configuration files. It loads clawker.yaml (project) and settings.yaml (user) into a typed Config backed by storage.Store[T], with separate stores for project and settings schemas.
Index ¶
- Constants
- Variables
- func ConfigDir() string
- func DataDir() string
- func NewProjectStoreFromPreset(presetYAML string) (*storage.Store[Project], error)
- func ProjectMigrations() []storage.Migration
- func ProjectRegistryFilePath() (string, error)deprecated
- func SettingsFilePath() (string, error)deprecated
- func SettingsMigrations() []storage.Migration
- func StateDir() string
- func UserProjectConfigFilePath() (string, error)deprecated
- type AgentConfig
- type ArgDefinition
- type BuildConfig
- type ClaudeCodeConfig
- type ClaudeCodeConfigOptions
- type Config
- type ControlPlaneSettings
- type CopyInstruction
- type DockerInstructions
- type DockerSettings
- type EgressRule
- type FirewallConfig
- type FirewallSettings
- type GitCredentialsConfig
- type HostProxyConfig
- type HostProxyDaemonConfig
- type HostProxyManagerConfig
- type InjectConfig
- type KeyNotFoundError
- type LoggingConfig
- type Mode
- type MonitoringConfig
- type NewConfigOption
- type OtelConfig
- type PathRule
- type Port
- type Preset
- type Project
- type ProjectEntry
- type ProjectRegistry
- type SecurityConfig
- type Settings
- type TelemetryConfig
- type WorkspaceConfig
- type WorktreeEntry
Constants ¶
const DefaultIgnoreFile = `` /* 1102-byte string literal not displayed */
DefaultIgnoreFile is the default .clawkerignore content. All entries are commented out — users opt in to what they need.
Variables ¶
var ErrNotInProject = errors.New("current directory is not within a configured project root")
Functions ¶
func ConfigDir ¶ added in v0.2.0
func ConfigDir() string
ConfigDir delegates to consts.ConfigDir. Kept for backward compatibility — new callers should import internal/consts directly.
func NewProjectStoreFromPreset ¶ added in v0.6.4
NewProjectStoreFromPreset creates an isolated project store from a preset YAML string. Unlike NewConfig, this does NO file discovery — no walk-up, no config dir, no user-level config merging. The store contains only the preset values, and all fields are marked dirty so WriteTo persists them.
This is the correct constructor for project init: the written project file should contain exactly the preset values + any Set() mutations (VCS config, customize edits). User-level and parent configs are layered at runtime via normal config loading, not baked into the project file.
func ProjectMigrations ¶ added in v0.6.0
ProjectMigrations returns migrations for the project config store. Migrations run on each file during load and auto-save if they return true. Exported so that callers creating temporary probe stores (e.g. HasLocalProjectConfig) can apply the same migrations as the production config loader.
func ProjectRegistryFilePath
deprecated
added in
v0.2.0
func SettingsFilePath
deprecated
added in
v0.2.0
func SettingsMigrations ¶ added in v0.9.0
SettingsMigrations returns migrations for the user settings store. Same shape as ProjectMigrations — runs on each settings.yaml during load, the file is rewritten when any returns true.
func UserProjectConfigFilePath
deprecated
added in
v0.2.0
Types ¶
type AgentConfig ¶
type AgentConfig struct {
EnvFile []string `yaml:"env_file,omitempty" label:"Env Files" desc:"Load environment variables from .env-style files (e.g. .env.local)"`
FromEnv []string `` /* 137-byte string literal not displayed */
Env map[string]string `yaml:"env,omitempty" label:"Env" desc:"Set container env vars directly; use from_env to forward host values instead"`
Editor string `yaml:"editor,omitempty" label:"Editor" desc:"Editor for git commits and interactive editing inside the container"`
Visual string `yaml:"visual,omitempty" label:"Visual Editor" desc:"Visual editor ($VISUAL) for the container"`
ClaudeCode *ClaudeCodeConfig `yaml:"claude_code,omitempty"`
PostInit string `` /* 159-byte string literal not displayed */
}
AgentConfig defines Claude agent-specific settings.
func (*AgentConfig) SharedDirEnabled ¶
func (a *AgentConfig) SharedDirEnabled() bool
SharedDirEnabled returns whether the shared directory should be mounted (default: false).
type ArgDefinition ¶
type ArgDefinition struct {
Name string `yaml:"name" label:"Name" desc:"Build argument name (referenced as $NAME in Dockerfile instructions)"`
Default string `yaml:"default,omitempty" label:"Default" desc:"Value used when not overridden by --build-arg at build time"`
}
ArgDefinition represents an ARG instruction
type BuildConfig ¶
type BuildConfig struct {
Image string `yaml:"image" label:"Base Image" desc:"Starting Docker image (e.g. node:20-slim, python:3.12); clawker layers tools on top"`
Dockerfile string `` /* 155-byte string literal not displayed */
Packages []string `` /* 146-byte string literal not displayed */
Context string `` /* 152-byte string literal not displayed */
Instructions *DockerInstructions `yaml:"instructions,omitempty"`
Inject *InjectConfig `yaml:"inject,omitempty"`
}
BuildConfig defines the container build configuration
type ClaudeCodeConfig ¶
type ClaudeCodeConfig struct {
Config ClaudeCodeConfigOptions `yaml:"config"`
UseHostAuth *bool `` /* 152-byte string literal not displayed */
MountProjects *bool `` /* 211-byte string literal not displayed */
}
ClaudeCodeConfig controls Claude Code settings and authentication in containers.
func (*ClaudeCodeConfig) ConfigStrategy ¶
func (c *ClaudeCodeConfig) ConfigStrategy() string
ConfigStrategy returns the config strategy (default: "copy").
func (*ClaudeCodeConfig) MountProjectsEnabled ¶ added in v0.8.0
func (c *ClaudeCodeConfig) MountProjectsEnabled() bool
MountProjectsEnabled returns whether ~/.claude/projects/ should be bind mounted into the container (default: true).
func (*ClaudeCodeConfig) UseHostAuthEnabled ¶
func (c *ClaudeCodeConfig) UseHostAuthEnabled() bool
UseHostAuthEnabled returns whether host auth should be used (default: true).
type ClaudeCodeConfigOptions ¶
type ClaudeCodeConfigOptions struct {
Strategy string `` /* 145-byte string literal not displayed */
}
ClaudeCodeConfigOptions controls how Claude Code config is initialized in containers.
type Config ¶
type Config interface {
ClawkerIgnoreName() string
Project() *Project
Settings() *Settings
// ProjectStore returns the underlying project config store.
// Prefer this over SetProject/WriteProject for direct store access.
ProjectStore() *storage.Store[Project]
// SettingsStore returns the underlying settings store.
// Prefer this over SetSettings/WriteSettings for direct store access.
SettingsStore() *storage.Store[Settings]
// Deprecated: Use SettingsStore().Read().Logging instead.
LoggingConfig() LoggingConfig
// Deprecated: Use SettingsStore().Read().Monitoring instead.
MonitoringConfig() MonitoringConfig
// Deprecated: Use SettingsStore().Read().HostProxy instead.
HostProxyConfig() HostProxyConfig
Domain() string
LabelDomain() string
ConfigDirEnvVar() string
StateDirEnvVar() string
DataDirEnvVar() string
TestRepoDirEnvVar() string
MonitorSubdir() (string, error)
BuildSubdir() (string, error)
DockerfilesSubdir() (string, error)
ClawkerNetwork() string
LogsSubdir() (string, error)
BridgesSubdir() (string, error)
PidsSubdir() (string, error)
BridgePIDFilePath(containerID string) (string, error)
HostProxyLogFilePath() (string, error)
HostProxyPIDFilePath() (string, error)
WorktreesSubdir() (string, error)
LabelPrefix() string
LabelManaged() string
LabelProject() string
LabelAgent() string
LabelVersion() string
LabelImage() string
LabelCreated() string
LabelWorkdir() string
LabelPurpose() string
PurposeAgent() string
PurposeMonitoring() string
PurposeFirewall() string
LabelTestName() string
LabelBaseImage() string
LabelFlavor() string
LabelTest() string
LabelE2ETest() string
ManagedLabelValue() string
EngineLabelPrefix() string
EngineManagedLabel() string
ContainerUID() int
ContainerGID() int
// In-cluster base URLs (host + port) for monitoring services
// reachable from clawker-net. Composed from
// [consts.MonitoringService*] hostnames + the corresponding
// MonitoringConfig port. No path component.
OpenSearchURL() string
OpenSearchDashboardsURL() string
PrometheusURL() string
OtelCollectorURL() string
// Full OTEL push endpoints (URL + path) Claude Code's exporter
// targets from inside agent containers. Both default to the
// otel-collector OTLP/HTTP receiver so Prometheus retains metric
// metadata (its /api/v1/metadata excludes OTLP-ingested series).
OtelMetricsEndpoint() string
OtelLogsEndpoint() string
RequiredFirewallDomains() []string
EgressRulesFileName() string
FirewallDataSubdir() (string, error)
FirewallCertSubdir() (string, error)
RequiredFirewallRules() []EgressRule
EnvoyIPLastOctet() byte
CoreDNSIPLastOctet() byte
CPIPLastOctet() byte
EnvoyEgressPort() int
EnvoyTCPPortBase() int
EnvoyHealthPort() int
EnvoyHealthHostPort() int
CoreDNSHealthHostPort() int
CoreDNSHealthPath() string
ProjectConfigFileName() string
SettingsFileName() string
ProjectRegistryFileName() string
GetProjectRoot() (string, error)
GetProjectIgnoreFile() (string, error)
}
Config is the public configuration contract. Add methods here as the config contract grows.
func NewBlankConfig ¶ added in v0.2.0
NewBlankConfig creates a Config with defaults but no file discovery. Useful as the default test double for consumers that don't care about specific config values.
func NewConfig ¶
func NewConfig(opts ...NewConfigOption) (Config, error)
NewConfig loads all clawker configuration files into a Config. The project store discovers clawker.yaml via walk-up (CWD → project root) and config dir. The settings store loads settings.yaml from config dir. Both stores use defaults as the lowest-priority base layer.
func NewFromString ¶ added in v0.2.0
NewFromString creates a Config from raw YAML strings without defaults. Empty strings produce empty structs. Useful for test fixtures that need precise control over values without defaults being merged.
type ControlPlaneSettings ¶ added in v0.8.0
type ControlPlaneSettings struct {
AdminPort int `yaml:"admin_port,omitempty" label:"Admin Port" desc:"gRPC admin API port (CLI ↔ CP)" default:"7443"`
HealthPort int `yaml:"health_port,omitempty" label:"Health Port" desc:"Plain HTTP /healthz readiness endpoint" default:"7080"`
HydraPublicPort int `yaml:"hydra_public_port,omitempty" label:"Hydra Public Port" desc:"Hydra OAuth2 token endpoint (HTTPS)" default:"4444"`
HydraAdminPort int `` /* 166-byte string literal not displayed */
OathkeeperPort int `` /* 130-byte string literal not displayed */
OathkeeperAPIPort int `` /* 140-byte string literal not displayed */
KratosPublicPort int `` /* 139-byte string literal not displayed */
KratosAdminPort int `` /* 136-byte string literal not displayed */
AgentPort int `` /* 147-byte string literal not displayed */
}
ControlPlaneSettings configures the control plane in settings.yaml. All ports are published to 127.0.0.1 on the host (never exposed to the network). Internal-only ports (Hydra admin, Kratos, Oathkeeper API) bind to 127.0.0.1 inside the container.
Defaults come from struct tags via the storage layer — no OrDefault methods needed. cfg.Settings().ControlPlane.AdminPort always has a value.
type CopyInstruction ¶
type CopyInstruction struct {
Src string `yaml:"src" label:"Source" desc:"File or directory to copy from your project"`
Dest string `yaml:"dest" label:"Destination" desc:"Where to place it inside the container"`
Chown string `yaml:"chown,omitempty" label:"Chown" desc:"Set file ownership (e.g. claude:claude)"`
Chmod string `yaml:"chmod,omitempty" label:"Chmod" desc:"Set file permissions (e.g. 0644)"`
}
CopyInstruction represents a COPY instruction with optional chown/chmod
type DockerInstructions ¶
type DockerInstructions struct {
Copy []CopyInstruction `yaml:"copy,omitempty" label:"Copy" desc:"Bake config files or credentials into the image (e.g. .npmrc, SSH config)"`
Env map[string]string `yaml:"env,omitempty" label:"Env" desc:"Environment variables baked into the image; use agent.env for runtime-only vars"`
Labels map[string]string `yaml:"labels,omitempty" label:"Labels" desc:"Custom Docker labels for image metadata or tooling integration" merge:"union"`
Args []ArgDefinition `yaml:"args,omitempty" label:"Args" desc:"Build-time variables resolved during docker build (ARG); not available at runtime"`
UserRun []string `` /* 130-byte string literal not displayed */
RootRun []string `` /* 129-byte string literal not displayed */
}
DockerInstructions represents type-safe Dockerfile instructions
type DockerSettings ¶ added in v0.9.0
type DockerSettings struct {
Socket string `yaml:"socket,omitempty" label:"Docker Socket" desc:"Host path to the Docker daemon socket" default:"/var/run/docker.sock"`
}
DockerSettings configures host Docker access. Per-project Docker socket exposure to agent containers lives separately under SecurityConfig.DockerSocket — these knobs are unrelated.
type EgressRule ¶ added in v0.5.0
type EgressRule struct {
Dst string `yaml:"dst" label:"Destination" desc:"Domain or IP the container needs to reach (e.g. api.github.com, registry.npmjs.org)"`
Proto string `` /* 127-byte string literal not displayed */
Port int `yaml:"port,omitempty" label:"Port" desc:"Override the default port (443 for TLS, 80 for HTTP)"`
Action string `yaml:"action,omitempty" label:"Action" desc:"Allow or deny traffic to this destination (default: allow)"`
PathRules []PathRule `yaml:"path_rules,omitempty" label:"Path Rules" desc:"Fine-grained path filtering (works with proto tls and http)"`
PathDefault string `` /* 131-byte string literal not displayed */
}
EgressRule defines a single egress firewall rule. Dst is the domain or IP, Proto defaults to "tls", Action defaults to "allow".
type FirewallConfig ¶
type FirewallConfig struct {
AddDomains []string `` /* 153-byte string literal not displayed */
Rules []EgressRule `yaml:"rules,omitempty" merge:"union" label:"Rules" desc:"Full egress rules with protocol, port, and path control"`
}
FirewallConfig defines per-project firewall rules in clawker.yaml. Global lifecycle control (enable/disable) lives in settings.yaml via FirewallSettings.
func (*FirewallConfig) GetFirewallDomains ¶
func (f *FirewallConfig) GetFirewallDomains(requiredDomains []string) []string
GetFirewallDomains returns required domains merged with user's add_domains.
type FirewallSettings ¶ added in v0.5.0
type FirewallSettings struct {
Enable *bool `` /* 177-byte string literal not displayed */
}
FirewallSettings controls global firewall lifecycle in settings.yaml. Per-project rules live in FirewallConfig (clawker.yaml).
func (*FirewallSettings) FirewallEnabled ¶ added in v0.5.0
func (f *FirewallSettings) FirewallEnabled() bool
FirewallEnabled returns whether the global firewall is enabled. Returns true when Enable is nil (default enabled) or explicitly true.
type GitCredentialsConfig ¶
type GitCredentialsConfig struct {
ForwardHTTPS *bool `` /* 142-byte string literal not displayed */
ForwardSSH *bool `yaml:"forward_ssh,omitempty" label:"Forward SSH" desc:"Let git use your host SSH keys for cloning and pushing" default:"true"`
ForwardGPG *bool `yaml:"forward_gpg,omitempty" label:"Forward GPG" desc:"Let git sign commits using your host GPG keys" default:"true"`
CopyGitConfig *bool `` /* 156-byte string literal not displayed */
}
GitCredentialsConfig defines git credential forwarding settings
func (*GitCredentialsConfig) CopyGitConfigEnabled ¶
func (g *GitCredentialsConfig) CopyGitConfigEnabled() bool
CopyGitConfigEnabled returns whether host .gitconfig should be copied. Returns true by default.
func (*GitCredentialsConfig) GPGEnabled ¶
func (g *GitCredentialsConfig) GPGEnabled() bool
GPGEnabled returns whether GPG agent forwarding should be enabled. Returns true by default.
func (*GitCredentialsConfig) GitHTTPSEnabled ¶
func (g *GitCredentialsConfig) GitHTTPSEnabled(hostProxyEnabled bool) bool
GitHTTPSEnabled returns whether HTTPS credential forwarding should be enabled. Returns true if host proxy is enabled and not explicitly disabled.
func (*GitCredentialsConfig) GitSSHEnabled ¶
func (g *GitCredentialsConfig) GitSSHEnabled() bool
GitSSHEnabled returns whether SSH agent forwarding should be enabled. Returns true by default.
type HostProxyConfig ¶ added in v0.2.0
type HostProxyConfig struct {
Manager HostProxyManagerConfig `yaml:"manager,omitempty"`
Daemon HostProxyDaemonConfig `yaml:"daemon,omitempty"`
}
HostProxyConfig configures the host proxy.
type HostProxyDaemonConfig ¶ added in v0.2.0
type HostProxyDaemonConfig struct {
Port int `yaml:"port" label:"Daemon Port" desc:"Local port the proxy daemon binds to" default:"18374"`
PollInterval time.Duration `` /* 127-byte string literal not displayed */
GracePeriod time.Duration `` /* 135-byte string literal not displayed */
MaxConsecutiveErrs int `` /* 150-byte string literal not displayed */
}
HostProxyDaemonConfig defines configuration for the host proxy daemon.
type HostProxyManagerConfig ¶ added in v0.2.0
type HostProxyManagerConfig struct {
Port int `yaml:"port" label:"Manager Port" desc:"Local port the host proxy listens on (change if 18374 conflicts)" default:"18374"`
}
HostProxyManagerConfig configures the host proxy manager.
type InjectConfig ¶
type InjectConfig struct {
AfterFrom []string `` /* 202-byte string literal not displayed */
AfterPackages []string `` /* 207-byte string literal not displayed */
AfterUserSetup []string `` /* 201-byte string literal not displayed */
AfterUserSwitch []string `` /* 190-byte string literal not displayed */
AfterClaudeInstall []string `` /* 204-byte string literal not displayed */
BeforeEntrypoint []string `` /* 195-byte string literal not displayed */
}
InjectConfig defines injection points for arbitrary Dockerfile instructions
type KeyNotFoundError ¶ added in v0.2.0
type KeyNotFoundError struct {
Key string
}
KeyNotFoundError indicates a configuration key was not found.
func (*KeyNotFoundError) Error ¶ added in v0.2.0
func (e *KeyNotFoundError) Error() string
type LoggingConfig ¶
type LoggingConfig struct {
FileEnabled *bool `` /* 139-byte string literal not displayed */
MaxSizeMB int `yaml:"max_size_mb,omitempty" label:"Max Log Size (MB)" desc:"Rotate the log file when it exceeds this size" default:"50"`
MaxAgeDays int `yaml:"max_age_days,omitempty" label:"Max Log Age (days)" desc:"Delete rotated logs older than this" default:"7"`
MaxBackups int `yaml:"max_backups,omitempty" label:"Max Backups" desc:"Number of rotated log files to keep" default:"3"`
Compress *bool `yaml:"compress,omitempty" label:"Compress Logs" desc:"Gzip rotated logs to save disk space" default:"true"`
Otel OtelConfig `yaml:"otel,omitempty"`
}
LoggingConfig configures file-based logging.
type MonitoringConfig ¶ added in v0.1.6
type MonitoringConfig struct {
OtelCollectorPort int `yaml:"otel_collector_port,omitempty" label:"OTEL Collector Port" desc:"Host port for the OTEL HTTP receiver" default:"4318"`
OtelCollectorHost string `` /* 141-byte string literal not displayed */
OtelGRPCPort int `yaml:"otel_grpc_port,omitempty" label:"OTEL gRPC Port" desc:"Host port for the OTEL gRPC receiver" default:"4317"`
OtelInfraPort Port `` /* 157-byte string literal not displayed */
OpenSearchPort int `` /* 140-byte string literal not displayed */
OpenSearchDashboardsPort int `` /* 143-byte string literal not displayed */
OpenSearchHeapMB int `` /* 157-byte string literal not displayed */
PrometheusPort int `` /* 244-byte string literal not displayed */
PrometheusMetricsPort int `` /* 334-byte string literal not displayed */
Telemetry TelemetryConfig `yaml:"telemetry,omitempty"`
}
MonitoringConfig configures monitoring stack ports and OTEL endpoints.
Service hostnames live in consts as four individual constants (consts.MonitoringServiceOtelCollector, consts.MonitoringServicePrometheus, consts.MonitoringServiceOpenSearchNode, consts.MonitoringServiceOpenSearchDashboards) — they are not knobs here because the compose template renders all four directly, and the firewall plane (CoreDNS internalHosts via the consts.MonitoringServiceHostnames slice) shares the same names. The CoreDNS slice contains only otel-collector + prometheus — the agent-dialable subset. OpenSearch + OpenSearch Dashboards are intentionally excluded: agents push telemetry through the collector and never dial the indices directly, so widening CoreDNS forwarding to those hostnames would broaden the agent's egress surface for no functional gain. Rename a service in consts and both surfaces follow by construction.
type NewConfigOption ¶ added in v0.6.0
type NewConfigOption func(*newConfigOptions)
func WithDefaultProjectYAML ¶ added in v0.6.0
func WithDefaultProjectYAML(yaml string) NewConfigOption
func WithDefaultSettingsYAML ¶ added in v0.6.0
func WithDefaultSettingsYAML(yaml string) NewConfigOption
type OtelConfig ¶ added in v0.1.6
type OtelConfig struct {
Enabled *bool `` /* 162-byte string literal not displayed */
TimeoutSeconds int `yaml:"timeout_seconds,omitempty" label:"OTEL Timeout (sec)" desc:"Give up on an export batch after this long" default:"5"`
MaxQueueSize int `` /* 149-byte string literal not displayed */
ExportIntervalSeconds int `` /* 144-byte string literal not displayed */
}
OtelConfig configures the OTEL zerolog bridge.
type PathRule ¶ added in v0.5.0
type PathRule struct {
Path string `yaml:"path" label:"Path" desc:"URL path prefix to match (e.g. /v1/api, /repos/myorg)"`
Action string `yaml:"action" label:"Action" desc:"Whether to allow or deny requests matching this path"`
}
PathRule defines an HTTP path-level filtering rule for MITM inspection.
type Port ¶ added in v0.9.0
type Port int
Port is a TCP/UDP port number constrained to the valid 1–65535 range. UnmarshalYAML rejects out-of-range values at parse time, so callers reading a Port from a storage.Store snapshot can rely on the invariant without defensive `<= 0` guards. Stores wired with WithDefaultsFromStruct[T]() backfill missing fields with the schema's `default` tag value, never zero.
Programmatic mutation via Store.Set bypasses UnmarshalYAML — callers writing a Port directly are responsible for staying in range. Validation re-engages on the next file load or Refresh.
type Preset ¶ added in v0.6.0
type Preset struct {
Name string // Display name (used as select option label)
Description string // Short description (used as select option secondary text)
YAML string // Partial clawker.yaml content
AutoCustomize bool // If true, skip "save and get started" and go straight to wizard
}
Preset defines a language-specific project configuration template. Each preset provides a partial YAML overlay — fields not specified are filled from schema defaults via WithDefaultsFromStruct[Project]().
type Project ¶
type Project struct {
Name string `` /* 205-byte string literal not displayed */
Build BuildConfig `yaml:"build"`
Agent AgentConfig `yaml:"agent"`
Workspace WorkspaceConfig `yaml:"workspace"`
Security SecurityConfig `yaml:"security"`
}
Project represents the root configuration structure for clawker.yaml.
Project is a pure persisted schema model for clawker.yaml.
type ProjectEntry ¶
type ProjectEntry struct {
Name string `yaml:"name" label:"Name" desc:"Project slug identifier"`
Root string `yaml:"root" label:"Root" desc:"Filesystem path to project root"`
Worktrees map[string]WorktreeEntry `yaml:"worktrees,omitempty" label:"Worktrees" desc:"Active worktrees for this project"`
}
ProjectEntry represents a project in the registry.
type ProjectRegistry ¶
type ProjectRegistry struct {
Projects []ProjectEntry `yaml:"projects" label:"Projects" desc:"Registered projects"`
}
ProjectRegistry is the on-disk structure for projects.yaml.
func (ProjectRegistry) Fields ¶ added in v0.6.0
func (r ProjectRegistry) Fields() storage.FieldSet
Fields implements storage.Schema for ProjectRegistry.
type SecurityConfig ¶
type SecurityConfig struct {
Firewall *FirewallConfig `yaml:"firewall,omitempty"`
DockerSocket bool `` /* 199-byte string literal not displayed */
CapAdd []string `` /* 253-byte string literal not displayed */
EnableHostProxy *bool `` /* 156-byte string literal not displayed */
GitCredentials *GitCredentialsConfig `yaml:"git_credentials,omitempty"`
}
func (*SecurityConfig) HostProxyEnabled ¶
func (s *SecurityConfig) HostProxyEnabled() bool
HostProxyEnabled returns whether the host proxy should be enabled. Returns true if not explicitly set (defaults to enabled).
type Settings ¶
type Settings struct {
Logging LoggingConfig `yaml:"logging,omitempty"`
Monitoring MonitoringConfig `yaml:"monitoring,omitempty"`
HostProxy HostProxyConfig `yaml:"host_proxy,omitempty"`
Firewall FirewallSettings `yaml:"firewall,omitempty"`
ControlPlane ControlPlaneSettings `yaml:"control_plane,omitempty"`
Docker DockerSettings `yaml:"docker,omitempty"`
}
Settings represents user-level configuration stored in ~/.config/clawker/settings.yaml.
type TelemetryConfig ¶ added in v0.1.6
type TelemetryConfig struct {
MetricsPath string `yaml:"metrics_path,omitempty" label:"Metrics Path" desc:"OTEL collector HTTP path for metrics" default:"/v1/metrics"`
PrometheusOTLPPath string `` /* 230-byte string literal not displayed */
LogsPath string `yaml:"logs_path,omitempty" label:"Logs Path" desc:"OTEL collector HTTP path for logs" default:"/v1/logs"`
MetricExportIntervalMs int `` /* 182-byte string literal not displayed */
LogsExportIntervalMs int `` /* 175-byte string literal not displayed */
LogToolDetails *bool `` /* 166-byte string literal not displayed */
LogUserPrompts *bool `` /* 136-byte string literal not displayed */
IncludeAccountUUID *bool `` /* 164-byte string literal not displayed */
IncludeSessionID *bool `` /* 154-byte string literal not displayed */
}
TelemetryConfig configures telemetry export paths and intervals.
type WorkspaceConfig ¶
type WorkspaceConfig struct {
DefaultMode string `` /* 164-byte string literal not displayed */
}
WorkspaceConfig defines workspace mounting behavior
type WorktreeEntry ¶ added in v0.2.0
type WorktreeEntry struct {
Path string `yaml:"path" label:"Path" desc:"Filesystem path to worktree"`
Branch string `yaml:"branch,omitempty" label:"Branch" desc:"Git branch for this worktree"`
}
WorktreeEntry represents a worktree within a project.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
storeui
|
|
|
project
Package project provides the domain adapter for editing config.Project via storeui.
|
Package project provides the domain adapter for editing config.Project via storeui. |
|
settings
Package settings provides the domain adapter for editing config.Settings via storeui.
|
Package settings provides the domain adapter for editing config.Settings via storeui. |