Feature Request: Enabling configuration of Dataverse using simple files (TOML) #10684
Labels
Component: Code Infrastructure
formerly "Feature: Code Infrastructure"
Component: Containers
Anything related to cloudy Dataverse, shipped in containers.
Feature: Installation Guide
Feature: Installer
Size: 10
A percentage of a sprint. 7 hours.
Status: Needs Input
Applied to issues in need of input from someone currently unavailable
Type: Feature
a feature request
User Role: Sysadmin
Installs, upgrades, and configures the system, connects via ssh
Overview of the Feature Request
Let's enable using a TOML file to configure JVM options for starters. Ideally extend to configuring "DB" options and REST API DTO-based options, too, providing a unified approach to how one configures a Dataverse instance. Basically, enable sth like
/etc/dataverse/config.toml
in the spirit of many UNIX/Linux services.What kind of user is the feature intended for?
Sysadmin
What inspired the request?
Many not-so-experienced Dataverse admins have a hard time setting up their JVM options right.
With our now ever growing list of options (recently the PID providers were added), it's easy to end up with a mess of options.
It's friggin' complicated!
DB options these days cannot be provisioned from the same place as JVM options. Having to very different ways of configuring things as well as adding API endpoints for model based config approaches (auth, licenses, ...) is not making it easier for newbies and non-superhero-admins to follow.
Even though our JVM options start to be scoped and hierarchical, in reality the configuration requires a flat structure as system properties in domain.xml, long env var names, etc. There is one exception: the Dir Config Source allows to create folders with files. But it seems hardly used in classic installations and is clearly geared towards container usage.
Enabling configuration file(s) allows to provision a Dataverse instance from configuration management system in a much easier way. There is loads of tooling around to manage TOML files in idempotent ways, while editing domain.xml is a lot harder. Humans tend to like TOML more than YAML and even more than XML. (Let alone the fact that domain.xml is a VERY large and complex file.) Serving one or more of these files from a K8s ConfigMap, maybe even generated by a K8s Operator is simple and makes people have more "control" over their deployments.
What existing behavior do you want changed?
I want to be able to configure JVM options using a TOML file. Here's an example.
Instead of configuring all these options:
Let's put this into a TOML file:
Isn't this a lot easier to read and maintain? (It's a lot more DRY-compliant and less chatty...)
A different way to write this, which might be preffered by some is like this:
Any brand new behavior do you want to add to Dataverse?
It's not really brand new yet when talking about JVM options. It would be brand new when talking about DB options and stuff like auth providers, licenses etc (which are configured by REST API calls with a DTO).
Any open or closed issues related to this feature request?
The text was updated successfully, but these errors were encountered: