Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
there's an astonishingly silly GitHub issue thread linked in the comments of the post: https://github.com/ninja-build/ninja/issues/1482
Any link about that? Are you talking about this? https://github.com/prometheus/prometheus/issues/6047#issueco...
> Perhaps the ideal tool would allow every option to be set/changed from config file, environment and argument.
This is exactly what the most widely used golang configuration library does: https://github.com/spf13/viper
The most common problem that I've encountered with using environment variables for configuration is that developers often add them ad-hoc, in the module where the configuration is needed, making it impossible to have a clear idea of all the configurable options in a program.
The solution is not to get rid of env vars, but to have a mechanism that centralises the confirguration in one place; this way all the options are easy to locate, and they can be defined in multiple ways.
Shameless plug, FWIW: figga is my humble contribution to this area for Python: https://github.com/berislavlopac/figga