Skip to main content Skills Marketplace Descubra e explore skills de IA criadas pela comunidade.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Copiar promptMostrar detalhes do prompt Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-appconfiguration-tsO comando permanece em uma só linha. Role horizontalmente para revisá-lo antes de copiar.
Prefere uma cópia local? Baixe os arquivos disponíveis atualmente no SkillsMP.
Baixar Zip Baixando... Ocupações relacionadas SOC
Baseado na classificação ocupacional SOC
name azure-appconfiguration-ts description Centralized configuration management with feature flags and dynamic refresh. type skill created 2026-02-27T00:00:00.000Z domain cloud-infrastructure category azure risk unknown source community tags ["skill","cloud-infrastructure","azure","appconfiguration"]
Azure App Configuration SDK for TypeScript
Centralized configuration management with feature flags and dynamic refresh.
Installation
npm install @azure/app-configuration @azure/identity
npm install @azure/app-configuration-provider @azure/identity
npm install @microsoft/feature-management
Environment Variables
AZURE_APPCONFIG_ENDPOINT=https://<your-resource>.azconfig.io
AZURE_APPCONFIG_CONNECTION_STRING=Endpoint=https://...;Id=...;Secret=...
Authentication
import { AppConfigurationClient } from "@azure/app-configuration" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const client = new AppConfigurationClient (
process.env .AZURE_APPCONFIG_ENDPOINT !,
new DefaultAzureCredential ()
);
const client2 = new AppConfigurationClient (
process.env .AZURE_APPCONFIG_CONNECTION_STRING !
);
CRUD Operations
Create/Update Settings
await client.addConfigurationSetting ({
key : "app:settings:message" ,
value : "Hello World" ,
label : "production" ,
: ,
: { : },
});
client. ({
: ,
: ,
: ,
});
existing = client. ({ : });
existing. = ;
client. (existing, { : });
contentType
"text/plain"
tags
environment
"prod"
await
setConfigurationSetting
key
"app:settings:message"
value
"Updated value"
label
"production"
const
await
getConfigurationSetting
key
"myKey"
value
"new value"
await
setConfigurationSetting
onlyIfUnchanged
true
Read Settings
const setting = await client.getConfigurationSetting ({
key : "app:settings:message" ,
label : "production" ,
});
console .log (setting.value );
const settings = client.listConfigurationSettings ({
keyFilter : "app:*" ,
labelFilter : "production" ,
});
for await (const setting of settings) {
console .log (`${setting.key} : ${setting.value} ` );
}
Delete Settings await client.deleteConfigurationSetting ({
key : "app:settings:message" ,
label : "production" ,
});
Lock/Unlock (Read-Only)
await client.setReadOnly ({ key : "myKey" , label : "prod" }, true );
await client.setReadOnly ({ key : "myKey" , label : "prod" }, false );
App Configuration Provider
Load Configuration import { load } from "@azure/app-configuration-provider" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const appConfig = await load (
process.env .AZURE_APPCONFIG_ENDPOINT !,
new DefaultAzureCredential (),
{
selectors : [
{ keyFilter : "app:*" , labelFilter : "production" },
],
trimKeyPrefixes : ["app:" ],
}
);
const value = appConfig.get ("settings:message" );
const config = appConfig.constructConfigurationObject ({ separator : ":" });
console .log (config.settings .message );
Dynamic Refresh const appConfig = await load (endpoint, credential, {
selectors : [{ keyFilter : "app:*" }],
refreshOptions : {
enabled : true ,
refreshIntervalInMs : 30_000 ,
},
});
appConfig.refresh ();
const disposer = appConfig.onRefresh (() => {
console .log ("Configuration refreshed!" );
});
app.use ((req, res, next ) => {
appConfig.refresh ();
next ();
});
Key Vault References const appConfig = await load (endpoint, credential, {
selectors : [{ keyFilter : "app:*" }],
keyVaultOptions : {
credential : new DefaultAzureCredential (),
secretRefreshIntervalInMs : 7200_000 ,
},
});
const dbPassword = appConfig.get ("database:password" );
Feature Flags
Create Feature Flag (Low-Level) import {
featureFlagPrefix,
featureFlagContentType,
FeatureFlagValue ,
ConfigurationSetting ,
} from "@azure/app-configuration" ;
const flag : ConfigurationSetting <FeatureFlagValue > = {
key : `${featureFlagPrefix} Beta` ,
contentType : featureFlagContentType,
value : {
id : "Beta" ,
enabled : true ,
description : "Beta feature" ,
conditions : {
clientFilters : [
{
name : "Microsoft.Targeting" ,
parameters : {
Audience : {
Users : ["user@example.com" ],
Groups : [{ Name : "beta-testers" , RolloutPercentage : 50 }],
DefaultRolloutPercentage : 0 ,
},
},
},
],
},
},
};
await client.addConfigurationSetting (flag);
Load and Evaluate Feature Flags import { load } from "@azure/app-configuration-provider" ;
import {
ConfigurationMapFeatureFlagProvider ,
FeatureManager ,
} from "@microsoft/feature-management" ;
const appConfig = await load (endpoint, credential, {
featureFlagOptions : {
enabled : true ,
selectors : [{ keyFilter : "*" }],
refresh : {
enabled : true ,
refreshIntervalInMs : 30_000 ,
},
},
});
const featureProvider = new ConfigurationMapFeatureFlagProvider (appConfig);
const featureManager = new FeatureManager (featureProvider);
const isEnabled = await featureManager.isEnabled ("Beta" );
const isEnabledForUser = await featureManager.isEnabled ("Beta" , {
userId : "user@example.com" ,
groups : ["beta-testers" ],
});
Snapshots
const snapshot = await client.beginCreateSnapshotAndWait ({
name : "release-v1.0" ,
retentionPeriod : 2592000 ,
filters : [{ keyFilter : "app:*" , labelFilter : "production" }],
});
const snap = await client.getSnapshot ("release-v1.0" );
const settings = client.listConfigurationSettingsForSnapshot ("release-v1.0" );
for await (const setting of settings) {
console .log (`${setting.key} : ${setting.value} ` );
}
await client.archiveSnapshot ("release-v1.0" );
await client.recoverSnapshot ("release-v1.0" );
const config = await load (endpoint, credential, {
selectors : [{ snapshotName : "release-v1.0" }],
});
Labels
await client.setConfigurationSetting ({
key : "database:host" ,
value : "dev-db.example.com" ,
label : "development" ,
});
await client.setConfigurationSetting ({
key : "database:host" ,
value : "prod-db.example.com" ,
label : "production" ,
});
const prodSettings = client.listConfigurationSettings ({
keyFilter : "*" ,
labelFilter : "production" ,
});
const noLabelSettings = client.listConfigurationSettings ({
labelFilter : "\0" ,
});
for await (const label of client.listLabels ()) {
console .log (label.name );
}
Key Types import {
AppConfigurationClient ,
ConfigurationSetting ,
FeatureFlagValue ,
SecretReferenceValue ,
featureFlagPrefix,
featureFlagContentType,
secretReferenceContentType,
ListConfigurationSettingsOptions ,
} from "@azure/app-configuration" ;
import { load } from "@azure/app-configuration-provider" ;
import {
FeatureManager ,
ConfigurationMapFeatureFlagProvider ,
} from "@microsoft/feature-management" ;
Best Practices
Use provider for apps - @azure/app-configuration-provider for runtime config
Use low-level for management - @azure/app-configuration for CRUD operations
Enable refresh - For dynamic configuration updates
Use labels - Separate configurations by environment
Use snapshots - For immutable release configurations
Sentinel pattern - Use a sentinel key to trigger full refresh
RBAC roles - App Configuration Data Reader for read-only access
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Cloud & Infrastruktur]]
Kategorie: [[Microsoft Azure]]
Navigation: [[Skills Uebersicht]], [[Home]]