Skip to main content Home Creators microsoft Skills azure-appconfiguration-ts
azure-appconfiguration-ts Build applications using Azure App Configuration SDK for JavaScript (@azure/app-configuration). Use when working with configuration settings, feature flags, Key Vault references, dynamic refresh, or centralized configuration management.
Jump to install Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/microsoft/skills --skill azure-appconfiguration-tsThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end with azd. USE FOR: azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy, prompt agent create, create agent, update agent, add tool to agent, invoke agent, agent.yaml, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, prompt optimizer, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, troubleshoot agent, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, fine-tuned model, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure-prepare).
azure-enterprise-infra-planner Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.
Assess whether source code is ready to deploy to Azure — the check BEFORE infrastructure work. Evaluates build health, app completeness, dependencies and local services, stack compatibility, and deployment feasibility. Answers questions about what your app needs before it can be deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".
Related occupations SOC
Based on SOC occupation classification
name azure-appconfiguration-ts description Build applications using Azure App Configuration SDK for JavaScript (@azure/app-configuration). Use when working with configuration settings, feature flags, Key Vault references, dynamic refresh, or centralized configuration management. license MIT metadata {"author":"Microsoft","version":"1.0.0","package":"@azure/app-configuration"}
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=...
AZURE_TOKEN_CREDENTIALS=prod
Authentication
import { AppConfigurationClient } from ;
{ , } ;
credential = ({ : [ ]});
client = (
process. . !,
credential
);
client2 = (
process. . !
);
"@azure/app-configuration"
import
DefaultAzureCredential
ManagedIdentityCredential
from
"@azure/identity"
const
new
DefaultAzureCredential
requiredEnvVars
"AZURE_TOKEN_CREDENTIALS"
const
new
AppConfigurationClient
env
AZURE_APPCONFIG_ENDPOINT
const
new
AppConfigurationClient
env
AZURE_APPCONFIG_CONNECTION_STRING
CRUD Operations
Create/Update Settings
await client.addConfigurationSetting ({
key : "app:settings:message" ,
value : "Hello World" ,
label : "production" ,
contentType : "text/plain" ,
tags : { environment : "prod" },
});
await client.setConfigurationSetting ({
key : "app:settings:message" ,
value : "Updated value" ,
label : "production" ,
});
const existing = await client.getConfigurationSetting ({ key : "myKey" });
existing.value = "new value" ;
await client.setConfigurationSetting (existing, { 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 ({requiredEnvVars : ["AZURE_TOKEN_CREDENTIALS" ]}),
{
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 ({requiredEnvVars : ["AZURE_TOKEN_CREDENTIALS" ]}),
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