|
Common System 0.2.0
Common interfaces and patterns for system integration
|
Loads and validates unified configuration from various sources. More...
#include <config_loader.h>

Static Public Member Functions | |
| static Result< unified_config > | load (const std::string &path) |
| Load configuration from a YAML file. | |
| static Result< unified_config > | load_from_string (const std::string &yaml_content) |
| Load configuration from a YAML string. | |
| static Result< unified_config > | load_from_env () |
| Load configuration from environment variables only. | |
| static unified_config | defaults () |
| Get default configuration. | |
| static VoidResult | validate (const unified_config &config) |
| Validate a configuration. | |
| static std::vector< validation_issue > | get_validation_issues (const unified_config &config) |
| Get all validation issues for a configuration. | |
| static std::string | expand_env_vars (const std::string &value) |
| Expand environment variables in a string. | |
Static Private Member Functions | |
| static VoidResult | merge_env_overrides (unified_config &config) |
| Apply environment variable overrides to configuration. | |
| static void | apply_env_override (const char *env_name, std::string &target) |
| static void | apply_env_override (const char *env_name, size_t &target) |
| static void | apply_env_override (const char *env_name, uint16_t &target) |
| static void | apply_env_override_bool (const char *env_name, bool &target) |
| static void | apply_env_override_double (const char *env_name, double &target) |
| static void | apply_env_override_ms (const char *env_name, std::chrono::milliseconds &target) |
| static void | apply_env_override_vector (const char *env_name, std::vector< std::string > &target) |
| static void | validate_thread_config (const thread_config &config, std::vector< validation_issue > &issues) |
| static void | validate_logger_config (const logger_config &config, std::vector< validation_issue > &issues) |
| static void | validate_monitoring_config (const monitoring_config &config, std::vector< validation_issue > &issues) |
| static void | validate_database_config (const database_config &config, std::vector< validation_issue > &issues) |
| static void | validate_network_config (const network_config &config, std::vector< validation_issue > &issues) |
Loads and validates unified configuration from various sources.
The config_loader supports loading configuration from:
Usage Example:
Definition at line 94 of file config_loader.h.
|
inlinestaticprivate |
Definition at line 423 of file config_loader.h.
|
inlinestaticprivate |
Definition at line 416 of file config_loader.h.
Referenced by merge_env_overrides().

|
inlinestaticprivate |
Definition at line 434 of file config_loader.h.
|
inlinestaticprivate |
Definition at line 448 of file config_loader.h.
Referenced by merge_env_overrides().

|
inlinestaticprivate |
Definition at line 464 of file config_loader.h.
Referenced by merge_env_overrides().

|
inlinestaticprivate |
Definition at line 475 of file config_loader.h.
Referenced by merge_env_overrides().

|
inlinestaticprivate |
Definition at line 486 of file config_loader.h.
Referenced by merge_env_overrides().

|
inlinestatic |
Get default configuration.
Definition at line 238 of file config_loader.h.
References kcenon::common::config::unified_config::defaults().
Referenced by kcenon::common::config::config_watcher::config_watcher(), load_from_env(), and load_from_string().


|
inlinestatic |
Expand environment variables in a string.
Replaces ${VAR_NAME} patterns with the corresponding environment variable values. If a variable is not set, the pattern is left unchanged.
| value | String containing environment variable references |
Definition at line 313 of file config_loader.h.
Referenced by load_from_string().

|
inlinestatic |
Get all validation issues for a configuration.
Returns both errors and warnings.
| config | Configuration to validate |
Definition at line 291 of file config_loader.h.
References kcenon::common::config::unified_config::database, kcenon::common::config::unified_config::logger, kcenon::common::config::unified_config::monitoring, kcenon::common::config::unified_config::network, kcenon::common::config::unified_config::thread, validate_database_config(), validate_logger_config(), validate_monitoring_config(), validate_network_config(), and validate_thread_config().

|
inlinestatic |
Load configuration from a YAML file.
Loads the configuration from the specified file path, applies environment variable substitution, and merges with environment variable overrides.
| path | Path to the YAML configuration file |
Definition at line 106 of file config_loader.h.
References kcenon::common::config::config_error_codes::file_not_found, kcenon::common::config::config_error_codes::io_error, load_from_string(), kcenon::common::make_error(), and kcenon::common::config::config_error_codes::parse_error.
Referenced by kcenon::common::config::config_watcher::config_watcher(), kcenon::common::config::config_watcher::do_reload(), and kcenon::common::config::cli_config_parser::load_with_cli_overrides().


|
inlinestatic |
Load configuration from environment variables only.
Creates a default configuration and applies all UNIFIED_* environment variable overrides.
Definition at line 218 of file config_loader.h.
References defaults(), kcenon::common::make_error(), merge_env_overrides(), kcenon::common::Result< T >::ok(), and validate().
Referenced by kcenon::common::config::cli_config_parser::load_with_cli_overrides().


|
inlinestatic |
Load configuration from a YAML string.
Parses the YAML content, applies environment variable substitution, and merges with environment variable overrides.
| yaml_content | YAML content as a string |
Definition at line 157 of file config_loader.h.
References defaults(), expand_env_vars(), kcenon::common::make_error(), merge_env_overrides(), kcenon::common::Result< T >::ok(), kcenon::common::config::config_error_codes::parse_error, and validate().
Referenced by load().


