Vaultx.Config.Validator (Vaultx v0.7.0)
View SourceAdvanced configuration validation with comprehensive error reporting.
This module provides intelligent configuration validation that goes beyond basic type checking to include security analysis, performance validation, compatibility checks, and best practice recommendations.
Features
- Comprehensive Validation: Deep validation of all configuration aspects
- Security Analysis: Security-focused configuration validation
- Performance Validation: Performance impact analysis
- Compatibility Checks: Version and feature compatibility validation
- Best Practice Recommendations: Industry best practice validation
Validation Categories
Core Configuration
- URL format and accessibility validation
- Authentication configuration validation
- Network and timeout configuration validation
Security Configuration
- SSL/TLS configuration security analysis
- Authentication method security validation
- Sensitive data exposure prevention
Performance Configuration
- Connection pool optimization validation
- Cache configuration performance analysis
- Timeout and retry configuration optimization
Compatibility Configuration
- Vault version compatibility checks
- Feature availability validation
- Environment-specific configuration validation
Usage
# Comprehensive validation
issues = Vaultx.Config.Validator.validate_comprehensive(config)
# Security-focused validation
warnings = Vaultx.Config.Validator.check_security_configuration(config)
# Compatibility validation
compatibility = Vaultx.Config.Validator.check_compatibility(config)
Summary
Functions
Checks configuration compatibility with Vault versions and features.
Performs security-focused configuration validation.
Performs comprehensive configuration validation.
Types
@type validation_issue() :: %{ type: Vaultx.Base.Logger.log_level(), category: atom(), field: String.t(), message: String.t(), suggestion: String.t() | nil, severity: :low | :medium | :high | :critical }
Functions
@spec check_compatibility(Vaultx.Base.Config.t()) :: compatibility_result()
Checks configuration compatibility with Vault versions and features.
Parameters
config- Configuration map to validate
Returns
Compatibility analysis results.
Examples
config = Vaultx.Base.Config.get()
compatibility = Vaultx.Config.Validator.check_compatibility(config)
unless compatibility.vault_version_compatible do
IO.puts("Warning: Configuration may not be compatible with target Vault version")
end
@spec check_security_configuration(Vaultx.Base.Config.t()) :: [security_warning()]
Performs security-focused configuration validation.
This function specifically validates security-related configuration settings and identifies potential security risks or compliance issues.
Parameters
config- Configuration map to validate
Returns
List of security warnings and recommendations.
Examples
config = Vaultx.Base.Config.get()
warnings = Vaultx.Config.Validator.check_security_configuration(config)
Enum.each(warnings, fn warning ->
IO.puts("Security Warning: #{warning.message}")
IO.puts("Recommendation: #{warning.recommendation}")
end)
Performs comprehensive configuration validation.
This function validates all aspects of the configuration including core settings, security configuration, performance settings, and compatibility requirements.
Parameters
config- Configuration map to validate
Returns
List of validation issues, empty list if configuration is valid.
Examples
config = Vaultx.Base.Config.get()
issues = Vaultx.Config.Validator.validate_comprehensive(config)
if Enum.empty?(issues) do
IO.puts("Configuration is valid")
else
Enum.each(issues, fn issue ->
IO.puts("#{issue.severity}: #{issue.message}")
end)
end
@spec validate_comprehensive(Vaultx.Base.Config.t()) :: [validation_issue()]