LemonCore. Config. Validator
(lemon_core v0.1.0)
View Source
Validation utilities for Lemon configuration.
Provides functions to validate configuration values and return detailed error messages for invalid configurations.
Usage
config = LemonCore.Config.Modular.load()
case LemonCore.Config.Validator.validate(config) do
:ok -> config
{:error, errors} -> handle_errors(errors)
endValidation Rules
- Agent: valid model names, provider names
- Gateway: valid port numbers, boolean flags
- Telegram: token format, compaction settings
- Discord: token format, guild/channel IDs
- Web Dashboard: port, host, secret key base, access token
- XMTP: wallet key, environment, API URL, max connections
- Email: SMTP relay, inbound webhook, TLS/auth settings
- Logging: valid log levels, writable paths
- Providers: valid API key formats
- Tools: valid timeout values
- TUI: valid theme names
Summary
Functions
Validates a complete modular configuration.
Validates agent configuration.
Validates settings for deprecated sections, returning an ok/error tuple.
Validates Discord configuration.
Validates Email configuration.
Validates feature flag configuration.
Validates gateway configuration.
Validates legacy providers configuration (map format).
Validates logging configuration.
Validates providers configuration.
Validates queue configuration.
Validates Telegram configuration.
Validates tools configuration.
Validates TUI configuration.
Validates Web Dashboard configuration.
Validates XMTP configuration.
Functions
@spec validate(LemonCore.Config.Modular.t() | LemonCore.Config.t()) :: :ok | {:error, [String.t()]}
Validates a complete modular configuration.
Returns :ok if valid, or {:error, errors} with a list of validation errors.
Examples
iex> Validator.validate(config)
:ok
iex> Validator.validate(invalid_config)
{:error, [
"agent.default_model: cannot be empty",
"gateway.web_port: must be between 1 and 65535"
]}
Validates agent configuration.
Validates settings for deprecated sections, returning an ok/error tuple.
Returns :ok if no deprecated sections are found, or {:error, errors}.
Validates Discord configuration.
Validates Email configuration.
@spec validate_features(LemonCore.Config.Features.t() | nil, [String.t()]) :: [ String.t() ]
Validates feature flag configuration.
Validates gateway configuration.
Validates legacy providers configuration (map format).
Validates logging configuration.
Validates providers configuration.
Validates queue configuration.
Validates Telegram configuration.
Validates tools configuration.
Validates TUI configuration.
Validates Web Dashboard configuration.
Validates XMTP configuration.