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