Configuration variables handling in camunda 7

Hi Team,

What is the best way to handle the configuration variables in camunda/camunda based java springboot applications?

Examples for different type of config valribales are given below-

  1. Environment specific- HOST(:), USERNAME(admin), PASSWORD(adminxxx)
  2. Constant values- CUSTOMER_TYPE(enterprise), RESOURCE_LIST([Laptop,Mouse,Keyboard])
  3. Business Logic Flags/Data- DISABLE_NOTIFICATION(yes/no), SKIP_XXX_SYSTEM(yes/no)

We want to update these variables if required on the fly(without restrating any apps) when in production.

Thanks,
Pradip Patil

For Point 1 - Use Springboot profile. Have a look at the framework how to define profile per environment.

For Point 2&3:
If you are running the application in container, you can create the config map and point the config map to the application properties. Later you can update the properties. I hope you are running this as POD.

I have seen organizations using Springboot relaxed binding for reading all configs via OS environment variables if they have containerized Camunda app.
This way you can inject sensitive values securely via Vault as well.
Even camunda related configuration that are not defined in your application.yml can be overridden on runtime. No need to maintaine separate files or profile.
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.external-config.typesafe-configuration-properties.relaxed-binding.environment-variables

The only downside is you have to restart pod for changes to be effective.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.