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: articles/azure-app-configuration/feature-management-dotnet-reference.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,7 +104,7 @@ The `feature_management` section of the json document is used by convention to l
104
104
105
105
**Advanced:** The usage of colon ':' is forbidden in feature flag names.
106
106
107
-
#### RequirementType
107
+
#### Requirement type
108
108
109
109
The `requirement_type` property of `conditions` is used to determine if the filters should use `Any` or `All` logic when evaluating the state of a feature. If `requirement_type` isn't specified, the default value is `Any`.
110
110
@@ -844,7 +844,7 @@ When defining an Audience, users and groups can be excluded from the audience. E
844
844
"RolloutPercentage": 100
845
845
}
846
846
],
847
-
"DefaultRolloutPercentage": 0
847
+
"DefaultRolloutPercentage": 0,
848
848
"Exclusion": {
849
849
"Users": [
850
850
"Mark"
@@ -884,7 +884,7 @@ For each feature, a variant can be retrieved using the `IVariantFeatureManager`'
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/feature-management-overview.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,14 +37,14 @@ This is an overview of each feature and its current status for different framewo
37
37
38
38
Feature | .NET | Spring | Python | JavaScript
39
39
------- | ---- | ------ | ------ | ----------
40
-
Targeting Filter | [GA](./feature-management-dotnet-reference.md#targeting) | GA | [GA](./feature-management-python-reference.md#targeting) | GA
41
-
Targeting Exclusion | [GA](./feature-management-dotnet-reference.md#targeting-exclusion) | GA | [GA](./feature-management-python-reference.md#targeting-exclusion) | GA
42
-
Time Window Filter | [GA](./feature-management-dotnet-reference.md#microsofttimewindow) | GA | [GA](./feature-management-python-reference.md#microsofttimewindow) | GA
40
+
Targeting Filter | [GA](./feature-management-dotnet-reference.md#targeting) | GA | [GA](./feature-management-python-reference.md#targeting) | [GA](./feature-management-javascript-reference.md#targeting)
41
+
Targeting Exclusion | [GA](./feature-management-dotnet-reference.md#targeting-exclusion) | GA | [GA](./feature-management-python-reference.md#targeting-exclusion) | [GA](./feature-management-javascript-reference.md#targeting-exclusion)
42
+
Time Window Filter | [GA](./feature-management-dotnet-reference.md#microsofttimewindow) | GA | [GA](./feature-management-python-reference.md#microsofttimewindow) | [GA](./feature-management-javascript-reference.md#microsofttimewindow)
43
43
Recurring Time Window | [GA](./feature-management-dotnet-reference.md#microsofttimewindow) | GA | WIP | WIP
44
-
Custom Feature Filter | [GA](./feature-management-dotnet-reference.md#implementing-a-feature-filter) | GA | [GA](./feature-management-python-reference.md#implementing-a-feature-filter) | GA
45
-
Feature Filter Requirement Type (AND/OR) | [GA](./feature-management-dotnet-reference.md#requirementtype) | GA | [GA](./feature-management-python-reference.md#requirement_type) | GA
46
-
Variant Feature Flag | [GA](./feature-management-dotnet-reference.md#variants) | GA | [GA](./feature-management-python-reference.md#variants) | GA
47
-
Feature Flag Telemetry | [GA](./feature-management-dotnet-reference.md#telemetry) | GA | [GA](./feature-management-python-reference.md#telemetry) | GA
48
-
Application Insights Integration | [GA](./feature-management-dotnet-reference.md#application-insights-telemetry) | GA | [GA](./feature-management-python-reference.md#application-insights-telemetry) | GA
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/feature-management-python-reference.md
+17-16Lines changed: 17 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,9 +33,11 @@ Here are some of the benefits of using Python feature management library:
33
33
The Python feature management library is open source. For more information, visit the [GitHub repo](https://github.com/microsoft/FeatureManagement-Python).
34
34
35
35
## Feature flags
36
+
36
37
Feature flags are composed of two parts, a name and a list of feature-filters that are used to turn on the feature.
37
38
38
39
### Feature filters
40
+
39
41
Feature filters define a scenario for when a feature should be enabled. When a feature is evaluated for whether it is on or off, its list of feature filters is traversed until one of the filters decides the feature should be enabled. At this point, the feature is considered enabled and traversal through the feature filters stops. If no feature filter indicates that the feature should be enabled, it's considered disabled.
40
42
41
43
As an example, a Microsoft Edge browser feature filter could be designed. This feature filter would activate any features attached to it, as long as an HTTP request is coming from Microsoft Edge.
@@ -54,15 +56,15 @@ The feature management library supports json as a feature flag source. Below we
54
56
"feature_flags": [
55
57
{
56
58
"id": "FeatureT",
57
-
"enabled": "true"
59
+
"enabled": true
58
60
},
59
61
{
60
62
"id": "FeatureU",
61
-
"enabled": "false"
63
+
"enabled": false
62
64
},
63
65
{
64
66
"id": "FeatureV",
65
-
"enabled": "true",
67
+
"enabled": true,
66
68
"conditions": {
67
69
"client_filters": [
68
70
{
@@ -80,7 +82,7 @@ The feature management library supports json as a feature flag source. Below we
80
82
}
81
83
```
82
84
83
-
The `feature_management` section of the json document is used by convention to load feature flag settings. The `feature_flags` section is a list of the feature flags that are loaded into the library. In the section above, we see three different features. Features define their feature filters using the `client_filters` property, inside of `conditions`. In the feature filters for `FeatureT`, we see `enabled` is on with no filters defined, resulting in `FeatureT` always returning `true` . `FeatureU` is the same as `FeatureT` but with `enabled` is `false` resulting in the feature always returning `false`. `FeatureV` specifies a feature filter named `Microsoft.TimeWindow`. `FeatureV` is an example of a configurable feature filter. We can see in the example that the filter has a `parameters` property. The `parameters` property is used to configure the filter. In this case, the start and end times for the feature to be active are configured.
85
+
The `feature_management` section of the json document is used by convention to load feature flag settings. The `feature_flags` section is a list of the feature flags that are loaded into the library. In the section above, we see three different features. Features define their feature filters using the `client_filters` property, inside of `conditions`. In the feature filters for `FeatureT`, we see `enabled` is `true` with no filters defined, resulting in `FeatureT` always returning `true` . `FeatureU` is the same as `FeatureT` but with `enabled` is `false` resulting in the feature always returning `false`. `FeatureV` specifies a feature filter named `Microsoft.TimeWindow`. `FeatureV` is an example of a configurable feature filter. We can see in the example that the filter has a `parameters` property. The `parameters` property is used to configure the filter. In this case, the start and end times for the feature to be active are configured.
84
86
85
87
The detailed schema of the `feature_management` section can be found [here](https://github.com/microsoft/FeatureManagement/blob/main/Schema/FeatureManagement.v2.0.0.schema.json).
86
88
@@ -107,7 +109,7 @@ The following snippet demonstrates an alternative way to define a feature that c
107
109
}
108
110
```
109
111
110
-
#### Requirement_type
112
+
#### Requirement type
111
113
112
114
The `requirement_type` property of a feature flag is used to determine if the filters should use `Any` or `All` logic when evaluating the state of a feature. If `requirement_type` isn't specified, the default value is `Any`.
113
115
@@ -191,7 +193,6 @@ There are a two feature filters that come with the `FeatureManagement` package:
191
193
192
194
Each of the built-in feature filters has its own parameters. Here's the list of feature filters along with examples.
193
195
194
-
195
196
### Microsoft.TimeWindow
196
197
197
198
This filter provides the capability to enable a feature based on a time window. If only `End` is specified, the feature is considered on until that time. If only `Start` is specified, the feature is considered on at all points after that time.
@@ -253,14 +254,14 @@ Targeting is a feature management strategy that enables developers to progressiv
253
254
254
255
The following steps demonstrate an example of a progressive rollout for a new 'Beta' feature:
255
256
256
-
1. Individual users Jeff and Alicia are granted access to the Beta
257
-
2. Another user, Mark, asks to opt in and is included.
258
-
3. Twenty percent of a group known as "Ring1" users are included in the Beta.
259
-
5. The number of "Ring1" users included in the beta is bumped up to 100 percent.
260
-
5. Five percent of the user base is included in the beta.
261
-
6. The rollout percentage is bumped up to 100 percent and the feature is completely rolled out.
257
+
1. Individual users Jeff and Alicia are granted access to the Beta.
258
+
1. Another user, Mark, asks to opt in and is included.
259
+
1. Twenty percent of a group known as "Ring1" users are included in the Beta.
260
+
1. The number of "Ring1" users included in the Beta is bumped up to 100 percent.
261
+
1. Five percent of the user base is included in the Beta.
262
+
1. The rollout percentage is bumped up to 100 percent and the feature is completely rolled out.
262
263
263
-
This strategy for rolling out a feature is built in to the library through the included [Microsoft.Targeting](#microsofttargeting) feature filter.
264
+
This strategy for rolling out a feature is built into the library through the included [Microsoft.Targeting](#microsofttargeting) feature filter.
264
265
265
266
### Targeting a user
266
267
@@ -290,7 +291,7 @@ When defining an audience, users and groups can be excluded from the audience. E
290
291
"RolloutPercentage": 100
291
292
}
292
293
],
293
-
"DefaultRolloutPercentage": 0
294
+
"DefaultRolloutPercentage": 0,
294
295
"Exclusion": {
295
296
"Users": [
296
297
"Mark"
@@ -387,7 +388,7 @@ Each variant has two properties: a name and a configuration. The name is used to
387
388
388
389
A list of all possible variants is defined for each feature under the `variants`property.
389
390
390
-
``` javascript
391
+
``` json
391
392
{
392
393
"feature_management": {
393
394
"feature_flags": [
@@ -417,7 +418,7 @@ A list of all possible variants is defined for each feature under the `variants`
417
418
418
419
The process of allocating a feature's variants is determined by the `allocation` property of the feature.
0 commit comments