booster icon indicating copy to clipboard operation
booster copied to clipboard

Add Configuration Management System with Azure App Configuration Integration

Open MarcAstr0 opened this issue 8 months ago • 9 comments

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 ConfigurationAdapter for 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:

  1. External providers (Azure App Configuration, custom)
  2. Booster config.env values
  3. System environment variables

Checks

  • [x] Project Builds
  • [x] Project passes tests and checks
  • [x] Updated documentation accordingly

MarcAstr0 avatar Aug 06 '25 22:08 MarcAstr0

/integration sha=5e7e06b

MarcAstr0 avatar Aug 06 '25 22:08 MarcAstr0

:hourglass: Integration tests are running...

Check their status here 👈

github-actions[bot] avatar Aug 06 '25 22:08 github-actions[bot]

:white_check_mark: Integration tests have finished successfully!

github-actions[bot] avatar Aug 06 '25 23:08 github-actions[bot]

/integration sha=bb40086

MarcAstr0 avatar Aug 07 '25 17:08 MarcAstr0

:hourglass: Integration tests are running...

Check their status here 👈

github-actions[bot] avatar Aug 07 '25 17:08 github-actions[bot]

:white_check_mark: Integration tests have finished successfully!

github-actions[bot] avatar Aug 07 '25 18:08 github-actions[bot]

/integration sha=42e28c6

MarcAstr0 avatar Aug 11 '25 13:08 MarcAstr0

:hourglass: Integration tests are running...

Check their status here 👈

github-actions[bot] avatar Aug 11 '25 13:08 github-actions[bot]

:white_check_mark: Integration tests have finished successfully!

github-actions[bot] avatar Aug 11 '25 14:08 github-actions[bot]