You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/platform/feature-flags/status-and-lifecycle.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Features in DevCycle can exist in one of three Statuses to indicate their curren
13
13
14
14
-**In Progress**
15
15
-**Completed**
16
-
-**Coming Soon: Archived**
16
+
-**Archived**
17
17
18
18
Each status comes with its unique properties, affecting how a Feature behaves, can be interacted with, or is displayed in the dashboard.
19
19
@@ -57,11 +57,9 @@ When a Feature is marked as "Completed," the following changes are implemented:
57
57
58
58
### Cleanup Checklist for Variables
59
59
60
-
Upon completing a Feature, you will see cleanup checklists for each Variable. You can choose to keep or cleanup a Variable.
60
+
Upon completing a Feature, you will see a cleanup checklist for each Variable associated with the Feature. You’ll have the option of [Cleaning up Variables](/platform/feature-flags/variables-and-variations/variables#cleaning-up-variables) which allows you archive or keep them permanently.
61
61
62
-
-**Keep**: Marks the Variable as permanent, which will make sure DevCycle does not guide you toward archiving or removing the Variable from your code, and the Variable will always serve the chosen value.
63
-
64
-
-**Mark for Cleanup**: Provides a checklist to help you know when it's safe to remove the Variable from the Feature or archive the Variable. If the Variable is still seen in code, or if evaluations are still seen in production, removing this Variable from the Feature could result in the Variable serving default values to Users. If Code References are enabled, this will also help inform where to remove this Variable from your code.
62
+
The details in the checklist will help you know when it's safe to remove the Variable from the Feature, or archive the Variable. If the Variable is still seen in code, or if evaluations are still seen in production, removing this Variable from the Feature could result in the Variable serving default values to Users. If Code References are enabled, additional details will be shown to inform you of where to remove the Variable from code, and variables will be marked as deprecated in code.
@@ -26,35 +26,35 @@ On the Feature page, there are indicators for each Variable that inform you of t
26
26
- if a Variable has been seen in code (if [Code References](/integrations/github/feature-usage-action) have been enabled)
27
27
- if evaluations have been seen
28
28
29
-
These indicators are helpful when setting up features. They help to confirm proper setup, and aid in Variable cleanup once a Feature has completed it's [lifecycle](/platform/feature-flags/status-and-lifecycle).
29
+
These indicators are helpful when setting up Features. They help to confirm proper setup, and aid in Variable cleanup once a Feature has completed it's [lifecycle](/platform/feature-flags/status-and-lifecycle).
30
30
31
31
Hover over these indicators for more detail about a Variable's code references & evaluation information.
32
32
33
33

34
34
35
-
Depending on the Feature type, the default Variations will be pre-set. For example, the most common feature type is a Release Flag, and it will have two variations - "Variation OFF" and "Variation ON", with the boolean Variable being set to false and true, respectively.
35
+
Depending on the Feature type, the default Variations will be pre-set. For example, the most common Feature type is a Release Flag, and it will have two variations - "Variation OFF" and "Variation ON", with the boolean Variable being set to false and true, respectively.
36
36
37
37
:::info
38
38
For more information on variations please visit the [variations section](/essentials/overview#variations) of the documentation.
39
39
:::
40
40
41
41
#### Global Variables Dashboard
42
42
43
-
You can also view variables through the Variables dashboard, a collection of all Variables used within a project on a single list. In more complex or longer running projects, the Variables dashboard is useful to quickly find exactly what Feature is controlling a Variable (if any).
43
+
You can also view Variables through the Variables dashboard, a collection of all Variables used within a project on a single list. In more complex or longer running projects, the Variables dashboard is useful to quickly find exactly what Feature is controlling a Variable (if any).
44
44
45
45
To navigate to this page, use the `Variables` button on DevCycle dashboard's top bar, which will lead you to the Variables list which will show:
46
46
47
47
|||
48
48
|--------|----------------------------|
49
49
|**Variable Name**| The name given to the Variable upon its creation |
50
-
|**Feature**| The name of the Feature that is currently managing a variable. **Note** that Variables can only be managed by a single Feature at a time. If you wish to change what Feature is managing a Variable, first remove that Variable from a feature as outlined in [Creating Variables and Variations](/platform/feature-flags/variables-and-variations/variables). If the Variable is NOT being managed by a Feature, this column will note the lack of Feature. **Click on a Feature name to navigate directly to the Feature managing this Variable**|
51
-
|**Type**| The type of the feature flag. This type can one of: Boolean, JSON, Number, Boolean, or String. |
50
+
|**Feature**| The name of the Feature that is currently managing a Variable. **Note** that Variables can only be managed by a single Feature at a time. If you wish to change what Feature is managing a Variable, first remove that Variable from a Feature as outlined in [Creating Variables and Variations](/platform/feature-flags/variables-and-variations/variables). If the Variable is NOT being managed by a Feature, this column will note the lack of Feature. **Click on a Feature name to navigate directly to the Feature managing this Variable**|
51
+
|**Type**| The type of the Feature flag. This type can one of: Boolean, JSON, Number, Boolean, or String. |
52
52
|**Created At**| The time this Variable was first created. |
53
53
54
54
55
55
##### Variable Details
56
56
57
-
To access variable details, click "View Info" on the Variables list page for your Desired Variable. This page contains two sections:
57
+
To access Variable details, click "View Info" on the Variables list page for your Desired Variable. This page contains two sections:
58
58
59
59
| Section | Description |
60
60
|---------|-------------|
@@ -91,33 +91,33 @@ Variables may be the following types:
91
91
The Variable **Values** for each **Variation** will be what the Variable's value will be in SDK and API responses if a targeting rule is targeting those specific Variations.
92
92
93
93
:::caution
94
-
For JSON variables, the only allowable **Values** are JSON objects with key-value pairs.
94
+
For JSON Variables, the only allowable **Values** are JSON objects with key-value pairs.
95
95
:::
96
96
97
97
---
98
98
99
99
## Updating a Variable
100
100
101
-
DevCycle allows users to edit the Variable Type of existing variables. We understand the importance of type-safety in variable management in addition to having flexibility when creating & editing variables. As such, editing unassociated variable versus associated variables differs slightly so you have as much context as possible on the ramifications of changing a variable type & its impact on your code.
101
+
DevCycle allows users to edit the Variable Type of existing Variables. We understand the importance of type-safety in Variable management in addition to having flexibility when creating & editing Variables. As such, editing unassociated Variable versus associated Variables differs slightly so you have as much context as possible on the ramifications of changing a Variable type & its impact on your code.
102
102
103
103
#### Unassociated Variables
104
104
105
-
To edit an unassociated Variable, navigate to the Variable Details page of the variable you want to edit and select the new type from the dropdown.
105
+
To edit an unassociated Variable, navigate to the Variable Details page of the Variable you want to edit and select the new type from the dropdown.
106
106
107
107
#### Associated Variables
108
-
If a variable is currently associated with a feature, changes to the Variable Type must be done on the associated feature page. Once on the feature page, click on the edit icon next to the variable key and select a new Variable Type from the dropdown and click Update.
108
+
If a Variable is currently associated with a Feature, changes to the Variable Type must be done on the associated Feature page. Once on the Feature page, click on the edit icon next to the Variable key and select a new Variable Type from the dropdown and click Update.
109
109
110
110
:::caution
111
-
Be cautious when editing variable types as any code that is evaluating this variable must also be updated to expect the new type. A mismatch in variable types between the dashboard and your code will result in your code always returning the default value.
111
+
Be cautious when editing Variable types as any code that is evaluating this Variable must also be updated to expect the new type. A mismatch in Variable types between the dashboard and your code will result in your code always returning the default value.
112
112
:::
113
113
114
114
---
115
115
116
116
## Removing a Variable
117
117
118
-
To remove a Variable from a feature, simply click on the edit icon next to the variable key and select the option to remove the variable from the variable edit modal.
118
+
To remove a Variable from a Feature, simply click on the edit icon next to the Variable key and select the option to remove the Variable from the Variable edit modal.
119
119
120
-
Removing a Variable from this page does not completely remove the Variable from DevCycle. The Variable will still be visible in the [Variable Dashboard](#global-variables-dashboard), but it will not be associated with any features.
120
+
Removing a Variable from this page does not completely remove the Variable from DevCycle. The Variable will still be visible in the [Variable Dashboard](#global-variables-dashboard), but it will not be associated with any Features.
121
121
122
122
Taking this action will cause all references to the Variable in any code usage to default only to the default value used in your codebase.
123
123
@@ -132,30 +132,40 @@ To fully delete a Variable you must do so via our [Management API](/management-a
132
132
133
133
Archiving Variables is a good way to clean up the DevCycle dashboard and ensure that it is easy to understand which Variables are available for use and which should no longer be leveraged going forward.
134
134
135
-
To archive a Variable it must first be [removed from any active features](#removing-a-variable). Variables can be archived at the same time as removing from a feature. When the option to remove has been selected the confirmation modal will also provide the option to archive the Variable.
135
+
To archive a Variable it must also be [removed from any active Features](#removing-a-variable). Variables can be archived and removed from a Feature at the same time. When you've selected to remove the Variable, the confirmation modal will also provide the option to archive the Variable.
136
136
137
-
If a Variable is not archived when it is removed from a feature it will remain active, but it won't be associated with any features and the default value will be delivered whenever the Variable is evaluated in code. If you are archiving a Variable from the Variable list or Variable details page, the Variable must be in this unassociated state.
137
+
If a Variable is not archived when it is removed from a Feature, it will remain active, but it won't be associated with any Features, and the default value will be delivered whenever the Variable is evaluated in code. If you are archiving a Variable from the Variable list or Variable details page, the Variable must be in this unassociated state.
138
138
139
139
When archiving a Variable from the Variable list or details page you will need to confirm your desire to archive by entering the Variable's key in the archive confirmation modal.
140
140
141
-
Once archived, Variables can be viewed by toggling the Variable status filter to either All or Archived Variables on the Variable list page. From here Variables can also be unarchived if desired.
141
+
Once archived, Variables can still be viewed by toggling the Variable status filter to either All or Archived Variables on the Variable list page. From here, Variables can also be unarchived if desired.
142
142
143
143
---
144
144
145
145
## Re-associating a Variable
146
146
147
-
DevCycle has the ability to re-use existing variables and re-associate them to different features.
147
+
DevCycle has the ability to re-use existing Variables and re-associate them to different Features.
148
148
149
-
In the Variable Key input field, a drop down will display all **unassociated, unarchived**variables that can be re-associated to your feature while also providing you the option to add a net new variable.
149
+
In the Variable Key input field, a drop down will display all **unassociated, unarchived**Variables that can be re-associated to your Feature while also providing you the option to add a net new Variable.
150
150
151
-
If you select an existing, unassociated variable from the dropdown, the Variable type will be populated with the type of the selected variable and cannot be changed.
151
+
If you select an existing, unassociated Variable from the dropdown, the Variable type will be populated with the type of the selected Variable and cannot be changed.
152
152
153
-
If you input a variable key that matches an existing archived variable, the error below will appear, as you must first unarchive the variable.
153
+
If you input a Variable key that matches an existing archived Variable, the error below will appear, as you must first unarchive the Variable.
154
154
155
-
To use it, click the hyperlinked "**variable**" text, and you'll be directed to the archived variable page where you can unarchive it.
155
+
To use it, click the hyperlinked "**Variable**" text, and you'll be directed to the archived Variable page where you can unarchive it.
156
156
157
157
:::info
158
-
If you want to move a variable between features, you must first remove it from the previous feature, making it unassociated.
158
+
If you want to move a Variable between Features, you must first remove it from the previous Feature, making it unassociated.
159
159
:::
160
160
161
+
## Cleaning up Variables
161
162
163
+
DevCycle will display the option to either **keep** or **archive** a Variable once a Feature has been [Completed](/platform/feature-flags/status-and-lifecycle#completed):
164
+
165
+
**Keep:** Marks the Variable as permanent, indicating that the it should be kept active. DevCycle will not prompt you toward archiving or removing the Variable from your code, and the Variable will always serve the configured value.
166
+
167
+
**Archive (Cleanup):** Cleanup the Variable by removing (un-associating) the Variable from the Feature and archiving it. The intention is that the Variable is no longer needed and it has been removed from the codebase.
168
+
169
+
With code references, Variables will also be marked as deprecated in code if it was not made permanent.
170
+
171
+
A Feature can revert is "completed" status at any time, and Variables can be un-archived or re-associated as needed. Learn more about Feature cleanup on the Feature [Status and Lifecycle](/platform/feature-flags/status-and-lifecycle) page.
Copy file name to clipboardExpand all lines: docs/sdk/features.md
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -234,10 +234,8 @@ identity must be changed during the application's lifecycle.
234
234
235
235
#### Anonymous Users
236
236
237
-
:::info
238
-
239
-
If a user id is not supplied, client-side SDKs will automatically generate a user id and assign it to the current user. This id will be cached and used between app sessions / website visits until a user id is supplied or [reset](#resetting-a-user) is called. This ensures that you will not experience a rise in MAUs if the main experience of your application is in a logged-out or anonymous state.
240
-
237
+
:::info
238
+
If a user id is not supplied, client-side SDKs will automatically generate an anonymous user id and assign it to the current user. Anonymous users count towards your MAUs for the month. This id will be cached and used between app sessions / website visits until a user id is supplied or [reset](#resetting-a-user) is called. This ensures that you will not experience a rise in MAUs if the main experience of your application is in a logged-out or anonymous state.
0 commit comments