Environments

Environments represent your deployment pipeline: production, staging, or testing. CloudBees Feature Management supports working with multiple environments. You can create an unlimited number of environments. CloudBees Feature Management also allows you to easily clone feature flags configuration between environments so anything done in staging or testing can easily be moved to production (and vice versa).

Environments share the following:

  • Flags

  • Target groups

  • Custom properties

Environments do not share the following:

  • Configuration

  • Audit logs

  • Permissions

Production is the default environment. You can not change the name nor delete the Production environment.

Flags in environments

Each environment has its own overview page that lists all flags used in that environment. You can use this page to understand feature flags usage across each environment.

Active flags are listed on the Flags tab; Hidden Flags tab lists the hidden flags. You can search for a specific flag using the search box. You can also use the Filters to refine the search based upon targeting, labels, namespace, and features.

Production environment overview
Figure 1. Flags in environments > Production

Each row in the table represents a feature flag. The table below explains each column.

Table 1. Environments overview columns
Column heading Description

Name

Flag name. You can name a flag using a regular name or use a <name>.<flagname>, where <name> becomes a namespace. You can filter flags by namespace.

Labels

Lists any labels associated with a flag.

Created

How long it has been since the flag was created.

Updated

How long since the flag was updated.

Impressions

Measures how many times a flag has been evaluated in a specific time frame, and the value that users get. Selecting Impressions provides a detailed view. If a flag’s impressions are at 100%, then the feature flag may not be needed and can be removed.

Feature

Lists any features associated with a flag.

Filtering flags

You can use the Filters option on an environment’s overview page to filter flags by targeting status, labels, namespace, and features.

Filtering is a flag management tool. Filtering can help you highlight flags that are no longer needed by looking for flags that have 100% or 0% usage, for example, or flags that were never used.

Flag filters
Figure 2. Flag filters

To use filtering:

  1. Select an environment’s overview page by selecting Flags in environments  Environment name.

  2. Select Filters next to the search box.

  3. Choose the filter options to apply using either the drop-downs or by typing.

  4. Select Apply filters to filter the list of flags on the environment overview.

Feature flag status

For each environment we report a status for each feature flag. The feature flag status is there to help you understand where this feature flag is in its lifecycle. The flag status should help with questions such as:

  • Is this is a new flag which is not deployed yet?

  • Is it an old flag that is not being used?

  • Is this a flag which is serving everyone the same value and can be removed?

Flag status is derived from the flags’s impression data.

Each Flag can be in 5 states:

  1. Active - Received impressions with different values over the last seven days

  2. Stale - Received impressions over the last seven days, but all had the same value

  3. Inactive - Received no impressions over the last seven days

  4. Setup - No impressions received yet

  5. Permanent - A permanent (long lived) flag, ignoring impression data

Feature flags status

When creating a flag, you can set it to Permanent status and ignore impression data, this is usually done when the flag is a configuration / "long lived" flag (e.g: timeout, URLs, etc) You can also set a flag to Permanent status after it was created via the Flag setting tab.

CloudBees Feature Management TTL of impression data is 45 days. This means that old flags (before this capabilitiy was released) with no imporession data in the last 45 days, would be labeled as Inactive, altough they might have not gotten any impression data ever (Setup status). This is a temporary state which only applies to older flags as described above.

Working with environments

You can see an overview of all feature flags for all environments by clicking Flags overview in the navigation bar on the left. For each environment, you will see the targeting status and the latest value configured.

All environments are listed under Flags in environments in the left navigation. Selecting any of these environments displays a list of flags, including their labels, when they were created, updated, any impressions, and if they are linked to a feature.

Using the environment’s overview screen, you can create flags and modify flags, however, you can not modify the environment itself.

You can create and delete environments using App Settings  Environments.

Creating an environment

To create an environment:

  1. From App Settings  Environments, select Add New Environment.

  2. Enter a name for the environment in the Name text box and an optional description for the environment in the Description text box.

  3. Click Generate Key to proceed.

  4. The dialog will now show you your SDK key for this environment. If you want to copy it to the clipboard, you can click the Copy link at the right of the text box (or you can highlight the text and copy manually).

  5. When you’re done, select Close.

The new environment is now listed in the Environments tab and in the navigation bar on the left.

Modifying an environment

To change an environment:

  1. From App Settings  Environments, select the row of the environment that you wish to modify.

  2. Update the Name or Description as desired.

  3. Select Save Changes to preserve any modifications or Cancel to discard the changes.

Any changes are reflected in the Environments tab. Any changes you made to its name appear in the left navigation bar.

Environment left navigation menu order can also be changed; using the left drag and drop icon re-arrange the order of the environments as needed.

Deleting an environment

To delete an environment:

  1. From App Settings > Environments tab, move your mouse over the row of the environment you want to delete.

  2. Select the Delete link with a trash can appears.

  3. On the warning message select Delete to confirm removing the environment.

The environment is now removed from the Environments tab and from the navigation bar on the left.

You cannot delete the default environment, Production.

Cloning feature flags configuration across environments

To clone a feature flag configurations across environments:

  1. Navigate to the environment and feature flag you wish to clone.

  2. On the Flag Details screen, select the Settings tab at the top.

  3. Select the Clone To Environment link and choose the environment to which you wish to clone it.

  4. If the feature flag already exists in the target environment, the dialog will prompt you to confirm that you want to overwrite the existing feature flag configuration. If so, select Override Flag. Otherwise, select Cancel.

  5. If the feature flag does not yet exist in the target environment, to clone it, pick the environment you want to clone it to from the drop-down in the dialog box. To proceed, click the Clone Flag button. Otherwise, click Cancel.

The cloned configuration is now on the destination environment.

Cloning a feature flag configuration copies the feature flag rules, targeting state, and hidden/visible state.

Hiding flags in an environment

If you no longer use a flag, you can hide it. The flag still works and is available to users. You can also delete a flag if it is no longer used.

The Hide Flag function exists on the environment level. You need to have Full Access permission for the environment to hide a flag. Otherwise, if you have Read Only access, you can only select Clone to Environment and Hide Flag is not available via the three vertical dots menu on the Flags in environments screen.

To hide a flag:

  1. Select Flags in environments and then environment where you wish to remove the flag.

  2. Locate the name of the flag in the list.

  3. Select the three vertical dots menu and choose Hide Flag.

  4. Confirm the action.