Feature Manger

Use the feature manager to control which issuer API features are enabled at service startup. This reduces complexity and the risk of misconfigurations.

Feature Types

The feature manager offers two types Base and Optional.

Base Features

Base features are generally always enabled and do not require additional configuration in most cases. They provide critical functionalities expected to be available by default.

Optional Features

Optional features can either be enabled or disabled based on requirements.

  1. Enabled by Default: These features do not need additional configuration to be useful. E.g. Health Checks operate without any need for specific configs.
  2. Disabled by Default: These features require specific configuration to function. E.g. the Entra Integration needs access credentials and API URLs.

Each feature may have zero, one, or multiple configurations associated with it.

How the Feature Manager Works

The Feature Manager ensures efficient and error-free initiation of services through the following steps:

  1. Initialization with Feature Catalogs: Services are passed one or more Feature Catalogs when initialized.
  2. Determination of Active Features: The initializer identifies explicitly enabled or disabled features and determines the default states of optional features.
  3. Loading Configurations: Configurations for base features and explicitly enabled optional features are loaded, including default-enabled optional features.

This process results in:

  • Loading only necessary configurations, reducing mental complexity and avoiding unused features.
  • Minimizing required configuration through defaults, easing the setup process.
  • Preventing invalid configurations from reaching production by validating during initialization.

Feature Configuration

Configure features by updating the _features.conf file as explained here. A list of available features can be found here.