Flag configuration
Configure and control how features are delivered across different environments.
We've designed a straightforward and easy-to-use system that covers a wide range of common use cases—whether you're turning a feature on or off, or setting up conditions for specific customers or locations.
Only those assigned Owner or User permissions of a feature flag, or workspace Administrators, can access a feature flag's configuration dialog. For more information, see Flag permissions.
Basic configuration (ON or OFF)
Use basic configuration when you just need to turn features on or off in different environments without worrying about advanced scenarios.
- In the story header, click the feature flag's name.
- Find the environment you want to configure and click its current status (ON or OFF).
- From the menu, select the new status.
- Repeat steps 2-3 for any other environments you want to update.
- Click Save configuration, or click X to cancel.
- If you cancel, confirm by clicking Discard changes in the dialog that appears.
The basic configuration screen is visible for a feature flag only when no slices have been configured in any environments. You can get the same result by applying the default value to an entire environment without configuring any slices.
Advanced configuration (slicing)
If you need more control than just turning features on or off for an entire environment, you can create and manage slices—customizable subsets of data or entities within an environment.
With slices, you can fine-tune feature delivery for specific customers (for multi-tenant applications), locations, or both. This gives you more precise control.
For example, slices can be useful when you want to:
- Roll out features gradually by geography.
- Give early access to select customers or tenants.
What's a slice?
A slice is a defined subset of data or entities within an environment, based on specific conditions. You can create slices based on two attributes Customer and Location. Each slice can have up to two conditions—one for customer and one for location.
If you're working with a multi-tenant app, customers represent tenants in your system, allowing you to customize features for each tenant. In single-tenant applications, you can ignore slicing by customer and just focus on location. The location attribute is based on the IP address of the request.
How it works:
When you configure slices, you start by setting a default value for the feature flag in an environment (ON or OFF). This default value applies unless you create slices that define different values for specific subsets.
Slices are evaluated in order from top to bottom. The first slice that matches the evaluation context is applied, and any slices below it are ignored. The default value is only used if no slices match.
Configure slices for an environment
- On a feature flag's details screen, click Configure slices,
- Select the tab for the environment where you want to configure slices.
- Each environment has a default setting for the flag (ON or OFF). This value is applied unless a slice overrides it.
- Use the Attribute, Operator, and Value fields to define your slice's conditions.
- Values for Customer attributes are case-sensitive.
- For details on operators, see Available operators for Customer and Location attributes.
- To add a second condition to a slice, click the plus (+) icon next to the first condition.
- You can have up to two conditions per slice—one for Customer and one for Location.
- Conditions within a slice have an AND relationship. For example, the conditions 'Customer is ABC Electronics' and 'Location is in Canada' applies to all ABC Electronics customers in Canada.
- To add more slices, click Add another slice and repeat steps 3-5 as needed.
- To remove a condition, click the delete (trash can) icon next to it.
- To enable or disable a slice, click the slice's current status, and select ON or OFF from the menu.
- Click Save configuration.
Available operators for Customer and Location attributes
When setting up slices, you can define conditions using various operators to tailor feature delivery to specific customers or locations. Here's a quick guide to the operators available for Customer and Location attributes.
Customer
When defining a slice based on the Customer attribute, you can either manually enter customer values or choose from identifiers collected and submitted by the SDK from evaluation contexts.
The values of Customer attributes are case-sensitive!
Customer attribute operators
Operator | Match type | Example |
---|---|---|
is | Exact match | Customer is 'Harmony Hardware'. The slice only applies to Harmony Hardware. |
is not | Exact match (exclusion) | Customer is not 'Vintage Soundworks'. The slice includes all companies except Vintage Soundworks. |
contains | Substring match | Customer contains 'tone'. The slice includes customers with 'tone' in their name, such as 'Electrotone Studies'. The company 'ToneCraft Instruments' is not included because the match is case-sensitive. |
does not contain | Substring match | Customer does not contain 'electronics'. The slice includes customers that don't include the string 'electronics' anywhere in their name. |
is one of | Exact match | Customer is one of 'Sonic Relics', 'Golden Era Soundworks', 'Vinyl Vibe Audio'. The slice includes only the specified customers. |
is not one of | Exact match (exclusion) | Customer is not one of of 'Sonic Relics', 'Golden Era Soundworks', 'Vinyl Vibe Audio'. The slice includes all customers except those specified. |
Location
When configuring slices based on the Location attribute, you can select regions that range from continents to subcontinents, countries, or smaller areas like provinces or states. The location is based on the IP address of the request.
Search tip
You can also search by ISO codes (for example, 'BC' for British Columbia) even if the abbreviation doesn’t appear in the list.
Location attribute operators
Match type | Match type | Example |
---|---|---|
is in | Exact match | Location is in 'Canada', 'US', 'Denmark'. The slice includes all entities in the specified regions. |
is not in | Exact match (exclusion) | Location is not in 'Portugal', 'North America, 'Germany'. The slice includes all entities except in those specified regions. |
Example: Evaluating multiple slices
Let's walk through a scenario with multiple slices to show how the evaluation logic works:
- Slice 1: Customer: Harmony Hardware, Location: Europe, Value: ON.
- Slice 2: Location: Europe, Value: OFF.
- Slice 3: Customer: Harmony Hardware, Location: France, Value: OFF.
- Slice 4: Customer: Vinyl Vibes, Value: ON.
- Slice 5: Location: United States, Value: ON.
- Default: Value: OFF.
How the evaluation works:
- If a request comes from Harmony Hardware in France, Slice 1 applies first because it matches Harmony Hardware and Europe. The feature is ON, and Slice 3, which is more specific to France, is ignored.
- If a request comes from Harmony Hardware in Germany, Slice 1 applies, and the feature is ON. Slice 2, which applies to all European customers, is ignored.
- If a request comes from Vinyl Vibes in Europe, Slice 2 applies, and the feature is OFF, since Slice 2 catches all requests in Europe not covered by Slice 1. If the request is from outside of Europe, Slice 4 applies, and the feature is ON.
- If a request comes from ToneCraft Instruments in the US, Slice 5 applies, and the feature is ON.
- If a request comes from ElectroWorld in Italy, Slice 2 applies, and the feature is OFF because it matches the location (Europe).
- If a request comes from Harmony Hardware in the US, Slice 5 applies, and the feature is ON.
- If a request comes from SoundScape Studios in Australia, none of the slices match, so the default value (OFF) is applied.
Updated about 1 month ago