All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Accept minimum/maximum bounds for configuration settings from the configuration file
- Store configuration settings minimum/maximum bounds in the database, so other updaters may respect them
- Respect the target version settings bounds during a migration operation
- Report configuration settings bounds whenever the settings are reported themselves
- Demonstrate how the standard
log/slog
structured logging may be used
- Avoid updating settings in the database if they cannot be used for instantiation of new use cases
- Maintain mutable settings in the database, so configuration file settings may be overridden dynamically
- Add two REST APIs for querying visible (including immutable) settings and updating the mutable (including visible, but not immutable) settings
- Support in-database mutable settings during the multi-database migration operation
- Reload instantiated use case objects whenever the mutable settings are updated
- Preserve comments in the configuration YAML files during the migration operation
- Return a bool ok flag from the DserXReq methods
- Support versioning of configuration files and database schema
- Demonstrate a multi-database atomic migration scheme with up/down migrations
- Demonstrate the Clean Architecture with a cars riding/parking example
- Support Gin Gonic framework for the REST APIs implementation in adapters layer
- Support GORM (+pgx) for interaction with a PostgreSQL DBMS server in adapters layer
- Support parsing a yaml configuration file and instantiating other components based on the configuration settings from the adapters layer
- Add Makefile targets for linting the project with staticcheck and reive
- Add integration tests using podman-based postgres containers
- Document Clean Architecture layers in README and main ideas as godocs