Feature Manger
Use the feature manager to control which Enterprise 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.
- Enabled by Default: These features do not need additional configuration to be useful. E.g. Health Checks operate without any need for specific configs.
- Disabled by Default: These features require specific configuration to function. E.g. the super admin feature.
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:
- Initialization with Feature Catalogs: Services are passed one or more Feature Catalogs when initialized.
- Determination of Active Features: The initializer identifies explicitly enabled or disabled features and determines the default states of optional features.
- 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.