Im looking for a tool that will allow my company to manage configuration and user preferences for both our server and desktop applications.

We have a mix of Java, C# and Node applications, with multiple environments and regions. Our configuration is fairly complex and we are looking for something that allows us to define a base configuration, and then allow us to override certain settings on a case by case basis. e.g. suppose we have a setting 'numberOfConnections', we would want to be able to set the value globally to 10, but to be able to override it to say 5 for Production users in Sydney, 2 for anything running in the development environment, except for user jdoe, who should have a value of 10.

Ideally it would be expressed as a set of rules - conceptually:

[APP1 * * *] // Global settings for APP1
numberOfConnections: 10

[APP1 DEV * *] // Development env settings
numberOfConnections: 2

[APP1 PROD SYD *] // Sydney Production users
numberOfConnections: 5

[APP1 DEV * jdoe] // Development Settings for user jdoe
numberOfConnections: 10

Additionally we have a few other requirements:

  • It needs to have an interface that is accessible over REST (or some other open protocol)
  • It should be able to return all configuration based on a query
  • Applications will connect at startup to retrieve their configuration, getting notification of changes while the app is running would be great, but is a nice to have.
  • It needs to be flexible in how the keys are defined (APP/ENV/Region/User is just an example)
  • It needs some sort of GUI management tool for our OPS team to use (preferably web based)
  • Ideally it would be open source
  • We need to be able to run it internally on our Linux servers (i.e. not a cloud service)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.