[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FVYJK51YNMMF181PMDQ0QS":3,"skill-same:01M6FVYJK51YNMMF181PMDQ0QS":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":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":13,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6FVYJK51YNMMF181PMDQ0QS","azure-appconfiguration-py",null,"reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevops\u002Fazure-appconfiguration-py\u002FSKILL.md",[],[18,19],"azure","azure appconfiguration py","2026-11-10 10:12:30",false,"---\nname: azure-appconfiguration-py\ndescription: \"|\"\n  Azure App Configuration SDK for Python. Use for centralized configuration management, feature flags, and dynamic settings.\n  Triggers: \"azure-appconfiguration\", \"AzureAppConfigurationClient\", \"feature flags\", \"configuration\", \"key-value settings\".\npackage: azure-appconfiguration\nrisk: unknown\nsource: community\n---\n\n# 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\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# 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\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{},"master","dff58085da947e81e8418c922055644bf0082b1b","devops\u002Fazure-appconfiguration-py","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add reikiplanet\u002Fdaoskills --skill azure-appconfiguration-py",{"tool":39,"command":40},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill azure-appconfiguration-py",{"tool":42,"command":43},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill azure-appconfiguration-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevops\u002Fazure-appconfiguration-py\u002FSKILL.md",true,[],[48,75,87,102,122,145],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":20},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":20},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[82,83,73,84,85,61,63,64,65,58,86,59],"ar","vr ar","interaction","requirements","performance",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":20},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[89,94,95,96,97,98,61,99,65,100,101,58],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":20},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[109,110,111,112,113,61,114,115,116,117,99,118,119,120,121],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":20},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[129,130,131,132,133,134,135,136,61,65,58,137,59,138,139,140,141,142,143,144],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":20},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[152,153,154,155,156,157,158,159,142,99,160,161,162,61,163,164,165,139,166,167],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]