|
inlinestaticprivate |
Apply environment variable overrides to configuration.
Definition at line 355 of file config_loader.h.
References kcenon::common::config::pool_config::acquire_timeout, apply_env_override(), apply_env_override_bool(), apply_env_override_double(), apply_env_override_ms(), apply_env_override_vector(), kcenon::common::config::logger_config::async, kcenon::common::config::database_config::backend, kcenon::common::config::logger_config::buffer_size, kcenon::common::config::network_config::buffer_size, kcenon::common::config::tls_config::ca_path, kcenon::common::config::tls_config::cert_path, kcenon::common::config::network_config::compression, kcenon::common::config::network_config::connect_timeout, kcenon::common::config::database_config::connection_string, kcenon::common::config::unified_config::database, kcenon::common::config::monitoring_config::enabled, kcenon::common::config::tls_config::enabled, kcenon::common::config::tracing_config::enabled, kcenon::common::config::tracing_config::endpoint, kcenon::common::config::tracing_config::exporter, kcenon::common::config::logger_config::file_path, kcenon::common::config::logger_config::format_pattern, kcenon::common::config::monitoring_config::health_check_interval, kcenon::common::config::pool_config::idle_timeout, kcenon::common::config::network_config::io_timeout, kcenon::common::config::network_config::keepalive_interval, kcenon::common::config::tls_config::key_path, kcenon::common::config::logger_config::level, kcenon::common::config::database_config::log_queries, kcenon::common::config::unified_config::logger, kcenon::common::config::logger_config::max_backup_files, kcenon::common::config::network_config::max_connections, kcenon::common::config::logger_config::max_file_size, kcenon::common::config::thread_config::max_queue_size, kcenon::common::config::pool_config::max_size, kcenon::common::config::monitoring_config::metrics_interval, kcenon::common::config::pool_config::min_size, kcenon::common::config::unified_config::monitoring, kcenon::common::config::unified_config::network, kcenon::common::Result< T >::ok(), kcenon::common::config::database_config::pool, kcenon::common::config::thread_config::pool_size, kcenon::common::config::monitoring_config::prometheus_path, kcenon::common::config::monitoring_config::prometheus_port, kcenon::common::config::thread_config::queue_type, kcenon::common::config::tracing_config::sampling_rate, kcenon::common::config::database_config::slow_query_threshold, kcenon::common::config::unified_config::thread, kcenon::common::config::thread_config::thread_name_prefix, kcenon::common::config::network_config::tls, kcenon::common::config::monitoring_config::tracing, kcenon::common::config::tls_config::verify_peer, kcenon::common::config::tls_config::version, and kcenon::common::config::logger_config::writers.
Referenced by load_from_env(), and load_from_string().


|
inlinestatic |
Validate a configuration.
Checks all configuration values against their allowed ranges and valid options.
| config | Configuration to validate |
Definition at line 251 of file config_loader.h.
References kcenon::common::config::unified_config::database, kcenon::common::config::unified_config::logger, kcenon::common::make_error(), kcenon::common::config::unified_config::monitoring, kcenon::common::config::unified_config::network, kcenon::common::Result< T >::ok(), kcenon::common::config::unified_config::thread, validate_database_config(), validate_logger_config(), validate_monitoring_config(), validate_network_config(), validate_thread_config(), and kcenon::common::config::config_error_codes::validation_error.
Referenced by kcenon::common::config::config_watcher::do_reload(), load_from_env(), load_from_string(), and kcenon::common::config::cli_config_parser::load_with_cli_overrides().


|
inlinestaticprivate |
Definition at line 776 of file config_loader.h.
References kcenon::common::config::database_config::backend, kcenon::common::config::pool_config::max_size, kcenon::common::config::pool_config::min_size, and kcenon::common::config::database_config::pool.
Referenced by get_validation_issues(), and validate().

|
inlinestaticprivate |
Definition at line 725 of file config_loader.h.
References kcenon::common::config::logger_config::async, kcenon::common::config::logger_config::buffer_size, kcenon::common::config::logger_config::level, and kcenon::common::config::logger_config::writers.
Referenced by get_validation_issues(), and validate().

|
inlinestaticprivate |
Definition at line 752 of file config_loader.h.
References kcenon::common::config::tracing_config::exporter, kcenon::common::config::monitoring_config::metrics_interval, kcenon::common::config::tracing_config::sampling_rate, and kcenon::common::config::monitoring_config::tracing.
Referenced by get_validation_issues(), and validate().

|
inlinestaticprivate |
Definition at line 801 of file config_loader.h.
References kcenon::common::config::network_config::buffer_size, kcenon::common::config::tls_config::ca_path, kcenon::common::config::network_config::compression, kcenon::common::config::tls_config::enabled, kcenon::common::config::network_config::tls, kcenon::common::config::tls_config::verify_peer, and kcenon::common::config::tls_config::version.
Referenced by get_validation_issues(), and validate().

|
inlinestaticprivate |
Definition at line 710 of file config_loader.h.
References kcenon::common::config::thread_config::max_queue_size, and kcenon::common::config::thread_config::queue_type.
Referenced by get_validation_issues(), and validate().
