config

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 17, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
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.

View Source
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.

View Source
const (
	DefaultNixMaxGenerations = 10 // Default maximum generations to keep
	MaxNixGenerations        = 10 // Maximum allowed generations to keep
	MockNixStoreSizeGB       = 300
	MockNixGenerationSizeMB  = 50
)

Nix generation constants.

View Source
const (
	ConfigFilePermission = 0o644 // rw-r--r--
	ConfigDirPermission  = 0o755 // rwxr-xr-x
)

File permission constants.

View Source
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.

View Source
const (
	SeverityError   = domain.SeverityError
	SeverityWarning = domain.SeverityWarning
	SeverityInfo    = domain.SeverityInfo
)
View Source
const (
	DefaultCacheDuration = 30 * time.Minute // Default cache duration
)

Cache constants.

View Source
const (
	// DefaultConfigCacheExpiry is the default expiration time for config cache entries.
	DefaultConfigCacheExpiry = 30 * time.Minute
)

Config cache expiry constant.

View Source
const (
	DefaultLoadTimeout = 30 * time.Second // Default timeout for configuration loading
)

Load timeout constants.

Variables

View Source
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

func BoolToSafeMode(b bool) domain.SafeMode

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

func GetCurrentTime() time.Time

GetCurrentTime returns current time (helper for testing).

func GetDefaultConfig

func GetDefaultConfig() *domain.Config

GetDefaultConfig returns the default configuration.

func Load

func Load() (*domain.Config, error)

Load loads the configuration from file or creates default.

func LoadFromPath

func LoadFromPath(configPath string) (*domain.Config, error)

LoadFromPath loads configuration from a specific file path.

func LoadWithContext

func LoadWithContext(ctx context.Context) (*domain.Config, error)

LoadWithContext loads configuration with context support.

func LoadWithContextFromPath

func LoadWithContextFromPath(ctx context.Context, configPath string) (*domain.Config, error)

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 Save

func Save(config *domain.Config) error

Save saves the configuration to file.

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 BDDGiven

type BDDGiven struct {
	Description string
	Setup       func() (*domain.Config, error)
}

BDDGiven represents the initial state in BDD.

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 CleanType

type CleanType string

CleanType represents type-safe cleaning types.

const (
	CleanTypeNixStore     CleanType = "nix_store"
	CleanTypeHomebrew     CleanType = "homebrew"
	CleanTypePackageCache CleanType = "package_cache"
	CleanTypeTempFiles    CleanType = "temp_files"
)

func (CleanType) IsValid

func (ct CleanType) IsValid() bool

IsValid checks if clean type is valid.

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

type ConfigModifier func(*domain.Config) *domain.Config

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

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.

func (*SanitizationResultAdapter) AddChange

func (a *SanitizationResultAdapter) AddChange(path string, original, newValue any, reason string)

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

func (vm *ValidationMiddleware) ValidateAndLoadConfig(ctx context.Context) (*domain.Config, error)

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.

Jump to

Keyboard shortcuts

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