Open delvh opened 1 year ago
Ideally I would like to see a config override table (simple key-value) being written into SQL because writing into local config will not work properly in distributed setups unless all nodes do it which then presents the problem of coordinating the nodes. It's not something one wants to get into.
Said config override table could be shown on the admin ui and admins could be requested to persist the changed settings in their config. Then, once the config table and config are equal, delete the value from the config table.
Yep, additionally, we already have always write access to the database. That's another benefit in this case.
Problem derivation
At the moment, we always need to delegate config changes to the admins of an instance, and refuse to start otherwise. The reason for that is two-fold:
app.ini
or not, i.e. Docker users and Kubernetes users like to use theirapp.ini
read only once it is initialized.But what if we would know if we can modify the config? Then we could automate a lot of things that are currently impossible. So, what I'm proposing is the following:
Solution
As a first step to automating config changes, we can add a
PROGRAM_MAY_MODIFY_SETTINGS
setting (I guess in the default section) that istrue
by default (the docker image and helm chart would set it to false by default). It has the following meaning:false
: No change to nowtrue
:INSTALL_LOCK=false
, no change to now, so treat it just likefalse
aboveAdvantages