Configuration Overview
Helm Chart Configurations
The document pages in this section cover NotifyBC app level configurations only. If your NotifyBC is deployed to Kubernetes using Helm, you can also customize infrastructure level configurations.
There are two types of configurations - static and dynamic. Static configurations are defined in files or environment variables, requiring restarting NotifyBC to take effect, whereas dynamic configurations are defined in databases and updates take effect immediately.
Static Configurations
Most static configurations are specified in file src/config.ts. If you need to change, instead of updating src/config.ts file, create local file src/config.local.js or environment specific file src/config.<env>.js, which is only included when environment variable NODE_ENV equals <env>. Besides js, ts and json file extensions are also supported. The rest of the documentation assumes the file extension is js. Content in these files are deeply merged in following ascending precedence
- default file /src/config.ts
- environment specific file src/config.<env>.js
- local file src/config.local.js
Run build script whenever changing file in /src
Every time a file under src, including config files, is updated, run npm run build
before restarting NotifyBC to take effect.
Following configs should be customized per installation
In addition, if installing from source code
Customizing other configs only if needed.
Dynamic Configurations
Dynamic configs are managed using REST configuration api. At the time of installing NotifyBC, no dynamic configs need to be setup.
Why Dynamic Configs?
Dynamic configs are needed in cases such as
- to allow define service-specific configs such as message templates
- in a multi-node deployment, configs can be generated by one node (typically primary) and shared with other nodes