Using flag dependencies

Flag dependencies allow a Flag value to be dependent on another Flag value.

Example

Feature B can only work with a new backend API version (feature A). Define feature B deployment with a dependency. Feature B is TRUE only if feature A is TRUE.

Setting up a flag dependency

  • Setting up a flag dependency is done on the Audience tab in a Feature Flag.

  • Add a new rule (or change an existing one).

  • All release rules will allow you to chose another flag as release criteria (in addition to Application Version, Property and Target Group).

  • At each rule, the second dropbox menu will allow you to either choose a Property, Target Group or Flags.

  • After selecting Flags a new dropbox will appear with all feature flags and can be used as a dependent flag.

  • Select the feature flag which the current flag is dependent on, and select its value.

Deleting feature flags that have dependencies

  • Feature flags cannot be deleted if another feature flag is depending on it. If you try to delete a feature flag which has dependencies, the system will display a message with the feature flags that are using the dependent flag.

Runtime workflow

Scenario - Flag B is dependent on Flag A

  • When Flag B is evaluated, Flag A is also evaluated.

  • Server SDK: the same context that the developer sent to Flag B will also be passed to Flag A.

  • Client SDK: both flags will be frozen after Flag B evaluation.

  • Impression handler is called for both Flags A and B.

Circular flag dependencies

CloudBees Feature Flags will block automatically a configuration that would lead to a circular dependency, so you don’t have to worry about this