Configuration Parameters are defined per application version, ensuring consistency across builds while allowing for environment-specific overrides. These parameters can be used across various components, such as business rules, UI elements, integration designer, and gateways.


Default and override values

  • Default Value: Defined during parameter creation and included in the application build. It serves as the fallback value when no environment-specific override is set.
  • Override Value: A value defined post-deployment for a specific environment. Overrides take precedence during runtime.

For details on configuring runtime overrides, see:

Configuration Parameters Overrides


Types of configuration parameters

Configuration parameters are defined as key-value pairs and support the following types:

Value

A static value directly used by the application. Suitable for settings that do not change across environments.

  • Use Cases:

    • Feature flags to toggle functionality (e.g., enabling/disabling insurance sales in a customer dashboard).
    • Email addresses for notification recipients.
    • Homebank redirect URLs for specific processes.
  • Example:

    • Key: officeEmail
    • Type: value
    • Value: officeEmail@office.com


Environment variable

References an external variable set by the DevOps team. These variables are defined per environment and referenced using a name convention.

  • Use Cases:

    • Environment-specific API base URLs.
    • Dynamic configuration of services or integrations.
  • Example:

    • Key: baseUrl
    • Type: environment variable
    • Value: BASE_URL (name convention pointing to an externally defined value)

Configuration details:

KeyTypeValueDescription
baseUrlenvironment variableBASE_URLA reference to the base URL configured externally by DevOps.

Example values for different environments

EnvironmentExternal Variable NameActual Value
DevelopmentBASE_URLhttps://dev.example.com/api
QABASE_URLhttps://qa.example.com/api
ProductionBASE_URLhttps://api.example.com

Secret environment variable

Used for sensitive data like passwords, API keys, or credentials. These values are securely managed by DevOps and referenced using a name convention.

  • Use Cases:

    • Passwords or tokens for integrations.
    • Secure configuration of external services in the integration designer.
  • Example:

    • Key: dbPassword
    • Type: secret environment variable
    • Value: DB_PASSWORD

Use cases for configuration parameters

Configuration parameters simplify the management of environment-specific or dynamic settings across multiple application components:

  1. Business Rules:
    • Define dynamic logic based on parameters such as feature toggles or environment-specific conditions.
  2. UI Elements:
    • Configure content dynamically based on the environment (e.g., URLs for redirects, conditional features).
  3. Integration Designer:
    • Reference the token parameter.

  1. Gateways:
    • Dynamically manage routing and decision-making logic using environment-specific parameters.

Adding a configuration parameter

To add a new configuration parameter:

  1. Navigate to Your ApplicationConfiguration Parameters.
  2. Click New Parameter and provide the following:
    • Key: Name of the parameter.
    • Type: Select value, environment variable, or secret environment variable.
    • Value:
      • For value: Enter the static value.
      • For environment variable or secret environment variable: Enter the agreed name convention.
  3. Click Save to include the parameter in the application build.


Technical notes and best practices

Security

  • Sensitive Values (ENV_SECRET):
    • Store and manage securely.
    • Do not display in the frontend or expose via public APIs.
    • Avoid logging sensitive information.

Environment-specific updates

  • Environment variable updates (ENV/ENV_SECRET) are managed by DevOps.
  • Updates may require service restarts unless a caching or real-time mechanism (e.g., change streams) is implemented.

Reserved keys

  • Certain keys are reserved for system use (e.g., processInstanceId). Avoid using reserved keys for custom configurations.