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/cli-samples.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
@@ -5,13 +5,13 @@ author: maud-lv
5
5
ms.author: malev
6
6
ms.service: azure-app-configuration
7
7
ms.topic: sample
8
-
ms.date: 02/19/2020
9
-
ms.custom: devx-track-azurecli
8
+
ms.date: 08/09/2022
9
+
ms.custom: devx-track-azurecli, devdivchpfy22
10
10
---
11
11
12
12
# Azure CLI samples
13
13
14
-
The following table includes links to bash scripts for Azure App Configuration by using the Azure CLI.
14
+
The following table includes links to bash scripts for Azure App Configuration by using the [az appconfig](/cli/azure/appconfig) commands in the Azure CLI:
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/concept-feature-management.md
+18-8Lines changed: 18 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,24 +4,24 @@ description: Turn features on and off using Azure App Configuration
4
4
author: maud-lv
5
5
ms.author: malev
6
6
ms.service: azure-app-configuration
7
-
ms.custom: devx-track-dotnet
7
+
ms.custom: devx-track-dotnet, devdivchpfy22
8
8
ms.topic: conceptual
9
-
ms.date: 02/20/2020
9
+
ms.date: 08/17/2022
10
10
---
11
11
12
12
# Feature management overview
13
13
14
-
Traditionally, shipping a new application feature requires a complete redeployment of the application itself. Testing a feature often requires multiple deployments of the application. Each deployment may change the feature or expose the feature to different customers for testing.
14
+
Traditionally, shipping a new application feature requires a complete redeployment of the application itself. Testing a feature often requires multiple deployments of the application. Each deployment might change the feature or expose the feature to different customers for testing.
15
15
16
-
Feature management is a modern software-development practice that decouples feature release from code deployment and enables quick changes to feature availability on demand. It uses a technique called *feature flags* (also known as *feature toggles*, *feature switches*, and so on) to dynamically administer a feature's lifecycle.
16
+
Feature management is a modern software-development practice that decouples feature release from code deployment and enables quick changes to feature availability on demand. It uses a technique called *feature flags* (also known as *feature toggles* and *feature switches*) to dynamically administer a feature's lifecycle.
17
17
18
18
Feature management helps developers address the following problems:
19
19
20
20
***Code branch management**: Use feature flags to wrap new application functionality currently under development. Such functionality is "hidden" by default. You can safely ship the feature, even though it's unfinished, and it will stay dormant in production. Using this approach, called *dark deployment*, you can release all your code at the end of each development cycle. You no longer need to maintain code branches across multiple development cycles because a given feature requires more than one cycle to complete.
21
21
***Test in production**: Use feature flags to grant early access to new functionality in production. For example, you can limit access to team members or to internal beta testers. These users will experience the full-fidelity production experience instead of a simulated or partial experience in a test environment.
22
22
***Flighting**: Use feature flags to incrementally roll out new functionality to end users. You can target a small percentage of your user population first and increase that percentage gradually over time.
23
23
***Instant kill switch**: Feature flags provide an inherent safety net for releasing new functionality. You can turn application features on and off without redeploying any code. If necessary, you can quickly disable a feature without rebuilding and redeploying your application.
24
-
***Selective activation**: Use feature flags to segment your users and deliver a specific set of features to each group. You may have a feature that works only on a certain web browser. You can define a feature flag so that only users of that browser can see and use the feature. With this approach, you can easily expand the supported browser list later without having to make any code changes.
24
+
***Selective activation**: Use feature flags to segment your users and deliver a specific set of features to each group. You might have a feature that works only on a certain web browser. You can define a feature flag so that only users of that browser can see and use the feature. By using this approach, you can easily expand the supported browser list later without having to make any code changes.
25
25
26
26
## Basic concepts
27
27
@@ -46,7 +46,7 @@ if (featureFlag) {
46
46
}
47
47
```
48
48
49
-
You can set the value of `featureFlag` statically.
49
+
You can set the value of `featureFlag` statically:
50
50
51
51
```csharp
52
52
boolfeatureFlag=true;
@@ -70,11 +70,21 @@ if (featureFlag) {
70
70
71
71
## Feature flag repository
72
72
73
-
To use feature flags effectively, you need to externalize all the feature flags used in an application. This allows you to change feature flag states without modifying and redeploying the application itself.
73
+
To use feature flags effectively, you need to externalize all the feature flags used in an application. You can use this approach to change feature flag states without modifying and redeploying the application itself.
74
74
75
75
Azure App Configuration provides a centralized repository for feature flags. You can use it to define different kinds of feature flags and manipulate their states quickly and confidently. You can then use the App Configuration libraries for various programming language frameworks to easily access these feature flags from your application.
76
76
77
-
[Use feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the .NET Core App Configuration provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application.
77
+
[The feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the .NET Core App Configuration provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application. For more information on feature flags in Azure App Configuration, see the following articles:
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/concept-key-value.md
+28-21Lines changed: 28 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,8 @@ author: maud-lv
5
5
ms.author: malev
6
6
ms.service: azure-app-configuration
7
7
ms.topic: conceptual
8
-
ms.date: 08/04/2020
8
+
ms.date: 08/17/2022
9
+
ms.custom: devdivchpfy22
9
10
---
10
11
11
12
# Keys and values
@@ -16,22 +17,22 @@ Azure App Configuration stores configuration data as key-values. Key-values are
16
17
17
18
Keys serve as identifiers for key-values and are used to store and retrieve corresponding values. It's a common practice to organize keys into a hierarchical namespace by using a character delimiter, such as `/` or `:`. Use a convention best suited to your application. App Configuration treats keys as a whole. It doesn't parse keys to figure out how their names are structured or enforce any rule on them.
18
19
19
-
Here is an example of key names structured into a hierarchy based on component services:
20
+
Here's an example of key names structured into a hierarchy based on component services:
20
21
21
22
```aspx
22
23
AppName:Service1:ApiEndpoint
23
24
AppName:Service2:ApiEndpoint
24
25
```
25
26
26
-
The use of configuration data within application frameworks might dictate specific naming schemes for key-values. For example, Java's Spring Cloud framework defines `Environment` resources that supply settings to a Spring application. These are parameterized by variables that include *application name* and *profile*. Keys for Spring Cloud-related configuration data typically start with these two elements separated by a delimiter.
27
+
The use of configuration data within application frameworks might dictate specific naming schemes for key-values. For example, Java's Spring Cloud framework defines `Environment` resources that supply settings to a Spring application. These resources are parameterized by variables that include *application name* and *profile*. Keys for Spring Cloud-related configuration data typically start with these two elements separated by a delimiter.
27
28
28
-
Keys stored in App Configuration are case-sensitive, unicode-based strings. The keys *app1* and *App1* are distinct in an App Configuration store. Keep this in mind when you use configuration settings within an application because some frameworks handle configuration keys case-insensitively. We do not recommend using case to differentiate keys.
29
+
Keys stored in App Configuration are case-sensitive, unicode-based strings. The keys *app1* and *App1* are distinct in an App Configuration store. Keep this in mind when you use configuration settings within an application because some frameworks handle configuration keys case-insensitively. We don't recommend using case to differentiate keys.
29
30
30
-
You can use any unicode character in key names except for `%`. A key name cannot be `.` or `..` either. There's a combined size limit of 10 KB on a key-value. This limit includes all characters in the key, its value, and all associated optional attributes. Within this limit, you can have many hierarchical levels for keys.
31
+
You can use any unicode character in key names except for `%`. A key name can't be `.` or `..` either. There's a combined size limit of 10 KB on a key-value. This limit includes all characters in the key, its value, and all associated optional attributes. Within this limit, you can have many hierarchical levels for keys.
31
32
32
33
### Design key namespaces
33
34
34
-
There are two general approaches to naming keys used for configuration data: flat or hierarchical. These methods are similar from an application usage standpoint, but hierarchical naming offers a number of advantages:
35
+
Two general approaches to naming keys are used for configuration data: flat or hierarchical. These methods are similar from an application usage standpoint, but hierarchical naming offers many advantages:
35
36
36
37
* Easier to read. Delimiters in a hierarchical key name function as spaces in a sentence. They also provide natural breaks between words.
37
38
* Easier to manage. A key name hierarchy represents logical groups of configuration data.
@@ -56,28 +57,28 @@ Label provides a convenient way to create variants of a key. A common use of lab
56
57
Use labels as a way to create multiple versions of a key-value. For example, you can input an application version number or a Git commit ID in labels to identify key-values associated with a particular software build.
57
58
58
59
> [!NOTE]
59
-
> If you are looking for change versions, App Configuration keeps all changes of a key-value occurred in the past certain period of time automatically. See [point-in-time snapshot](./concept-point-time-snapshot.md) for more details.
60
+
> If you're looking for change versions, App Configuration keeps all changes of a key-value that occurred in the past certain period of time automatically. For more information, see [point-in-time snapshot](./concept-point-time-snapshot.md).
60
61
61
62
### Query key-values
62
63
63
64
Each key-value is uniquely identified by its key plus a label that can be `\0`. You query an App Configuration store for key-values by specifying a pattern. The App Configuration store returns all key-values that match the pattern including their corresponding values and attributes. Use the following key patterns in REST API calls to App Configuration:
64
65
65
66
| Key | Description |
66
67
|---|---|
67
-
|`key` is omitted or `key=*`| Matches all keys |
68
-
|`key=abc`| Matches key name **abc** exactly |
69
-
|`key=abc*`| Matches key names that start with **abc**|
70
-
|`key=abc,xyz`| Matches key names **abc** or **xyz**. Limited to five CSVs |
68
+
|`key` is omitted or `key=*`| Matches all keys.|
69
+
|`key=abc`| Matches key name **abc** exactly.|
70
+
|`key=abc*`| Matches key names that start with **abc**.|
71
+
|`key=abc,xyz`| Matches key names **abc** or **xyz**. Limited to five CSVs.|
71
72
72
73
You also can include the following label patterns:
73
74
74
75
| Label | Description |
75
76
|---|---|
76
-
|`label` is omitted or `label=*`| Matches any label, which includes `\0`|
77
-
|`label=%00`| Matches `\0` label |
78
-
|`label=1.0.0`| Matches label **1.0.0** exactly |
79
-
|`label=1.0.*`| Matches labels that start with **1.0.**|
80
-
|`label=%00,1.0.0`| Matches labels `\0` or **1.0.0**, limited to five CSVs |
77
+
|`label` is omitted or `label=*`| Matches any label, which includes `\0`.|
78
+
|`label=%00`| Matches `\0` label.|
79
+
|`label=1.0.0`| Matches label **1.0.0** exactly.|
80
+
|`label=1.0.*`| Matches labels that start with **1.0.**.|
81
+
|`label=%00,1.0.0`| Matches labels `\0` or **1.0.0**, limited to five CSVs.|
81
82
82
83
> [!NOTE]
83
84
> `*`, `,`, and `\` are reserved characters in queries. If a reserved character is used in your key names or labels, you must escape it by using `\{Reserved Character}` in queries.
@@ -86,11 +87,17 @@ You also can include the following label patterns:
86
87
87
88
Values assigned to keys are also unicode strings. You can use all unicode characters for values.
88
89
89
-
### Use Content-Type
90
-
Each key-value in App Configuration has a content-type attribute. You can optionally use this attribute to store information about the type of value in a key-value that helps your application to process it properly. You can use any format for the content-type. App Configuration uses [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml) (also known as MIME types) for built-in data types such as feature flags, Key Vault references, and JSON key-values.
90
+
### Use content type
91
+
92
+
Each key-value in App Configuration has a content type attribute. You can optionally use this attribute to store information about the type of value in a key-value that helps your application to process it properly. You can use any format for the content type. App Configuration uses [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml) (also known as MIME types) for built-in data types such as feature flags, Key Vault references, and JSON key-values.
0 commit comments