# Configuration Management\n\nThis document provides comprehensive guidance on provisioning's configuration architecture, environment-specific configurations, validation, error\nhandling, and migration strategies.\n\n## Table of Contents\n\n1. [Overview](#overview)\n2. [Configuration Architecture](#configuration-architecture)\n3. [Configuration Files](#configuration-files)\n4. [Environment-Specific Configuration](#environment-specific-configuration)\n5. [User Overrides and Customization](#user-overrides-and-customization)\n6. [Validation and Error Handling](#validation-and-error-handling)\n7. [Interpolation and Dynamic Values](#interpolation-and-dynamic-values)\n8. [Migration Strategies](#migration-strategies)\n9. [Troubleshooting](#troubleshooting)\n\n## Overview\n\nProvisioning implements a sophisticated configuration management system that has migrated from environment variable-based configuration to a\nhierarchical TOML configuration system with comprehensive validation and interpolation support.\n\n**Key Features**:\n\n- **Hierarchical Configuration**: Multi-layer configuration with clear precedence\n- **Environment-Specific**: Dedicated configurations for dev, test, and production\n- **Dynamic Interpolation**: Template-based value resolution\n- **Type Safety**: Comprehensive validation and error handling\n- **Migration Support**: Backward compatibility with existing ENV variables\n- **Workspace Integration**: Seamless integration with development workspaces\n\n**Migration Status**: ✅ **Complete** (2025-09-23)\n\n- **65+ files migrated** across entire codebase\n- **200+ ENV variables replaced** with 476 config accessors\n- **16 token-efficient agents** used for systematic migration\n- **92% token efficiency** achieved vs monolithic approach\n\n## Configuration Architecture\n\n### Hierarchical Loading Order\n\nThe configuration system implements a clear precedence hierarchy (lowest to highest precedence):\n\n```\nConfiguration Hierarchy (Low → High Precedence)\n┌─────────────────────────────────────────────────┐\n│ 1. config.defaults.toml                         │ ← System defaults\n│    (System-wide default values)                 │\n├─────────────────────────────────────────────────┤\n│ 2. ~/.config/provisioning/config.toml          │ ← User configuration\n│    (User-specific preferences)                  │\n├─────────────────────────────────────────────────┤\n│ 3. ./provisioning.toml                         │ ← Project configuration\n│    (Project-specific settings)                  │\n├─────────────────────────────────────────────────┤\n│ 4. ./.provisioning.toml                        │ ← Infrastructure config\n│    (Infrastructure-specific settings)           │\n├─────────────────────────────────────────────────┤\n│ 5. Environment-specific configs                 │ ← Environment overrides\n│    (config.{dev,test,prod}.toml)               │\n├─────────────────────────────────────────────────┤\n│ 6. Runtime environment variables                │ ← Runtime overrides\n│    (PROVISIONING_* variables)                   │\n└─────────────────────────────────────────────────┘\n```\n\n### Configuration Access Patterns\n\n**Configuration Accessor Functions**:\n\n```\n# Core configuration access\nuse core/nulib/lib_provisioning/config/accessor.nu\n\n# Get configuration value with fallback\nlet api_url = (get-config-value "providers.upcloud.api_url" "https://api.upcloud.com")\n\n# Get required configuration (errors if missing)\nlet api_key = (get-config-required "providers.upcloud.api_key")\n\n# Get nested configuration\nlet server_defaults = (get-config-section "defaults.servers")\n\n# Environment-aware configuration\nlet log_level = (get-config-env "logging.level" "info")\n\n# Interpolated configuration\nlet data_path = (get-config-interpolated "paths.data")  # Resolves {{paths.base}}/data\n```\n\n### Migration from ENV Variables\n\n**Before (ENV-based)**:\n\n```\nexport PROVISIONING_UPCLOUD_API_KEY="your-key"\nexport PROVISIONING_UPCLOUD_API_URL="https://api.upcloud.com"\nexport PROVISIONING_LOG_LEVEL="debug"\nexport PROVISIONING_BASE_PATH="/usr/local/provisioning"\n```\n\n**After (Config-based)**:\n\n```\n# config.user.toml\n[providers.upcloud]\napi_key = "your-key"\napi_url = "https://api.upcloud.com"\n\n[logging]\nlevel = "debug"\n\n[paths]\nbase = "/usr/local/provisioning"\n```\n\n## Configuration Files\n\n### System Defaults (`config.defaults.toml`)\n\n**Purpose**: Provides sensible defaults for all system components\n**Location**: Root of the repository\n**Modification**: Should only be modified by system maintainers\n\n```\n# System-wide defaults - DO NOT MODIFY in production\n# Copy values to config.user.toml for customization\n\n[core]\nversion = "1.0.0"\nname = "provisioning-system"\n\n[paths]\n# Base path - all other paths derived from this\nbase = "/usr/local/provisioning"\nconfig = "{{paths.base}}/config"\ndata = "{{paths.base}}/data"\nlogs = "{{paths.base}}/logs"\ncache = "{{paths.base}}/cache"\nruntime = "{{paths.base}}/runtime"\n\n[logging]\nlevel = "info"\nfile = "{{paths.logs}}/provisioning.log"\nrotation = true\nmax_size = "100 MB"\nmax_files = 5\n\n[http]\ntimeout = 30\nretries = 3\nuser_agent = "provisioning-system/{{core.version}}"\nuse_curl = false\n\n[providers]\ndefault = "local"\n\n[providers.upcloud]\napi_url = "https://api.upcloud.com/1.3"\ntimeout = 30\nmax_retries = 3\n\n[providers.aws]\nregion = "us-east-1"\ntimeout = 30\n\n[providers.local]\nenabled = true\nbase_path = "{{paths.data}}/local"\n\n[defaults]\n[defaults.servers]\nplan = "1xCPU-2 GB"\nzone = "auto"\ntemplate = "ubuntu-22.04"\n\n[cache]\nenabled = true\nttl = 3600\npath = "{{paths.cache}}"\n\n[orchestrator]\nenabled = false\nport = 8080\nbind = "127.0.0.1"\ndata_path = "{{paths.data}}/orchestrator"\n\n[workflow]\nstorage_backend = "filesystem"\nparallel_limit = 5\nrollback_enabled = true\n\n[telemetry]\nenabled = false\nendpoint = ""\nsample_rate = 0.1\n```\n\n### User Configuration (`~/.config/provisioning/config.toml`)\n\n**Purpose**: User-specific customizations and preferences\n**Location**: User's configuration directory\n**Modification**: Users should customize this file for their needs\n\n```\n# User configuration - customizations and personal preferences\n# This file overrides system defaults\n\n[core]\nname = "provisioning-{{env.USER}}"\n\n[paths]\n# Personal installation path\nbase = "{{env.HOME}}/.local/share/provisioning"\n\n[logging]\nlevel = "debug"\nfile = "{{paths.logs}}/provisioning-{{env.USER}}.log"\n\n[providers]\ndefault = "upcloud"\n\n[providers.upcloud]\napi_key = "your-personal-api-key"\napi_secret = "your-personal-api-secret"\n\n[defaults.servers]\nplan = "2xCPU-4 GB"\nzone = "us-nyc1"\n\n[development]\nauto_reload = true\nhot_reload_templates = true\nverbose_errors = true\n\n[notifications]\nslack_webhook = "https://hooks.slack.com/your-webhook"\nemail = "your-email@domain.com"\n\n[git]\nauto_commit = true\ncommit_prefix = "[{{env.USER}}]"\n```\n\n### Project Configuration (`./provisioning.toml`)\n\n**Purpose**: Project-specific settings shared across team\n**Location**: Project root directory\n**Version Control**: Should be committed to version control\n\n```\n# Project-specific configuration\n# Shared settings for this project/repository\n\n[core]\nname = "my-project-provisioning"\nversion = "1.2.0"\n\n[infra]\ndefault = "staging"\nenvironments = ["dev", "staging", "production"]\n\n[providers]\ndefault = "upcloud"\nallowed = ["upcloud", "aws", "local"]\n\n[providers.upcloud]\n# Project-specific UpCloud settings\ndefault_zone = "us-nyc1"\ntemplate = "ubuntu-22.04-lts"\n\n[defaults.servers]\nplan = "2xCPU-4 GB"\nstorage = 50\nfirewall_enabled = true\n\n[security]\nenforce_https = true\nrequire_mfa = true\nallowed_cidr = ["10.0.0.0/8", "172.16.0.0/12"]\n\n[compliance]\ndata_region = "us-east"\nencryption_at_rest = true\naudit_logging = true\n\n[team]\nadmins = ["alice@company.com", "bob@company.com"]\ndevelopers = ["dev-team@company.com"]\n```\n\n### Infrastructure Configuration (`./.provisioning.toml`)\n\n**Purpose**: Infrastructure-specific overrides\n**Location**: Infrastructure directory\n**Usage**: Overrides for specific infrastructure deployments\n\n```\n# Infrastructure-specific configuration\n# Overrides for this specific infrastructure deployment\n\n[core]\nname = "production-east-provisioning"\n\n[infra]\nname = "production-east"\nenvironment = "production"\nregion = "us-east-1"\n\n[providers.upcloud]\nzone = "us-nyc1"\nprivate_network = true\n\n[providers.aws]\nregion = "us-east-1"\navailability_zones = ["us-east-1a", "us-east-1b", "us-east-1c"]\n\n[defaults.servers]\nplan = "4xCPU-8 GB"\nstorage = 100\nbackup_enabled = true\nmonitoring_enabled = true\n\n[security]\nfirewall_strict_mode = true\nencryption_required = true\naudit_all_actions = true\n\n[monitoring]\nprometheus_enabled = true\ngrafana_enabled = true\nalertmanager_enabled = true\n\n[backup]\nenabled = true\nschedule = "0 2 * * *"  # Daily at 2 AM\nretention_days = 30\n```\n\n## Environment-Specific Configuration\n\n### Development Environment (`config.dev.toml`)\n\n**Purpose**: Development-optimized settings\n**Features**: Enhanced debugging, local providers, relaxed validation\n\n```\n# Development environment configuration\n# Optimized for local development and testing\n\n[core]\nname = "provisioning-dev"\nversion = "dev-{{git.branch}}"\n\n[paths]\nbase = "{{env.PWD}}/dev-environment"\n\n[logging]\nlevel = "debug"\nconsole_output = true\nstructured_logging = true\ndebug_http = true\n\n[providers]\ndefault = "local"\n\n[providers.local]\nenabled = true\nfast_mode = true\nmock_delays = false\n\n[http]\ntimeout = 10\nretries = 1\ndebug_requests = true\n\n[cache]\nenabled = true\nttl = 60  # Short TTL for development\ndebug_cache = true\n\n[development]\nauto_reload = true\nhot_reload_templates = true\nvalidate_strict = false\nexperimental_features = true\ndebug_mode = true\n\n[orchestrator]\nenabled = true\nport = 8080\ndebug = true\nfile_watcher = true\n\n[testing]\nparallel_tests = true\ncleanup_after_tests = true\nmock_external_apis = true\n```\n\n### Testing Environment (`config.test.toml`)\n\n**Purpose**: Testing-specific configuration\n**Features**: Mock services, isolated environments, comprehensive logging\n\n```\n# Testing environment configuration\n# Optimized for automated testing and CI/CD\n\n[core]\nname = "provisioning-test"\nversion = "test-{{build.timestamp}}"\n\n[logging]\nlevel = "info"\ntest_output = true\ncapture_stderr = true\n\n[providers]\ndefault = "local"\n\n[providers.local]\nenabled = true\nmock_mode = true\ndeterministic = true\n\n[http]\ntimeout = 5\nretries = 0\nmock_responses = true\n\n[cache]\nenabled = false\n\n[testing]\nisolated_environments = true\ncleanup_after_each_test = true\nparallel_execution = true\nmock_all_external_calls = true\ndeterministic_ids = true\n\n[orchestrator]\nenabled = false\n\n[validation]\nstrict_mode = true\nfail_fast = true\n```\n\n### Production Environment (`config.prod.toml`)\n\n**Purpose**: Production-optimized settings\n**Features**: Performance optimization, security hardening, comprehensive monitoring\n\n```\n# Production environment configuration\n# Optimized for performance, reliability, and security\n\n[core]\nname = "provisioning-production"\nversion = "{{release.version}}"\n\n[logging]\nlevel = "warn"\nstructured_logging = true\nsensitive_data_filtering = true\naudit_logging = true\n\n[providers]\ndefault = "upcloud"\n\n[http]\ntimeout = 60\nretries = 5\nconnection_pool = 20\nkeep_alive = true\n\n[cache]\nenabled = true\nttl = 3600\nsize_limit = "500 MB"\npersistence = true\n\n[security]\nstrict_mode = true\nencrypt_at_rest = true\nencrypt_in_transit = true\naudit_all_actions = true\n\n[monitoring]\nmetrics_enabled = true\ntracing_enabled = true\nhealth_checks = true\nalerting = true\n\n[orchestrator]\nenabled = true\nport = 8080\nbind = "0.0.0.0"\nworkers = 4\nmax_connections = 100\n\n[performance]\nparallel_operations = true\nbatch_operations = true\nconnection_pooling = true\n```\n\n## User Overrides and Customization\n\n### Personal Development Setup\n\n**Creating User Configuration**:\n\n```\n# Create user config directory\nmkdir -p ~/.config/provisioning\n\n# Copy template\ncp src/provisioning/config-examples/config.user.toml ~/.config/provisioning/config.toml\n\n# Customize for your environment\n$EDITOR ~/.config/provisioning/config.toml\n```\n\n**Common User Customizations**:\n\n```\n# Personal configuration customizations\n\n[paths]\nbase = "{{env.HOME}}/dev/provisioning"\n\n[development]\neditor = "code"\nauto_backup = true\nbackup_interval = "1h"\n\n[git]\nauto_commit = false\ncommit_template = "[{{env.USER}}] {{change.type}}: {{change.description}}"\n\n[providers.upcloud]\napi_key = "{{env.UPCLOUD_API_KEY}}"\napi_secret = "{{env.UPCLOUD_API_SECRET}}"\ndefault_zone = "de-fra1"\n\n[shortcuts]\n# Custom command aliases\nquick_server = "server create {{name}} 2xCPU-4 GB --zone us-nyc1"\ndev_cluster = "cluster create development --infra {{env.USER}}-dev"\n\n[notifications]\ndesktop_notifications = true\nsound_notifications = false\nslack_webhook = "{{env.SLACK_WEBHOOK_URL}}"\n```\n\n### Workspace-Specific Configuration\n\n**Workspace Integration**:\n\n```\n# Workspace-aware configuration\n# workspace/config/developer.toml\n\n[workspace]\nuser = "developer"\ntype = "development"\n\n[paths]\nbase = "{{workspace.root}}"\nextensions = "{{workspace.root}}/extensions"\nruntime = "{{workspace.root}}/runtime/{{workspace.user}}"\n\n[development]\nworkspace_isolation = true\nper_user_cache = true\nshared_extensions = false\n\n[infra]\ncurrent = "{{workspace.user}}-development"\nauto_create = true\n```\n\n## Validation and Error Handling\n\n### Configuration Validation\n\n**Built-in Validation**:\n\n```\n# Validate current configuration\nprovisioning validate config\n\n# Validate specific configuration file\nprovisioning validate config --file config.dev.toml\n\n# Show configuration with validation\nprovisioning config show --validate\n\n# Debug configuration loading\nprovisioning config debug\n```\n\n**Validation Rules**:\n\n```\n# Configuration validation in Nushell\ndef validate_configuration [config: record] -> record {\n    let errors = []\n\n    # Validate required fields\n    if not ("paths" in $config and "base" in $config.paths) {\n        $errors = ($errors | append "paths.base is required")\n    }\n\n    # Validate provider configuration\n    if "providers" in $config {\n        for provider in ($config.providers | columns) {\n            if $provider == "upcloud" {\n                if not ("api_key" in $config.providers.upcloud) {\n                    $errors = ($errors | append "providers.upcloud.api_key is required")\n                }\n            }\n        }\n    }\n\n    # Validate numeric values\n    if "http" in $config and "timeout" in $config.http {\n        if $config.http.timeout <= 0 {\n            $errors = ($errors | append "http.timeout must be positive")\n        }\n    }\n\n    {\n        valid: ($errors | length) == 0,\n        errors: $errors\n    }\n}\n```\n\n### Error Handling\n\n**Configuration-Driven Error Handling**:\n\n```\n# Never patch with hardcoded fallbacks - use configuration\ndef get_api_endpoint [provider: string] -> string {\n    # Good: Configuration-driven with clear error\n    let config_key = $"providers.($provider).api_url"\n    let endpoint = try {\n        get-config-required $config_key\n    } catch {\n        error make {\n            msg: $"API endpoint not configured for provider ($provider)",\n            help: $"Add '($config_key)' to your configuration file"\n        }\n    }\n\n    $endpoint\n}\n\n# Bad: Hardcoded fallback defeats IaC purpose\ndef get_api_endpoint_bad [provider: string] -> string {\n    try {\n        get-config-required $"providers.($provider).api_url"\n    } catch {\n        # DON'T DO THIS - defeats configuration-driven architecture\n        "https://default-api.com"\n    }\n}\n```\n\n**Comprehensive Error Context**:\n\n```\ndef load_provider_config [provider: string] -> record {\n    let config_section = $"providers.($provider)"\n\n    try {\n        get-config-section $config_section\n    } catch { |e|\n        error make {\n            msg: $"Failed to load configuration for provider ($provider): ($e.msg)",\n            label: {\n                text: "configuration missing",\n                span: (metadata $provider).span\n            },\n            help: [\n                $"Add [$config_section] section to your configuration",\n                "Example configuration files available in config-examples/",\n                "Run 'provisioning config show' to see current configuration"\n            ]\n        }\n    }\n}\n```\n\n## Interpolation and Dynamic Values\n\n### Interpolation Syntax\n\n**Supported Interpolation Variables**:\n\n```\n# Environment variables\nbase_path = "{{env.HOME}}/provisioning"\nuser_name = "{{env.USER}}"\n\n# Configuration references\ndata_path = "{{paths.base}}/data"\nlog_file = "{{paths.logs}}/{{core.name}}.log"\n\n# Date/time values\nbackup_name = "backup-{{now.date}}-{{now.time}}"\nversion = "{{core.version}}-{{now.timestamp}}"\n\n# Git information\nbranch_name = "{{git.branch}}"\ncommit_hash = "{{git.commit}}"\nversion_with_git = "{{core.version}}-{{git.commit}}"\n\n# System information\nhostname = "{{system.hostname}}"\nplatform = "{{system.platform}}"\narchitecture = "{{system.arch}}"\n```\n\n### Complex Interpolation Examples\n\n**Dynamic Path Resolution**:\n\n```\n[paths]\nbase = "{{env.HOME}}/.local/share/provisioning"\nconfig = "{{paths.base}}/config"\ndata = "{{paths.base}}/data/{{system.hostname}}"\nlogs = "{{paths.base}}/logs/{{env.USER}}/{{now.date}}"\nruntime = "{{paths.base}}/runtime/{{git.branch}}"\n\n[providers.upcloud]\ncache_path = "{{paths.cache}}/providers/upcloud/{{env.USER}}"\nlog_file = "{{paths.logs}}/upcloud-{{now.date}}.log"\n```\n\n**Environment-Aware Configuration**:\n\n```\n[core]\nname = "provisioning-{{system.hostname}}-{{env.USER}}"\nversion = "{{release.version}}+{{git.commit}}.{{now.timestamp}}"\n\n[database]\nname = "provisioning_{{env.USER}}_{{git.branch}}"\nbackup_prefix = "{{core.name}}-backup-{{now.date}}"\n\n[monitoring]\ninstance_id = "{{system.hostname}}-{{core.version}}"\ntags = {\n    environment = "{{infra.environment}}",\n    user = "{{env.USER}}",\n    version = "{{core.version}}",\n    deployment_time = "{{now.iso8601}}"\n}\n```\n\n### Interpolation Functions\n\n**Custom Interpolation Logic**:\n\n```\n# Interpolation resolver\ndef resolve_interpolation [template: string, context: record] -> string {\n    let interpolations = ($template | parse --regex '\{\{([^}]+)\}\}')\n\n    mut result = $template\n\n    for interpolation in $interpolations {\n        let key_path = ($interpolation.capture0 | str trim)\n        let value = resolve_interpolation_key $key_path $context\n\n        $result = ($result | str replace $"{{($interpolation.capture0)}}" $value)\n    }\n\n    $result\n}\n\ndef resolve_interpolation_key [key_path: string, context: record] -> string {\n    match ($key_path | split row ".") {\n        ["env", $var] => ($env | get $var | default ""),\n        ["paths", $path] => (resolve_path_key $path $context),\n        ["now", $format] => (resolve_time_format $format),\n        ["git", $info] => (resolve_git_info $info),\n        ["system", $info] => (resolve_system_info $info),\n        $path => (get_nested_config_value $path $context)\n    }\n}\n```\n\n## Migration Strategies\n\n### ENV to Config Migration\n\n**Migration Status**: The system has successfully migrated from ENV-based to config-driven architecture:\n\n**Migration Statistics**:\n\n- **Files Migrated**: 65+ files across entire codebase\n- **Variables Replaced**: 200+ ENV variables → 476 config accessors\n- **Agent-Based Development**: 16 token-efficient agents used\n- **Efficiency Gained**: 92% token efficiency vs monolithic approach\n\n### Legacy Support\n\n**Backward Compatibility**:\n\n```\n# Configuration accessor with ENV fallback\ndef get-config-with-env-fallback [\n    config_key: string,\n    env_var: string,\n    default: string = ""\n] -> string {\n    # Try configuration first\n    let config_value = try {\n        get-config-value $config_key\n    } catch { null }\n\n    if $config_value != null {\n        return $config_value\n    }\n\n    # Fall back to environment variable\n    let env_value = ($env | get $env_var | default null)\n    if $env_value != null {\n        return $env_value\n    }\n\n    # Use default if provided\n    if $default != "" {\n        return $default\n    }\n\n    # Error if no value found\n    error make {\n        msg: $"Configuration value not found: ($config_key)",\n        help: $"Set ($config_key) in configuration or ($env_var) environment variable"\n    }\n}\n```\n\n### Migration Tools\n\n**Available Migration Scripts**:\n\n```\n# Migrate existing ENV-based setup to configuration\nnu src/tools/migration/env-to-config.nu --scan-environment --create-config\n\n# Validate migration completeness\nnu src/tools/migration/validate-migration.nu --check-env-usage\n\n# Generate configuration from current environment\nnu src/tools/migration/generate-config.nu --output-file config.migrated.toml\n```\n\n## Troubleshooting\n\n### Common Configuration Issues\n\n#### Configuration Not Found\n\n**Error**: `Configuration file not found`\n\n```\n# Solution: Check configuration file paths\nprovisioning config paths\n\n# Create default configuration\nprovisioning config init --template user\n\n# Verify configuration loading order\nprovisioning config debug\n```\n\n#### Invalid Configuration Syntax\n\n**Error**: `Invalid TOML syntax in configuration file`\n\n```\n# Solution: Validate TOML syntax\nnu -c "open config.user.toml | from toml"\n\n# Use configuration validation\nprovisioning validate config --file config.user.toml\n\n# Show parsing errors\nprovisioning config check --verbose\n```\n\n#### Interpolation Errors\n\n**Error**: `Failed to resolve interpolation: {{env.MISSING_VAR}}`\n\n```\n# Solution: Check available interpolation variables\nprovisioning config interpolation --list-variables\n\n# Debug specific interpolation\nprovisioning config interpolation --test "{{env.USER}}"\n\n# Show interpolation context\nprovisioning config debug --show-interpolation\n```\n\n#### Provider Configuration Issues\n\n**Error**: `Provider 'upcloud' configuration invalid`\n\n```\n# Solution: Validate provider configuration\nprovisioning validate config --section providers.upcloud\n\n# Show required provider fields\nprovisioning providers upcloud config --show-schema\n\n# Test provider configuration\nprovisioning providers upcloud test --dry-run\n```\n\n### Debug Commands\n\n**Configuration Debugging**:\n\n```\n# Show complete resolved configuration\nprovisioning config show --resolved\n\n# Show configuration loading order\nprovisioning config debug --show-hierarchy\n\n# Show configuration sources\nprovisioning config sources\n\n# Test specific configuration keys\nprovisioning config get paths.base --trace\n\n# Show interpolation resolution\nprovisioning config interpolation --debug "{{paths.data}}/{{env.USER}}"\n```\n\n### Performance Optimization\n\n**Configuration Caching**:\n\n```\n# Enable configuration caching\nexport PROVISIONING_CONFIG_CACHE=true\n\n# Clear configuration cache\nprovisioning config cache --clear\n\n# Show cache statistics\nprovisioning config cache --stats\n```\n\n**Startup Optimization**:\n\n```\n# Optimize configuration loading\n[performance]\nlazy_loading = true\ncache_compiled_config = true\nskip_unused_sections = true\n\n[cache]\nconfig_cache_ttl = 3600\ninterpolation_cache = true\n```\n\nThis configuration management system provides a robust, flexible foundation that supports development workflows while maintaining production\nreliability and security requirements.
