PacketFlow.Config (packetflow v0.1.0)
Dynamic configuration management for PacketFlow components
This module provides centralized configuration management with support for:
- Environment-based configuration
- Runtime configuration updates
- Component-specific configuration
- Configuration validation
- Default value management
Summary
Functions
Returns a specification to start this module under a supervisor.
Get a configuration value with optional default
Get all configuration
Get a configuration value for a specific component
Callback implementation for GenServer.init/1
.
Set a configuration value
Set a configuration value for a specific component
Unwatch configuration changes
Update configuration with a map of values
Validate configuration against schema
Watch for configuration changes
Types
@type config_key() :: atom()
@type config_map() :: %{required(config_key()) => config_value()}
@type config_value() :: any()
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
@spec get(config_key(), config_value()) :: config_value()
Get a configuration value with optional default
@spec get_all() :: config_map()
Get all configuration
@spec get_component(atom(), config_key(), config_value()) :: config_value()
Get a configuration value for a specific component
Callback implementation for GenServer.init/1
.
@spec set(config_key(), config_value()) :: :ok
Set a configuration value
@spec set_component(atom(), config_key(), config_value()) :: :ok
Set a configuration value for a specific component
@spec unwatch(config_key(), pid()) :: :ok
Unwatch configuration changes
@spec update(config_map()) :: :ok
Update configuration with a map of values
@spec validate(config_map()) :: {:ok, config_map()} | {:error, String.t()}
Validate configuration against schema
@spec watch(config_key(), pid()) :: :ok
Watch for configuration changes