Configuration Overview
Helm Chart Configurations
The document pages in this section cover NoitfyBC 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.
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 master) and shared with other nodes