[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FCZX731R7FMMGWRV2JSARZ":3,"skill-same:01M6FCZX731R7FMMGWRV2JSARZ":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6FCZX731R7FMMGWRV2JSARZ","azure-appconfiguration-py",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-appconfiguration-py\u002FSKILL.md",[],[18,19],"azure","azure appconfiguration py","2026-11-10 10:12:30",false,"# Azure App Configuration SDK for Python\n\nCentralized configuration management with feature flags and dynamic settings.\n\n## Installation\n\n```bash\npip install azure-appconfiguration\n```\n\n## Environment Variables\n\n```bash\nAZURE_APPCONFIGURATION_CONNECTION_STRING=Endpoint=https:\u002F\u002F\u003Cname>.azconfig.io;Id=...;Secret=...\n# Or for Entra ID:\nAZURE_APPCONFIGURATION_ENDPOINT=https:\u002F\u002F\u003Cname>.azconfig.io\n```\n\n## Authentication\n\n### Connection String\n\n```python\nfrom azure.appconfiguration import AzureAppConfigurationClient\n\nclient = AzureAppConfigurationClient.from_connection_string(\n    os.environ[\"AZURE_APPCONFIGURATION_CONNECTION_STRING\"]\n)\n```\n\n### Entra ID\n\n```python\nfrom azure.appconfiguration import AzureAppConfigurationClient\nfrom azure.identity import DefaultAzureCredential\n\nclient = AzureAppConfigurationClient(\n    base_url=os.environ[\"AZURE_APPCONFIGURATION_ENDPOINT\"],\n    credential=DefaultAzureCredential()\n)\n```\n\n## Configuration Settings\n\n### Get Setting\n\n```python\nsetting = client.get_configuration_setting(key=\"app:settings:message\")\nprint(f\"{setting.key} = {setting.value}\")\n```\n\n### Get with Label\n\n```python\n# Labels allow environment-specific values\nsetting = client.get_configuration_setting(\n    key=\"app:settings:message\",\n    label=\"production\"\n)\n```\n\n### Set Setting\n\n```python\nfrom azure.appconfiguration import ConfigurationSetting\n\nsetting = ConfigurationSetting(\n    key=\"app:settings:message\",\n    value=\"Hello, World!\",\n    label=\"development\",\n    content_type=\"text\u002Fplain\",\n    tags={\"environment\": \"dev\"}\n)\n\nclient.set_configuration_setting(setting)\n```\n\n### Delete Setting\n\n```python\nclient.delete_configuration_setting(\n    key=\"app:settings:message\",\n    label=\"development\"\n)\n```\n\n## List Settings\n\n### All Settings\n\n```python\nsettings = client.list_configuration_settings()\nfor setting in settings:\n    print(f\"{setting.key} [{setting.label}] = {setting.value}\")\n```\n\n### Filter by Key Prefix\n\n```python\nsettings = client.list_configuration_settings(\n    key_filter=\"app:settings:*\"\n)\n```\n\n### Filter by Label\n\n```python\nsettings = client.list_configuration_settings(\n    label_filter=\"production\"\n)\n```\n\n## Feature Flags\n\n### Set Feature Flag\n\n```python\nfrom azure.appconfiguration import ConfigurationSetting\nimport json\n\nfeature_flag = ConfigurationSetting(\n    key=\".appconfig.featureflag\u002Fbeta-feature\",\n    value=json.dumps({\n        \"id\": \"beta-feature\",\n        \"enabled\": True,\n        \"conditions\": {\n            \"client_filters\": []\n        }\n    }),\n    content_type=\"application\u002Fvnd.microsoft.appconfig.ff+json;charset=utf-8\"\n)\n\nclient.set_configuration_setting(feature_flag)\n```\n\n### Get Feature Flag\n\n```python\nsetting = client.get_configuration_setting(\n    key=\".appconfig.featureflag\u002Fbeta-feature\"\n)\nflag_data = json.loads(setting.value)\nprint(f\"Feature enabled: {flag_data['enabled']}\")\n```\n\n### List Feature Flags\n\n```python\nflags = client.list_configuration_settings(\n    key_filter=\".appconfig.featureflag\u002F*\"\n)\nfor flag in flags:\n    data = json.loads(flag.value)\n    print(f\"{data['id']}: {'enabled' if data['enabled'] else 'disabled'}\")\n```\n\n## Read-Only Settings\n\n```python\n# Make setting read-only\nclient.set_read_only(\n    configuration_setting=setting,\n    read_only=True\n)\n\n# Remove read-only\nclient.set_read_only(\n    configuration_setting=setting,\n    read_only=False\n)\n```\n\n## Snapshots\n\n### Create Snapshot\n\n```python\nfrom azure.appconfiguration import ConfigurationSnapshot, ConfigurationSettingFilter\n\nsnapshot = ConfigurationSnapshot(\n    name=\"v1-snapshot\",\n    filters=[\n        ConfigurationSettingFilter(key=\"app:*\", label=\"production\")\n    ]\n)\n\ncreated = client.begin_create_snapshot(\n    name=\"v1-snapshot\",\n    snapshot=snapshot\n).result()\n```\n\n### List Snapshot Settings\n\n```python\nsettings = client.list_configuration_settings(\n    snapshot_name=\"v1-snapshot\"\n)\n```\n\n## Async Client\n\n```python\nfrom azure.appconfiguration.aio import AzureAppConfigurationClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def main():\n    credential = DefaultAzureCredential()\n    client = AzureAppConfigurationClient(\n        base_url=endpoint,\n        credential=credential\n    )\n    \n    setting = await client.get_configuration_setting(key=\"app:message\")\n    print(setting.value)\n    \n    await client.close()\n    await credential.close()\n```\n\n## Client Operations\n\n| Operation | Description |\n|-----------|-------------|\n| `get_configuration_setting` | Get single setting |\n| `set_configuration_setting` | Create or update setting |\n| `delete_configuration_setting` | Delete setting |\n| `list_configuration_settings` | List with filters |\n| `set_read_only` | Lock\u002Funlock setting |\n| `begin_create_snapshot` | Create point-in-time snapshot |\n| `list_snapshots` | List all snapshots |\n\n## Best Practices\n\n1. **Use labels** for environment separation (dev, staging, prod)\n2. **Use key prefixes** for logical grouping (app:database:*, app:cache:*)\n3. **Make production settings read-only** to prevent accidental changes\n4. **Create snapshots** before deployments for rollback capability\n5. **Use Entra ID** instead of connection strings in production\n6. **Refresh settings periodically** in long-running applications\n7. **Use feature flags** for gradual rollouts and A\u002FB testing\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fmicrosoft\u002Fskills\u002Fazure-appconfiguration-py",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill azure-appconfiguration-py",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill azure-appconfiguration-py",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill azure-appconfiguration-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-appconfiguration-py\u002FSKILL.md",true,[],[48,62,72,81,87,94],{"skillNo":49,"name":50,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":58,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[53],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[59,60,61],"model","model hierarchy","model hierarchy skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":68,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[67],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[69,70,71],"MCP","zoom","zoom mcp",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[78,79,80,70],"sdk","zoom apps sdk","apps",{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[83],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[92],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[89],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[96]]