Description
Configuration is currently too verbose, and too cluttered. It allows for too many changes, and sometimes lacks straight-forward ones. Furthermore, some options do not do anything.
This issue aims to address the mentioned issues, and to create a framework that works regardless of app context or placement.
Context
Current configuration system is cluttered, and not neatly compartmentalized, leading to some issues;
Too much configuration options in config.json.
Hard to parse, often due to heavily nested options.
Not properly split up into sub-configuration files.
Placement of configuration files is context-dependent.
Configuration is not honored everywhere, or file-dependent.
Expected Behavior
Implement new, central configuration component.
Split up several configurable components into separate files.
Load-once - use everywhere.
Expose configuration through endpoints for admins.
Honor configuration in all components.
Be working-directory / context independent.
Introduce config validation.
Reduce nesting of options.
Use Case Examples
Administrators should be able to quickly configure the service without additional documentation.
Administrators should be able to remotely read and write changes to the microservice, and optionally have the microservice reload if required.
Developers should be able to easily test and deploy states of the application, and easily extend on the system.
Requirements
[ ] Research options for configuration frameworks, or design one.
[ ] Centralize configuration in create_app application factory.
[ ] Split up configuration for components into sub-configuration files.
[ ] Introduce endpoints to read/write configuration remotely.
[ ] Research options for hot-swapping configuration files.
[ ] Implement hot-swapping configuration locally, and through endpoints.
[ ] Implement config validation.
[ ] Restructure and review configuration architecture.
Description Configuration is currently too verbose, and too cluttered. It allows for too many changes, and sometimes lacks straight-forward ones. Furthermore, some options do not do anything. This issue aims to address the mentioned issues, and to create a framework that works regardless of app context or placement.
Context Current configuration system is cluttered, and not neatly compartmentalized, leading to some issues;
config.json
.Expected Behavior
Use Case Examples
Requirements
create_app
application factory.Considerations N/A
Additional Information N/A
Dependencies N/A
Related