Feature toggle is a software development technique. The purpose of the feature toggle is to manage the additional feature status in a live application.
Feature toggle lets you use continuous integration while preserving the working capacity of the application and hiding features you are still developing. Learn more about developing custom features in a separate article: Implement a custom additional feature. Use the Feature toggling page to manage the additional feature status.
Learn more about the Feature toggle mechanism in Wikipedia.
Store the additional feature details
Creatio stores the additional feature details in the following database tables:
- [Feature]. Stores the list of features you can toggle. Empty by default.
- [AdminUnitFeatureState] (the [FeatureState] column). Stores the additional feature status (turned on/off). The [AdminUnitFeatureState] table connects the [Feature] and the [SysAdminUnit] database tables. [SysAdminUnit] is the additional feature status for Creatio users and user groups.
View the relationship chart between tables that store the additional feature details in the figure below.

View the primary columns of the [Feature] database table below.
|
|
|
---|---|---|
|
|
The unique ID of the record. |
|
|
The name of the additional feature. By default, matches the [Code] column value. You can change the name of the additional feature manually. |
|
|
The code of the additional feature. |
|
|
The default status of the additional feature (1: turned on, 0: turned off). |
View the primary columns of the [AdminUnitFeatureState] database table below.
|
|
|
---|---|---|
|
|
The unique ID of the record. |
|
|
The unique ID of the record from the [Feature] database table. |
|
|
The unique ID of the user record. |
|
|
The status of the additional feature (1: turned on, 0: turned off). |
Open the Feature toggling page
You can open the Feature toggling page in several ways:
- Use the [Creatio URL]/0/Features link. For example, http://my.creatio.com/0/Features.
- Use the [Creatio URL]/0/Flags link. For example, http://my.creatio.com/0/Flags.
As a result, the browser will open the Feature toggling page.

The Feature toggling page displays the following data:
- additional feature code (the Code column)
- additional feature status for all users (the State column)
- additional feature status for the current user (the State for current user column)
- additional feature source (the Source column)
- additional feature description (the Description column)
The additional feature source (the Source column) can have the following types:
- DbFeatureProvider. Records of the [Feature] database table.
- web.config. Boolean key values from the <appSettings> section of the Web.config file in Creatio root directory.
- Metadata. Additional features registered in the source code using the class that inherits from FeatureMetadata.
- GlobalAppSettings. Boolean properties of the Terrasoft.Core.GlobalAppSettings class. Learn more in the .NET class library.
The types of additional feature source are sorted by priority in descending order.
The rules that determine the additional feature status are as follows:
- If an additional feature is not registered in Creatio, it is disabled.
- If an additional feature status is specified in multiple sources, the resulting status is based on the source priority. Back-end changes to the additional feature status do not require you to refresh the browser page. Refresh the page to apply the front-end changes to the additional feature status.
View the examples of the additional feature status (true: turned on, false: turned off) determined based on multiple sources below.
|
|
||
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Manage the additional feature status
You can manage the additional feature status in several ways:
- for a Creatio user group
- for all Creatio users
Since version 8.0.2 Atlas, Creatio lets you manage the additional feature status using the WorkspaceConsole utility. To do this, follow the guide in a separate article: Delivery in WorkspaceConsole.
Change the additional feature status for user groups
Since version 8.0.2 Atlas, Creatio lets you change the additional feature status for user groups.
To change the additional feature status for user groups:
- Open the Feature toggling page.
- Open the page of the additional feature whose status to change for the user group.
-
If the group is absent from the Feature status for the system administration object detail, add it.
- Click the
button on the Feature status for the system administration object detail.
- Select the corresponding user group in the Admin unit field.
- Click the
- Open the user group page.
- Select or clean the Feature state checkbox.
- Click Save.
- Refresh the additional feature page to apply the changes.
Change the additional feature status for all users
To change the additional feature status for all users:
- Open the Feature toggling page.
- Open the page of the additional feature whose status to change for all users.
- Select or clean the State checkbox.
- Click Save.
The Terrasoft.Configuration namespace.
The Terrasoft.Configuration.FeatureUtilities class provides a set of extension methods to the UserConnectionclass. These methods let you use the Feature Toggle functionality in the source code schemas of Creatio back-end. The FeatureUtilities class also declares the enumeration of feature statuses (the [FeatureState] column of the [AdminUnitFeatureState] database table).
Methods
Returns the feature status.
source | The user connection. |
code | The feature code. |
Returns the feature status.
source | The user connection. |
code | The code of the feature. |
sysAdminUnitId | The unique record ID. |
Returns the feature status for any user.
source | The user connection. |
code | The code of the feature. |
Returns the feature status for all users.
source | The user connection. |
code | The code of the feature. |
Returns all feature statuses.
source | The user connection. |
Returns data about all features and their statuses.
source | The user connection. |
Sets the feature status.
source | The user connection. |
code | The code of the feature. |
state | The new status of the feature. |
forAllUsers | Sets the status of the feature for all users. |
Sets the feature status or creates the feature if it does not exist.
source | The user connection. |
code | The code of the feature. |
state | The new status of the feature. |
forAllUsers | Sets the status of the feature for all users. |
Creates the feature.
source | The user connection. |
code | The code of the feature. |
name | The name of the feature. |
description | The description of the feature. |
Checks if the feature is turned on.
source | The user connection. |
code | The code of the feature. |
Checks if the feature is turned off.
source | The user connection. |
code | The code of the feature. |
sysAdminUnitId | The unique record ID. |