Note
These docs are a work in progress. While conceptually correct, the diagrams/code samples on this page might not be 100% in line with the current implementation in Copper.
Service configuration
Context and problem
Application configuration has always been done using .config
files. As the number of services started to grow, maintaining the configuration of each service was becoming a hassle. especially considering that each configuration, unit test, integration test, production, was specified separately. For configuration that was uniform across all services there was no way of simply setting a value which would be read in all setups.
Solution
Implement service configuration using the Microsoft.Extensions.Configuration
reference and allowing for multiple input sources for configuration. Including sources that can be shared across multiple services, such as Azure Key Vault or Azure App Configuration Service.
By centralizing the configuration all services read from the same source, thus making it easy to manage settings across services while still allowing for local override, or overrides during development even from different sources such as local files, in-memory objects, etc. reference