Feature toggle is a software development technique that lets you manage the status of additional features in a live application. Learn more: Wikipedia. The Feature toggling Creatio page implements the feature toggle functionality.
Feature toggle lets you use continuous integration while preserving the working capacity of the application and hiding features you are still developing. Instructions: Implement a custom additional feature.
Store the details of an additional feature
Creatio stores the details of an additional feature in the following database tables:
- [Feature]. Stores the list of features you can toggle. Empty by default.
- [AdminUnitFeatureState] (the [FeatureState] column). Stores the status of an additional feature (turned on/off). The [AdminUnitFeatureState] table connects the [Feature] and [SysAdminUnit] database tables. [SysAdminUnit] is the status of an additional feature for Creatio users and user groups.
View the relationship chart between tables that store the details of an additional feature in the figure 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). |
|
||
|
|
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
To open the Feature toggling page, use the [Creatio URL]/0/Shell#Section/AppFeature_ListPage link. For example, http://my.creatio.com/0/Shell#Section/AppFeature_ListPage. As a result, the browser will open the Feature toggling page.

The Feature toggling page displays the following data:
- code of the additional feature (the Code column)
- status of the additional feature for all users (the Is enabled column)
- status of the additional feature for the current user (the Is enabled for current user column)
- source of the additional feature (the Source column)
- description of the additional feature (the Description column)
The source of the additional feature (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: .NET class library.
The types of additional feature source are sorted by priority in descending order.
The rules that determine the status of the additional feature are as follows:
- If an additional feature is not registered in Creatio, it is disabled.
- If the status of an additional feature is specified in multiple sources, the resulting status is based on the source priority. Back-end changes to the status do not require you to refresh the browser page. Refresh the page to apply the front-end changes to the status.
View the examples of the additional feature status (true: turned on, false: turned off) determined based on multiple sources below.
|
|
||
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Manage the status of an additional feature
You can manage the status of an additional feature in multiple ways:
- for a Creatio user group
- for all Creatio users
Since version 8.0.2 Atlas, Creatio lets you manage the status of an additional feature using the WorkspaceConsole utility. Instructions: Delivery in WorkspaceConsole.
Change the status of an additional feature for user groups
Since version 8.0.2 Atlas, Creatio lets you change the status of an additional feature for user groups.
To change the status of an additional feature for user groups:
- Open the Feature toggling page. Instructions: Open the Feature toggling page.
- Open the page of the additional feature whose status to change for the user group.
-
If needed, add the user group to the Feature status for the system administration object expanded list.
- Click the
button on the Feature status for the system administration object expanded list.
- Select the corresponding user group in the Admin unit field.
- Click the
- Open the user group page.
- Select or clear the Feature state checkbox.
- Save the changes.
- Refresh the page of the additional feature to apply the changes.
Change the status of an additional feature for all users
- Open the Feature toggling page. Instructions: Open the Feature toggling page.
- Open the page of the additional feature whose status to change for all users.
- Select or clear the Is enabled checkbox.
- Save the changes.
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. |