Skip to content

Commit 34e3f1c

Browse files
authored
Feature Management Update Schema (#34421)
* Update Schema * spelling * formatting
1 parent 56c346a commit 34e3f1c

14 files changed

+42
-40
lines changed

sdk/appconfiguration/azure-appconfiguration-provider/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,11 @@ config = load(endpoint=endpoint, credential=DefaultAzureCredential(), key_vault_
170170

171171
## Loading Feature Flags
172172

173-
Feature Flags can be loaded from config stores using the provider. Feature flags are loaded as a dictionary of key/value pairs stored in the provider under the `FeatureManagement`, then `FeatureFlags`.
173+
Feature Flags can be loaded from config stores using the provider. Feature flags are loaded as a dictionary of key/value pairs stored in the provider under the `feature_management`, then `feature_flags`.
174174

175175
```python
176176
config = load(endpoint=endpoint, credential=DefaultAzureCredential(), feature_flags_enabled=True)
177-
alpha = config["FeatureManagement"]["FeatureFlags"]["Alpha"]
177+
alpha = config["feature_management"]["feature_flags"]["Alpha"]
178178
print(alpha["enabled"])
179179
```
180180

@@ -184,7 +184,7 @@ By default all feature flags with no label are loaded. If you want to load featu
184184
from azure.appconfiguration.provider import load, SettingSelector
185185

186186
config = load(endpoint=endpoint, credential=DefaultAzureCredential(), feature_flags_enabled=True, feature_flag_selectors=[SettingSelector(key_filter="*", label_filter="dev")])
187-
alpha = config["FeatureManagement"]["FeatureFlags"]["Alpha"]
187+
alpha = config["feature_management"]["feature_flags"]["Alpha"]
188188
print(alpha["enabled"])
189189
```
190190

sdk/appconfiguration/azure-appconfiguration-provider/azure/appconfiguration/provider/_constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# license information.
55
# -------------------------------------------------------------------------
66

7-
FEATURE_MANAGEMENT_KEY = "FeatureManagement"
8-
FEATURE_FLAG_KEY = "FeatureFlags"
7+
FEATURE_MANAGEMENT_KEY = "feature_management"
8+
FEATURE_FLAG_KEY = "feature_flags"
99
FEATURE_FLAG_PREFIX = ".appconfig.featureflag/"
1010

1111
EMPTY_LABEL = "\0"

sdk/appconfiguration/azure-appconfiguration-provider/samples/refresh_sample_feature_flags.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def my_callback_on_fail(error):
4444

4545
print(config["message"])
4646
print(config["my_json"]["key"])
47-
print(config["FeatureManagement"]["FeatureFlags"]["Beta"])
47+
print(config["feature_management"]["feature_flags"]["Beta"])
4848

4949
# Updating the configuration setting
5050
feature_flag_setting.enabled = False
@@ -60,7 +60,7 @@ def my_callback_on_fail(error):
6060
# Printing the updated value
6161
print(config["message"])
6262
print(config["my_json"]["key"])
63-
print(config["FeatureManagement"]["FeatureFlags"]["Beta"])
63+
print(config["feature_management"]["feature_flags"]["Beta"])
6464

6565
# Waiting for the refresh interval to pass
6666
time.sleep(2)
@@ -71,4 +71,4 @@ def my_callback_on_fail(error):
7171
# Printing the updated value
7272
print(config["message"])
7373
print(config["my_json"]["key"])
74-
print(config["FeatureManagement"]["FeatureFlags"]["Beta"])
74+
print(config["feature_management"]["feature_flags"]["Beta"])

sdk/appconfiguration/azure-appconfiguration-provider/tests/asynctestcase.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@
44
# Licensed under the MIT License. See License.txt in the project root for
55
# license information.
66
# --------------------------------------------------------------------------
7-
import asyncio
87
from devtools_testutils import AzureRecordedTestCase
98
from azure.appconfiguration.aio import AzureAppConfigurationClient
10-
from azure.appconfiguration import ConfigurationSetting, FeatureFlagConfigurationSetting
119
from testcase import get_configs
1210
from azure.appconfiguration.provider.aio import load
1311
from azure.appconfiguration.provider import SettingSelector, AzureAppConfigurationKeyVaultOptions
12+
from test_constants import FEATURE_MANAGEMENT_KEY, FEATURE_FLAG_KEY
1413

1514

1615
class AppConfigTestCase(AzureRecordedTestCase):
17-
import asyncio
18-
1916
async def create_aad_client(
2017
self,
2118
appconfiguration_endpoint_string,
@@ -153,7 +150,7 @@ async def setup_configs(client, keyvault_secret_url):
153150

154151

155152
def has_feature_flag(client, feature_id, enabled=False):
156-
for feature_flag in client["FeatureManagement"]["FeatureFlags"]:
153+
for feature_flag in client[FEATURE_MANAGEMENT_KEY][FEATURE_FLAG_KEY]:
157154
if feature_flag["id"] == feature_id:
158155
return feature_flag["enabled"] == enabled
159156
return False

sdk/appconfiguration/azure-appconfiguration-provider/tests/test_async_provider.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from devtools_testutils.aio import recorded_by_proxy_async
88
from async_preparers import app_config_decorator_async
99
from asynctestcase import AppConfigTestCase, has_feature_flag
10+
from test_constants import FEATURE_MANAGEMENT_KEY
1011

1112

1213
class TestAppConfigurationProvider(AppConfigTestCase):
@@ -21,7 +22,7 @@ async def test_provider_creation(self, appconfiguration_connection_string, appco
2122
) as client:
2223
assert client["message"] == "hi"
2324
assert client["my_json"]["key"] == "value"
24-
assert "FeatureManagement" in client
25+
assert FEATURE_MANAGEMENT_KEY in client
2526
assert has_feature_flag(client, "Alpha")
2627

2728
# method: provider_trim_prefixes
@@ -41,7 +42,7 @@ async def test_provider_trim_prefixes(
4142
assert client["my_json"]["key"] == "value"
4243
assert client["trimmed"] == "key"
4344
assert "test.trimmed" not in client
44-
assert "FeatureManagement" in client
45+
assert FEATURE_MANAGEMENT_KEY in client
4546
assert has_feature_flag(client, "Alpha")
4647

4748
# method: provider_selectors
@@ -56,7 +57,7 @@ async def test_provider_selectors(self, appconfiguration_connection_string, appc
5657
) as client:
5758
assert client["message"] == "test"
5859
assert "test.trimmed" not in client
59-
assert "FeatureManagement" not in client
60+
assert FEATURE_MANAGEMENT_KEY not in client
6061

6162
# method: provider_selectors
6263
@app_config_decorator_async

sdk/appconfiguration/azure-appconfiguration-provider/tests/test_async_provider_aad.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
# Licensed under the MIT License. See License.txt in the project root for
44
# license information.
55
# --------------------------------------------------------------------------
6-
from azure.appconfiguration.provider.aio import load
76
from azure.appconfiguration.provider import SettingSelector, AzureAppConfigurationKeyVaultOptions
87
from devtools_testutils.aio import recorded_by_proxy_async
9-
from azure.appconfiguration.aio import AzureAppConfigurationClient
108
from async_preparers import app_config_decorator_async
119
from asynctestcase import AppConfigTestCase, has_feature_flag
10+
from test_constants import FEATURE_MANAGEMENT_KEY
1211

1312

1413
class TestAppConfigurationProvider(AppConfigTestCase):
@@ -23,7 +22,7 @@ async def test_provider_creation_aad(self, appconfiguration_endpoint_string, app
2322
) as client:
2423
assert client.get("message") == "hi"
2524
assert client["my_json"]["key"] == "value"
26-
assert "FeatureManagement" in client
25+
assert FEATURE_MANAGEMENT_KEY in client
2726
assert has_feature_flag(client, "Alpha")
2827

2928
# method: provider_trim_prefixes
@@ -40,7 +39,7 @@ async def test_provider_trim_prefixes(self, appconfiguration_endpoint_string, ap
4039
assert client["message"] == "hi"
4140
assert client["my_json"]["key"] == "value"
4241
assert client["trimmed"] == "key"
43-
assert "FeatureManagement" in client
42+
assert FEATURE_MANAGEMENT_KEY in client
4443
assert has_feature_flag(client, "Alpha")
4544

4645
# method: provider_selectors
@@ -55,7 +54,7 @@ async def test_provider_selectors(self, appconfiguration_endpoint_string, appcon
5554
) as client:
5655
assert client["message"] == "test"
5756
assert "test.trimmed" not in client
58-
assert "FeatureManagement" not in client
57+
assert FEATURE_MANAGEMENT_KEY not in client
5958

6059
# method: provider_selectors
6160
@app_config_decorator_async

sdk/appconfiguration/azure-appconfiguration-provider/tests/test_async_provider_feature_management.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from devtools_testutils.aio import recorded_by_proxy_async
1010
from async_preparers import app_config_decorator_async
1111
from asynctestcase import AppConfigTestCase, setup_configs, has_feature_flag
12+
from test_constants import FEATURE_MANAGEMENT_KEY
1213

1314

1415
from azure.appconfiguration.provider._azureappconfigurationprovider import _delay_failure
@@ -25,7 +26,7 @@ async def test_load_only_feature_flags(self, appconfiguration_connection_string)
2526
feature_flag_enabled=True,
2627
) as client:
2728
assert len(client.keys()) == 1
28-
assert "FeatureManagement" in client
29+
assert FEATURE_MANAGEMENT_KEY in client
2930
assert has_feature_flag(client, "Alpha")
3031

3132
# method: load
@@ -43,5 +44,5 @@ async def test_select_feature_flags(self, appconfiguration_connection_string):
4344
user_agent="SDK/Integration",
4445
) as client:
4546
assert len(client.keys()) == 1
46-
assert "FeatureManagement" in client
47+
assert FEATURE_MANAGEMENT_KEY in client
4748
assert not has_feature_flag(client, "Alpha")

sdk/appconfiguration/azure-appconfiguration-provider/tests/test_async_provider_refresh.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from devtools_testutils.aio import recorded_by_proxy_async
1313
from async_preparers import app_config_decorator_async
1414
from asynctestcase import AppConfigTestCase, has_feature_flag
15-
15+
from test_constants import FEATURE_MANAGEMENT_KEY
1616

1717
try:
1818
# Python 3.7 does not support AsyncMock
@@ -37,7 +37,7 @@ async def test_refresh(self, appconfiguration_endpoint_string, appconfiguration_
3737
) as client:
3838
assert client["refresh_message"] == "original value"
3939
assert client["my_json"]["key"] == "value"
40-
assert "FeatureManagement" in client
40+
assert FEATURE_MANAGEMENT_KEY in client
4141
assert has_feature_flag(client, "Alpha")
4242
setting = await client._client.get_configuration_setting(key="refresh_message")
4343
setting.value = "updated value"
@@ -101,7 +101,7 @@ async def test_empty_refresh(self, appconfiguration_endpoint_string, appconfigur
101101
assert client["refresh_message"] == "original value"
102102
assert client["non_refreshed_message"] == "Static"
103103
assert client["my_json"]["key"] == "value"
104-
assert "FeatureManagement" in client
104+
assert FEATURE_MANAGEMENT_KEY in client
105105
assert has_feature_flag(client, "Alpha")
106106
setting = await client._client.get_configuration_setting(key="refresh_message")
107107
setting.value = "updated value"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FEATURE_MANAGEMENT_KEY = "feature_management"
2+
FEATURE_FLAG_KEY = "feature_flags"

sdk/appconfiguration/azure-appconfiguration-provider/tests/test_provider.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from testcase import AppConfigTestCase, has_feature_flag
1010
import datetime
1111
from unittest.mock import patch
12+
from test_constants import FEATURE_MANAGEMENT_KEY
1213

1314
from azure.appconfiguration.provider._azureappconfigurationprovider import _delay_failure
1415

@@ -29,7 +30,7 @@ def test_provider_creation(self, appconfiguration_connection_string, appconfigur
2930
)
3031
assert client["message"] == "hi"
3132
assert client["my_json"]["key"] == "value"
32-
assert "FeatureManagement" in client
33+
assert FEATURE_MANAGEMENT_KEY in client
3334
assert has_feature_flag(client, "Alpha")
3435

3536
# method: provider_trim_prefixes
@@ -47,7 +48,7 @@ def test_provider_trim_prefixes(self, appconfiguration_connection_string, appcon
4748
assert client["my_json"]["key"] == "value"
4849
assert client["trimmed"] == "key"
4950
assert "test.trimmed" not in client
50-
assert "FeatureManagement" in client
51+
assert FEATURE_MANAGEMENT_KEY in client
5152
assert has_feature_flag(client, "Alpha")
5253

5354
# method: provider_selectors
@@ -62,7 +63,7 @@ def test_provider_selectors(self, appconfiguration_connection_string, appconfigu
6263
)
6364
assert client["message"] == "test"
6465
assert "test.trimmed" not in client
65-
assert "FeatureManagement" not in client
66+
assert FEATURE_MANAGEMENT_KEY not in client
6667

6768
# method: provider_selectors
6869
@recorded_by_proxy

0 commit comments

Comments
 (0)