Documentation
¶
Index ¶
- Constants
- Variables
- func BoolToGenerationStatus(b bool) domain.GenerationStatus
- func BoolToOptimizationMode(b bool) domain.OptimizationMode
- func BoolToProfileStatus(b bool) domain.ProfileStatus
- func BoolToSafeMode(b bool) domain.SafeMode
- func FindProfileOperation(cfg *domain.Config, profileName, operationName string) (*domain.Profile, int)
- func GetCurrentTime() time.Time
- func GetDefaultConfig() *domain.Config
- func Load() (*domain.Config, error)
- func LoadFromPath(configPath string) (*domain.Config, error)
- func LoadWithContext(ctx context.Context) (*domain.Config, error)
- func LoadWithContextFromPath(ctx context.Context, configPath string) (*domain.Config, error)
- func ModifyProfileOperation(cfg *domain.Config, profileName, operationName string, ...) bool
- func Save(config *domain.Config) error
- func WithDetailedLogging(enable bool) func(*ValidationMiddlewareOptions)
- func WithEnvironment(env string) func(*ValidationMiddlewareOptions)
- func WithMonitoring(enabled bool) func(*EnhancedConfigLoader)
- func WithNixGenerationsSetting(cfg *domain.Config, profileName, operationName string, ...) bool
- func WithOperationSettings(cfg *domain.Config, profileName, operationName string, ...) bool
- func WithProfileOperationField(cfg *domain.Config, profileName, operationName string, ...) bool
- func WithRequireSafeModeConfirmation(require bool) func(*ValidationMiddlewareOptions)
- func WithRetryPolicy(policy *RetryPolicy) func(*EnhancedConfigLoader)
- type BDDFeature
- type BDDGiven
- type BDDScenario
- type BDDTestRunner
- type BDDThen
- type BDDWhen
- type BackupOption
- type CacheOption
- type CleanType
- type ConfigCache
- type ConfigChange
- type ConfigChangeResult
- type ConfigLoadOptions
- type ConfigModifier
- type ConfigSanitizer
- type ConfigSaveOptions
- type ConfigValidationRules
- type ConfigValidator
- type ConsoleValidationLogger
- type EnhancedConfigLoader
- func (ecl *EnhancedConfigLoader) LoadConfig(ctx context.Context, options *ConfigLoadOptions) (*domain.Config, error)
- func (ecl *EnhancedConfigLoader) SaveConfig(ctx context.Context, config *domain.Config, options *ConfigSaveOptions) (*domain.Config, error)
- func (ecl *EnhancedConfigLoader) ValidateConfig(ctx context.Context, config *domain.Config, level domain.ValidationLevelType) *ValidationResult
- type MonitoringOption
- type ProfileOperationModifier
- type ProfileOperationResult
- type RefreshOption
- type RetryPolicy
- type SafeConfig
- type SafeConfigBuilder
- func (scb *SafeConfigBuilder) AddProfile(name, description string) *SafeProfileBuilder
- func (scb *SafeConfigBuilder) Backup() *SafeConfigBuilder
- func (scb *SafeConfigBuilder) Build() (SafeConfig, error)
- func (scb *SafeConfigBuilder) DryRun() *SafeConfigBuilder
- func (scb *SafeConfigBuilder) SafeMode() *SafeConfigBuilder
- type SafeOperation
- type SafeProfile
- type SafeProfileBuilder
- type SanitizationChange
- type SanitizationResult
- type SanitizationResultAdapter
- type SanitizationRules
- type SanitizationWarningdeprecated
- type SanitizeOption
- type SaveOption
- type ValidationContext
- type ValidationError
- type ValidationLogger
- type ValidationMiddleware
- func (vm *ValidationMiddleware) ValidateAndLoadConfig(ctx context.Context) (*domain.Config, error)
- func (vm *ValidationMiddleware) ValidateAndSaveConfig(ctx context.Context, cfg *domain.Config) (*domain.Config, error)
- func (vm *ValidationMiddleware) ValidateConfigChange(ctx context.Context, current, proposed *domain.Config) *ConfigChangeResult
- func (vm *ValidationMiddleware) ValidateProfileOperation(ctx context.Context, profileName, operationName string, ...) *ProfileOperationResult
- type ValidationMiddlewareOptions
- type ValidationResult
- type ValidationRule
- type ValidationSanitizedData
- type ValidationSeverity
- type ValidationWarning
Constants ¶
const ( MinDiskUsagePercent = 10 // Minimum allowed disk usage percentage MaxDiskUsagePercent = 95 // Maximum allowed disk usage percentage DefaultMaxDiskUsage = 50 // Default disk usage percentage RoundingIncrement = 10 // Round percentages to nearest increment )
Disk usage constraints.
const ( DefaultMaxRetries = 3 // Default maximum retry attempts DefaultInitialRetryDelay = 100 * time.Millisecond DefaultMaxRetryDelay = 5 * time.Second DefaultBackoffFactor = 2.0 // Default exponential backoff factor )
Retry policy constants.
const ( DefaultNixMaxGenerations = 10 // Default maximum generations to keep MaxNixGenerations = 10 // Maximum allowed generations to keep MockNixStoreSizeGB = 300 MockNixGenerationSizeMB = 50 )
Nix generation constants.
const ( ConfigFilePermission = 0o644 // rw-r--r-- ConfigDirPermission = 0o755 // rwxr-xr-x )
File permission constants.
const ( MinProtectedPaths = 1 // Minimum number of protected paths required MaxProfiles = 50 // Maximum number of profiles allowed MaxOperations = 100 // Maximum number of operations per profile MaxProfileCountWarning = 20 // Warning threshold for profile count SchemaMinDiskUsage = 10.0 SchemaMaxDiskUsage = 95.0 )
Validation constants.
const ( SeverityError = domain.SeverityError SeverityWarning = domain.SeverityWarning SeverityInfo = domain.SeverityInfo )
const (
DefaultCacheDuration = 30 * time.Minute // Default cache duration
)
Cache constants.
const ( // DefaultConfigCacheExpiry is the default expiration time for config cache entries. DefaultConfigCacheExpiry = 30 * time.Minute )
Config cache expiry constant.
const (
DefaultLoadTimeout = 30 * time.Second // Default timeout for configuration loading
)
Load timeout constants.
Variables ¶
var ErrConfigShouldUnmarshal = errors.New("config file read successfully, proceed to unmarshal")
ErrConfigShouldUnmarshal is returned when the config file was read successfully and should be unmarshaled from koanf.
Functions ¶
func BoolToGenerationStatus ¶
func BoolToGenerationStatus(b bool) domain.GenerationStatus
BoolToGenerationStatus converts boolean to GenerationStatus enum (standardized across tests).
func BoolToOptimizationMode ¶
func BoolToOptimizationMode(b bool) domain.OptimizationMode
BoolToOptimizationMode converts boolean to OptimizationMode enum (standardized across tests).
func BoolToProfileStatus ¶
func BoolToProfileStatus(b bool) domain.ProfileStatus
BoolToProfileStatus converts boolean to ProfileStatus enum (standardized across tests).
func BoolToSafeMode ¶
BoolToSafeMode converts boolean to SafeMode enum (standardized across tests).
func FindProfileOperation ¶
func FindProfileOperation( cfg *domain.Config, profileName, operationName string, ) (*domain.Profile, int)
FindProfileOperation finds a specific operation within a profile by name Returns the operation index, or -1 if not found.
func GetCurrentTime ¶
GetCurrentTime returns current time (helper for testing).
func GetDefaultConfig ¶
GetDefaultConfig returns the default configuration.
func LoadFromPath ¶
LoadFromPath loads configuration from a specific file path.
func LoadWithContext ¶
LoadWithContext loads configuration with context support.
func LoadWithContextFromPath ¶
LoadWithContextFromPath loads configuration from a specific file path with context support.
func ModifyProfileOperation ¶
func ModifyProfileOperation( cfg *domain.Config, profileName, operationName string, modifier ProfileOperationModifier, ) bool
ModifyProfileOperation applies a modifier to a specific operation. Returns true if the operation was found and modified.
func WithDetailedLogging ¶
func WithDetailedLogging(enable bool) func(*ValidationMiddlewareOptions)
WithDetailedLogging enables detailed logging in validation middleware.
func WithEnvironment ¶
func WithEnvironment(env string) func(*ValidationMiddlewareOptions)
WithEnvironment sets the environment for validation middleware.
func WithMonitoring ¶
func WithMonitoring(enabled bool) func(*EnhancedConfigLoader)
WithMonitoring enables monitoring output.
func WithNixGenerationsSetting ¶
func WithNixGenerationsSetting( cfg *domain.Config, profileName, operationName string, settingModifier func(*domain.NixGenerationsSettings) bool, ) bool
WithNixGenerationsSetting modifies a specific NixGenerations setting field. Takes the config, profile name, operation name, and a modifier function. Returns true if the operation was found and modified.
func WithOperationSettings ¶
func WithOperationSettings( cfg *domain.Config, profileName, operationName string, settingsModifier func(*domain.OperationSettings) bool, ) bool
WithOperationSettings applies a settings modifier to a specific operation. Returns true if the operation was found and modified.
func WithProfileOperationField ¶
func WithProfileOperationField( cfg *domain.Config, profileName, operationName string, fieldModifier func(*domain.CleanupOperation) bool, ) bool
WithProfileOperationField modifies an operation field directly. Takes the config, profile name, operation name, and a modifier function. Returns true if the operation was found and modified.
func WithRequireSafeModeConfirmation ¶
func WithRequireSafeModeConfirmation(require bool) func(*ValidationMiddlewareOptions)
WithRequireSafeModeConfirmation enables safe mode confirmation requirement.
func WithRetryPolicy ¶
func WithRetryPolicy(policy *RetryPolicy) func(*EnhancedConfigLoader)
WithRetryPolicy sets custom retry policy.
Types ¶
type BDDFeature ¶
type BDDFeature struct {
Name string
Description string
Background string
Scenarios []BDDScenario
}
BDDFeature represents a BDD feature for behavior-driven development.
type BDDScenario ¶
type BDDScenario struct {
Name string
Description string
Given []BDDGiven
When []BDDWhen
Then []BDDThen
}
BDDScenario represents a single BDD test scenario.
type BDDTestRunner ¶
type BDDTestRunner struct {
// contains filtered or unexported fields
}
BDDTestRunner provides comprehensive BDD test execution.
func NewBDDTestRunner ¶
func NewBDDTestRunner(t *testing.T, feature BDDFeature) *BDDTestRunner
NewBDDTestRunner creates a new BDD test runner.
func (*BDDTestRunner) RunFeature ¶
func (b *BDDTestRunner) RunFeature()
RunFeature executes all scenarios in a BDD feature.
type BDDThen ¶
type BDDThen struct {
Description string
Validate func(*ValidationResult) error
}
BDDThen represents the expected outcome in BDD.
type BDDWhen ¶
type BDDWhen struct {
Description string
Action func(*domain.Config) (*ValidationResult, error)
}
BDDWhen represents the action in BDD.
type BackupOption ¶
type BackupOption string
BackupOption represents the backup option for config saving.
const ( BackupOptionDisabled BackupOption = "disabled" BackupOptionEnabled BackupOption = "enabled" )
type CacheOption ¶
type CacheOption string
CacheOption represents the cache enable option for config loading.
const ( CacheOptionDisabled CacheOption = "disabled" CacheOptionEnabled CacheOption = "enabled" )
type ConfigCache ¶
type ConfigCache struct {
// contains filtered or unexported fields
}
ConfigCache provides configuration caching with TTL.
func NewConfigCache ¶
func NewConfigCache(ttl time.Duration) *ConfigCache
NewConfigCache creates a new configuration cache with specified TTL.
func (*ConfigCache) Get ¶
func (cc *ConfigCache) Get() *domain.Config
Get retrieves cached configuration if valid and not expired.
func (*ConfigCache) Set ¶
func (cc *ConfigCache) Set(config *domain.Config)
Set stores configuration in cache with current timestamp.
type ConfigChange ¶
type ConfigChange struct {
Field string `json:"field"`
OldValue any `json:"old_value"`
NewValue any `json:"new_value"`
Operation domain.ChangeOperationType `json:"operation"`
Risk domain.RiskLevelType `json:"risk"`
}
ConfigChange represents a single configuration change.
type ConfigChangeResult ¶
type ConfigChangeResult struct {
IsValid bool `json:"is_valid"`
Changes []ConfigChange `json:"changes"`
Errors []ValidationError `json:"errors,omitempty"`
Warnings []ValidationWarning `json:"warnings,omitempty"`
Timestamp time.Time `json:"timestamp"`
}
ConfigChangeResult represents configuration change validation result.
type ConfigLoadOptions ¶
type ConfigLoadOptions struct {
ForceRefresh RefreshOption `json:"force_refresh"`
EnableCache CacheOption `json:"enable_cache"`
EnableSanitization SanitizeOption `json:"enable_sanitization"`
ValidationLevel domain.ValidationLevelType `json:"validation_level"`
Timeout time.Duration `json:"timeout"`
}
ConfigLoadOptions provides options for configuration loading.
type ConfigModifier ¶
ConfigModifier represents a function that modifies a config.
func ChainModifiers ¶
func ChainModifiers(modifiers ...ConfigModifier) ConfigModifier
ChainModifiers applies multiple config modifiers in sequence.
type ConfigSanitizer ¶
type ConfigSanitizer struct {
// contains filtered or unexported fields
}
ConfigSanitizer provides configuration sanitization and normalization.
func NewConfigSanitizer ¶
func NewConfigSanitizer() *ConfigSanitizer
NewConfigSanitizer creates a configuration sanitizer with default rules.
func NewConfigSanitizerWithRules ¶
func NewConfigSanitizerWithRules(rules *SanitizationRules) *ConfigSanitizer
NewConfigSanitizerWithRules creates a sanitizer with custom rules.
func (*ConfigSanitizer) SanitizeConfig ¶
func (cs *ConfigSanitizer) SanitizeConfig(cfg *domain.Config, validationResult *ValidationResult)
SanitizeConfig performs comprehensive configuration sanitization.
type ConfigSaveOptions ¶
type ConfigSaveOptions struct {
EnableSanitization SanitizeOption `json:"enable_sanitization"`
BackupEnabled BackupOption `json:"backup_enabled"`
ValidationLevel domain.ValidationLevelType `json:"validation_level"`
CreateBackup BackupOption `json:"create_backup"`
ForceSave SaveOption `json:"force_save"` // Override validation failures
}
ConfigSaveOptions provides options for configuration saving.
type ConfigValidationRules ¶
type ConfigValidationRules struct {
// Numeric Constraints
MaxDiskUsage *ValidationRule[int] `json:"max_disk_usage"`
MinProtectedPaths *ValidationRule[int] `json:"min_protected_paths"`
MaxProfiles *ValidationRule[int] `json:"max_profiles"`
MaxOperations *ValidationRule[int] `json:"max_operations"`
// String Constraints
ProfileNamePattern *ValidationRule[string] `json:"profile_name_pattern"`
PathPattern *ValidationRule[string] `json:"path_pattern"`
// Array Constraints
UniquePaths bool `json:"unique_paths"`
UniqueProfiles bool `json:"unique_profiles"`
// Safety Constraints
ProtectedSystemPaths []string `json:"protected_system_paths"`
DefaultProtectedPaths []string `json:"default_protected_paths"`
RequireSafeMode bool `json:"require_safe_mode"`
// Risk Constraints
MaxRiskLevel domain.RiskLevelType `json:"max_risk_level"`
BackupRequired domain.RiskLevelType `json:"backup_required"`
}
ConfigValidationRules defines all validation constraints.
type ConfigValidator ¶
type ConfigValidator struct {
// contains filtered or unexported fields
}
ConfigValidator provides comprehensive type-safe configuration validation.
func NewConfigValidator ¶
func NewConfigValidator() *ConfigValidator
NewConfigValidator creates a comprehensive configuration validator.
func NewConfigValidatorWithRules ¶
func NewConfigValidatorWithRules(rules *ConfigValidationRules) *ConfigValidator
NewConfigValidatorWithRules creates a validator with custom rules.
func (*ConfigValidator) ValidateConfig ¶
func (cv *ConfigValidator) ValidateConfig(cfg *domain.Config) *ValidationResult
ValidateConfig performs comprehensive configuration validation.
func (*ConfigValidator) ValidateField ¶
func (cv *ConfigValidator) ValidateField(field string, value any) error
ValidateField validates a specific configuration field.
type ConsoleValidationLogger ¶
type ConsoleValidationLogger struct {
// contains filtered or unexported fields
}
ConsoleValidationLogger provides console-based logging implementation.
func NewConsoleValidationLogger ¶
func NewConsoleValidationLogger(enableDetailed bool) *ConsoleValidationLogger
NewConsoleValidationLogger creates a console-based validation logger.
func (*ConsoleValidationLogger) LogError ¶
func (l *ConsoleValidationLogger) LogError(field, operation string, err error)
LogError logs validation errors.
func (*ConsoleValidationLogger) LogSanitization ¶
func (l *ConsoleValidationLogger) LogSanitization(result *SanitizationResult)
LogSanitization logs sanitization results.
func (*ConsoleValidationLogger) LogValidation ¶
func (l *ConsoleValidationLogger) LogValidation(result *ValidationResult)
LogValidation logs validation results.
type EnhancedConfigLoader ¶
type EnhancedConfigLoader struct {
// contains filtered or unexported fields
}
EnhancedConfigLoader provides comprehensive configuration loading with validation.
func NewEnhancedConfigLoader ¶
func NewEnhancedConfigLoader(options ...func(*EnhancedConfigLoader)) *EnhancedConfigLoader
NewEnhancedConfigLoader creates a new enhanced config loader.
func (*EnhancedConfigLoader) LoadConfig ¶
func (ecl *EnhancedConfigLoader) LoadConfig( ctx context.Context, options *ConfigLoadOptions, ) (*domain.Config, error)
LoadConfig loads configuration with comprehensive validation and caching.
func (*EnhancedConfigLoader) SaveConfig ¶
func (ecl *EnhancedConfigLoader) SaveConfig( ctx context.Context, config *domain.Config, options *ConfigSaveOptions, ) (*domain.Config, error)
SaveConfig saves configuration with validation and cache update.
func (*EnhancedConfigLoader) ValidateConfig ¶
func (ecl *EnhancedConfigLoader) ValidateConfig( ctx context.Context, config *domain.Config, level domain.ValidationLevelType, ) *ValidationResult
ValidateConfig validates configuration at specified level.
type MonitoringOption ¶
type MonitoringOption string
MonitoringOption represents the monitoring option.
const ( MonitoringOptionDisabled MonitoringOption = "disabled" MonitoringOptionEnabled MonitoringOption = "enabled" )
type ProfileOperationModifier ¶
type ProfileOperationModifier func(*domain.Profile, *domain.CleanupOperation) bool // returns true if modified
ProfileOperationModifier modifies specific profile operations.
type ProfileOperationResult ¶
type ProfileOperationResult struct {
IsValid bool `json:"is_valid"`
Operation *domain.CleanupOperation `json:"operation,omitempty"`
Error error `json:"error,omitempty"`
Timestamp time.Time `json:"timestamp"`
}
ProfileOperationResult represents profile operation validation result.
type RefreshOption ¶
type RefreshOption string
RefreshOption represents the force refresh option for config loading.
const ( RefreshOptionDisabled RefreshOption = "disabled" RefreshOptionEnabled RefreshOption = "enabled" )
type RetryPolicy ¶
type RetryPolicy struct {
MaxRetries int `json:"max_retries"`
InitialDelay time.Duration `json:"initial_delay"`
MaxDelay time.Duration `json:"max_delay"`
BackoffFactor float64 `json:"backoff_factor"`
}
RetryPolicy defines retry behavior for configuration operations.
type SafeConfig ¶
type SafeConfig struct {
// contains filtered or unexported fields
}
SafeConfig represents a validated cleaning configuration.
type SafeConfigBuilder ¶
type SafeConfigBuilder struct {
// contains filtered or unexported fields
}
SafeConfigBuilder builds type-safe configurations.
func NewSafeConfigBuilder ¶
func NewSafeConfigBuilder() *SafeConfigBuilder
NewSafeConfigBuilder creates a type-safe configuration builder.
func (*SafeConfigBuilder) AddProfile ¶
func (scb *SafeConfigBuilder) AddProfile(name, description string) *SafeProfileBuilder
AddProfile adds a safe profile.
func (*SafeConfigBuilder) Backup ¶
func (scb *SafeConfigBuilder) Backup() *SafeConfigBuilder
Backup enables backup mode.
func (*SafeConfigBuilder) Build ¶
func (scb *SafeConfigBuilder) Build() (SafeConfig, error)
Build creates safe configuration.
func (*SafeConfigBuilder) DryRun ¶
func (scb *SafeConfigBuilder) DryRun() *SafeConfigBuilder
DryRun enables dry-run mode.
func (*SafeConfigBuilder) SafeMode ¶
func (scb *SafeConfigBuilder) SafeMode() *SafeConfigBuilder
SafeMode enables safe mode.
type SafeOperation ¶
type SafeOperation struct {
// contains filtered or unexported fields
}
SafeOperation represents a validated cleaning operation.
type SafeProfile ¶
type SafeProfile struct {
// contains filtered or unexported fields
}
SafeProfile represents a validated cleaning profile.
type SafeProfileBuilder ¶
type SafeProfileBuilder struct {
// contains filtered or unexported fields
}
SafeProfileBuilder builds type-safe profiles.
func (*SafeProfileBuilder) AddOperation ¶
func (spb *SafeProfileBuilder) AddOperation( opType CleanType, risk domain.RiskLevelType, ) *SafeProfileBuilder
AddOperation adds a safe operation.
func (*SafeProfileBuilder) Done ¶
func (spb *SafeProfileBuilder) Done() *SafeConfigBuilder
Done finishes profile building.
type SanitizationChange ¶
type SanitizationChange struct {
Original any `json:"original"`
Sanitized any `json:"sanitized"`
Reason string `json:"reason"`
Timestamp time.Time `json:"timestamp"`
}
SanitizationChange represents a specific field change with context.
type SanitizationResult ¶
type SanitizationResult struct {
SanitizedFields []string `json:"sanitized_fields"`
Warnings []SanitizationWarning `json:"warnings"`
Changes map[string]*SanitizationChange `json:"changes"`
Timestamp time.Time `json:"timestamp"`
}
SanitizationResult contains sanitization outcomes.
type SanitizationResultAdapter ¶
type SanitizationResultAdapter struct {
// contains filtered or unexported fields
}
SanitizationResultAdapter adapts local SanitizationResult to strings utility interface.
type SanitizationRules ¶
type SanitizationRules struct {
// Path sanitization
NormalizePaths bool `json:"normalize_paths"`
ExpandHomeDir bool `json:"expand_home_dir"`
ValidateExists bool `json:"validate_exists"`
// Numeric sanitization
ClampValues bool `json:"clamp_values"`
RoundPercentages bool `json:"round_percentages"`
// String sanitization
TrimWhitespace bool `json:"trim_whitespace"`
NormalizeCase bool `json:"normalize_case"`
// Structural sanitization
SortArrays bool `json:"sort_arrays"`
RemoveDuplicates bool `json:"remove_duplicates"`
AddDefaults bool `json:"add_defaults"`
// Safety defaults
DefaultSafeMode domain.SafeMode `json:"default_safe_mode"`
DefaultMaxDiskUsage int `json:"default_max_disk_usage"`
DefaultBackup time.Duration `json:"default_backup"`
DefaultProtectedPaths []string `json:"default_protected_paths"`
}
SanitizationRules defines how to sanitize different configuration aspects.
type SanitizationWarning
deprecated
type SanitizationWarning = domain.SanitizationWarning
SanitizationWarning represents a sanitization warning.
Deprecated: Use domain.SanitizationWarning instead. This alias exists for backward compatibility.
type SanitizeOption ¶
type SanitizeOption string
SanitizeOption represents the sanitization enable option.
const ( SanitizeOptionDisabled SanitizeOption = "disabled" SanitizeOptionEnabled SanitizeOption = "enabled" )
type SaveOption ¶
type SaveOption string
SaveOption represents the force save option for config saving.
const ( SaveOptionDisabled SaveOption = "disabled" SaveOptionEnabled SaveOption = "enabled" )
type ValidationContext ¶
type ValidationContext = domain.ValidationContext
ValidationContext provides strongly-typed validation context information.
type ValidationError ¶
type ValidationError = domain.ValidationError
ValidationError represents a specific validation error.
type ValidationLogger ¶
type ValidationLogger interface {
LogValidation(result *ValidationResult)
LogSanitization(result *SanitizationResult)
LogError(field, operation string, err error)
}
ValidationLogger interface for validation logging.
type ValidationMiddleware ¶
type ValidationMiddleware struct {
// contains filtered or unexported fields
}
ValidationMiddleware provides comprehensive validation for configuration operations.
func NewValidationMiddleware ¶
func NewValidationMiddleware() *ValidationMiddleware
NewValidationMiddleware creates comprehensive validation middleware.
func NewValidationMiddlewareWithLogger ¶
func NewValidationMiddlewareWithLogger(logger ValidationLogger) *ValidationMiddleware
NewValidationMiddlewareWithLogger creates middleware with custom logger.
func NewValidationMiddlewareWithOptions ¶
func NewValidationMiddlewareWithOptions( options ...func(*ValidationMiddlewareOptions), ) *ValidationMiddleware
NewValidationMiddlewareWithOptions creates middleware with custom options.
func (*ValidationMiddleware) ValidateAndLoadConfig ¶
ValidateAndLoadConfig loads and validates configuration with comprehensive checks.
func (*ValidationMiddleware) ValidateAndSaveConfig ¶
func (vm *ValidationMiddleware) ValidateAndSaveConfig( ctx context.Context, cfg *domain.Config, ) (*domain.Config, error)
ValidateAndSaveConfig validates and saves configuration.
func (*ValidationMiddleware) ValidateConfigChange ¶
func (vm *ValidationMiddleware) ValidateConfigChange( ctx context.Context, current, proposed *domain.Config, ) *ConfigChangeResult
ValidateConfigChange validates a specific configuration change.
func (*ValidationMiddleware) ValidateProfileOperation ¶
func (vm *ValidationMiddleware) ValidateProfileOperation( ctx context.Context, profileName, operationName string, settings *domain.OperationSettings, ) *ProfileOperationResult
ValidateProfileOperation validates a specific profile operation with type safety.
type ValidationMiddlewareOptions ¶
type ValidationMiddlewareOptions struct {
RequireSafeModeConfirmation bool `json:"require_safe_mode_confirmation"`
EnableDetailedLogging bool `json:"enable_detailed_logging"`
Environment string `json:"environment"` // "development", "production", etc.
}
ValidationMiddlewareOptions provides configuration for validation middleware.
type ValidationResult ¶
type ValidationResult struct {
IsValid bool `json:"is_valid"`
Errors []ValidationError `json:"errors,omitempty"`
Warnings []ValidationWarning `json:"warnings,omitempty"`
Sanitized *ValidationSanitizedData `json:"sanitized,omitempty"`
Duration time.Duration `json:"duration"`
Timestamp time.Time `json:"timestamp"`
}
ValidationResult contains validation results with detailed error information.
type ValidationRule ¶
type ValidationRule[T comparable] struct { Required bool `json:"required"` Min *T `json:"min,omitempty"` Max *T `json:"max,omitempty"` Enum []T `json:"enum,omitempty"` Pattern string `json:"pattern,omitempty"` Message string `json:"message,omitempty"` // contains filtered or unexported fields }
ValidationRule represents a validation constraint for a specific type.
func (*ValidationRule[T]) GetCompiledRegex ¶
func (vr *ValidationRule[T]) GetCompiledRegex() *regexp.Regexp
GetCompiledRegex returns the compiled regex pattern, creating it once if needed.
type ValidationSanitizedData ¶
type ValidationSanitizedData struct {
FieldsModified []string `json:"fields_modified,omitempty"`
RulesApplied []string `json:"rules_applied,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
// Type-safe configuration instead of dynamic data
ConfigVersion string `json:"config_version,omitempty"`
ValidationLevel string `json:"validation_level,omitempty"`
AppliedProfiles []string `json:"applied_profiles,omitempty"`
}
ValidationSanitizedData provides type-safe configuration data FIXED: Removed map[string]any to improve type safety.
type ValidationSeverity ¶
type ValidationSeverity = domain.ValidationSeverity
ValidationSeverity represents error severity levels.
type ValidationWarning ¶
type ValidationWarning struct {
Field string `json:"field"`
Message string `json:"message"`
Suggestion string `json:"suggestion,omitempty"`
Context *ValidationContext `json:"context,omitempty"`
}
ValidationWarning represents a non-critical validation issue.
Source Files
¶
- bdd_framework.go
- bdd_helpers.go
- config.go
- constants.go
- enhanced_loader.go
- enhanced_loader_api.go
- enhanced_loader_cache.go
- enhanced_loader_defaults.go
- enhanced_loader_private.go
- enhanced_loader_types.go
- risk_util.go
- safe.go
- sanitizer.go
- sanitizer_homebrew.go
- sanitizer_nix.go
- sanitizer_operation_settings.go
- sanitizer_paths.go
- sanitizer_profile_main.go
- sanitizer_systemtemp.go
- sanitizer_tempfiles.go
- validation_middleware.go
- validation_middleware_analysis.go
- validation_middleware_rules.go
- validator.go
- validator_business.go
- validator_crossfield.go
- validator_field.go
- validator_profile.go
- validator_rules.go
- validator_structure.go