Add Configuration Management System with Azure App Configuration Integration
Description
This PR introduces a flexible configuration management system for Booster applications, supporting multi-tier configuration resolution and external configuration providers. The system enables applications to retrieve configuration values from multiple sources with automatic fallback, allowing for dynamic configuration updates without requiring code changes or redeployments.
The implementation includes seamless integration with Azure App Configuration, automatic infrastructure provisioning, label-based environment isolation, and comprehensive documentation.
Changes
Core Framework:
- Add configuration service interfaces and resolvers to framework-core
- Add configuration provider types to framework-types
- Implement multi-tier configuration resolution with priority system
Azure Provider:
- Add
ConfigurationAdapterfor Azure App Configuration integration - Implement automatic configuration provider initialization
- Add infrastructure provisioning for Azure App Configuration resources
Configuration API:
-
resolveConfigurationValue()- Simple value resolution -
resolveConfigurationWithSource()- Resolution with source tracking -
config.enableAzureAppConfiguration()- Enable Azure integration -
config.addConfigurationProvider()- Add custom providers
Infrastructure:
- Automatic Azure App Configuration resource creation via Terraform
- Managed identity and access key authentication setup
- Environment variable injection for connection details
Documentation:
- Complete configuration management guide with examples
- Azure App Configuration integration documentation
- Label-based environment isolation patterns
- Custom provider implementation guide
Priority Hierarchy:
- External providers (Azure App Configuration, custom)
- Booster config.env values
- System environment variables
Checks
- [x] Project Builds
- [x] Project passes tests and checks
- [x] Updated documentation accordingly
/integration sha=5e7e06b
:white_check_mark: Integration tests have finished successfully!
/integration sha=bb40086
:white_check_mark: Integration tests have finished successfully!
/integration sha=42e28c6
:white_check_mark: Integration tests have finished successfully!