From 2cd320888f8c5295adb5af150a59ff75add5fa0f Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 20 Sep 2023 16:08:14 +0800 Subject: [PATCH 01/13] Add examples and getting started instructions --- README.md | 30 ++++++++++++++++++++++++++++ examples/.env.template | 17 ++++++++++++++++ examples/README.md | 40 +++++++++++++++++++++++++++++++++++++ examples/helloworld.mjs | 25 +++++++++++++++++++++++ examples/helloworld_aad.mjs | 30 ++++++++++++++++++++++++++++ examples/package.json | 7 +++++++ 6 files changed, 149 insertions(+) create mode 100644 examples/.env.template create mode 100644 examples/README.md create mode 100644 examples/helloworld.mjs create mode 100644 examples/helloworld_aad.mjs create mode 100644 examples/package.json diff --git a/README.md b/README.md index e7e30d16..9b644368 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,36 @@ The [Azure App Configuration](https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview) provider for JavaScript enables developers to configure their applications using centralized configuration located in Azure App Configuration. +## Getting started + +### Prerequisites + +- An [Azure Subscription](https://azure.microsoft.com) +- An [App Configuration](https://docs.microsoft.com/azure/azure-app-configuration/) resource + +### Install the package + +```bash +npm install @azure/app-configuration-provider +``` + +### Use the API + +```js +import { load } from "@azure/app-configuration-provider"; + +// Load settings from App Configuration as a readonly Map. +const settings = await load(""); + +// Consume the settings by calling `get(key)`, e.g. +const value = settings.get(""); +``` + + +## Examples + +See code snippets under [examples/](./examples/) folder. + ## Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a diff --git a/examples/.env.template b/examples/.env.template new file mode 100644 index 00000000..8fefab37 --- /dev/null +++ b/examples/.env.template @@ -0,0 +1,17 @@ +# You can defined environment variables in .env file and load them with 'dotenv' package. +# This is a template of related environment variables in examples. +# Please rename this file to .env to make it working + +APPCONFIG_CONNECTION_STRING= + +# Used to specify endpoint when you are using role-based authentication instead of connection string. +# Should be https://.azconfig.io +APPCONFIG_ENDPOINT= + +# Used to authenticate using Microsoft Entra ID (Azure AD) as a service principal for role-based authentication. +# +# See the documentation for `EnvironmentCredential` at the following link: +# https://docs.microsoft.com/javascript/api/@azure/identity/environmentcredential +AZURE_TENANT_ID= +AZURE_CLIENT_ID= +AZURE_CLIENT_SECRET= diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..3046dd5b --- /dev/null +++ b/examples/README.md @@ -0,0 +1,40 @@ +# Examples for Azure App Configuration JavaScript Provider + +These examples show how to use the JavaScript Provider for Azure App Configuration in some common scenarios. + +## Prerequisites + +The sample programs are compatible with [LTS versions of Node.js](https://github.com/nodejs/release#release-schedule). + +You need [an Azure subscription][freesub] and the following Azure resources to run these sample programs: + +- [Azure App Configuration account][createinstance_azureappconfigurationaccount] + +Samples retrieve credentials to access the service endpoint from environment variables. Alternatively, edit the source code to include the appropriate credentials. See each individual sample for details on which environment variables/credentials it requires to function. + +## Setup + +To run the samples using the published version of the package: + +1. Install the dependencies using `npm`: + +```bash +npm install +``` + +2. Edit the file `.env.template`, adding the correct credentials to access the Azure service and run the samples. Then rename the file from `.env.template` to just `.env`. The sample programs will read this file automatically. + +3. Run whichever samples you like (note that some samples may require additional setup, see the table above): + +```bash +node helloorld.mjs +``` + +Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): + +```bash +npx cross-env APPCONFIG_CONNECTION_STRING="" node helloworld.mjs +``` + +[freesub]: https://azure.microsoft.com/free/ +[createinstance_azureappconfigurationaccount]: https://docs.microsoft.com/azure/azure-app-configuration/quickstart-aspnet-core-app?tabs=core5x#create-an-app-configuration-store \ No newline at end of file diff --git a/examples/helloworld.mjs b/examples/helloworld.mjs new file mode 100644 index 00000000..1d9f8bdc --- /dev/null +++ b/examples/helloworld.mjs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as dotenv from "dotenv"; +dotenv.config() + +/** + * This example retrives all settings starting with "app.settings.". + * Value of config "app.settings.message" will be printed. + * + * Below environment variables are required for this example: + * - APPCONFIG_CONNECTION_STRING + */ + +import { load } from "@azure/app-configuration-provider"; +const connectionString = process.env.APPCONFIG_CONNECTION_STRING; +const settings = await load(connectionString, { + selectors: [{ + keyFilter: "app.settings.*" + }], + trimKeyPrefixes: ["app.settings."] +}); +const message = settings.get("message"); + +console.log(`Message from Azure App Configuration: ${message}`); \ No newline at end of file diff --git a/examples/helloworld_aad.mjs b/examples/helloworld_aad.mjs new file mode 100644 index 00000000..655135d8 --- /dev/null +++ b/examples/helloworld_aad.mjs @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as dotenv from "dotenv"; +dotenv.config() + +/** + * This example retrives all settings starting with "app.settings.". + * Value of config "app.settings.message" will be printed. + * + * Below environment variables are required for this example: + * - APPCONFIG_ENDPOINT + * - AZURE_TENANT_ID + * - AZURE_CLIENT_ID + * - AZURE_CLIENT_SECRET + */ + +import { load } from "@azure/app-configuration-provider"; +import { getDefaultAzureCredential } from "@azure/identity"; +const endpoint = process.env.APPCONFIG_ENDPOINT; +const credential = getDefaultAzureCredential(); +const settings = await load(endpoint, credential, { + selectors: [{ + keyFilter: "app.settings.*" + }], + trimKeyPrefixes: ["app.settings."] +}); +const message = settings.get("message"); + +console.log(`Message from Azure App Configuration: ${message}`); \ No newline at end of file diff --git a/examples/package.json b/examples/package.json new file mode 100644 index 00000000..cb0fdf19 --- /dev/null +++ b/examples/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "@azure/app-configuration-provider": "latest", + "@azure/identity": "^3.3.0", + "dotenv": "^16.3.1" + } +} From 0556d394d627aa30178a3371c261235cd71cc6d3 Mon Sep 17 00:00:00 2001 From: Yan Zhang <2351748+Eskibear@users.noreply.github.com> Date: Thu, 21 Sep 2023 15:09:05 +0800 Subject: [PATCH 02/13] fix typo --- examples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 3046dd5b..c909581f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -27,7 +27,7 @@ npm install 3. Run whichever samples you like (note that some samples may require additional setup, see the table above): ```bash -node helloorld.mjs +node helloworld.mjs ``` Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): @@ -37,4 +37,4 @@ npx cross-env APPCONFIG_CONNECTION_STRING="" node h ``` [freesub]: https://azure.microsoft.com/free/ -[createinstance_azureappconfigurationaccount]: https://docs.microsoft.com/azure/azure-app-configuration/quickstart-aspnet-core-app?tabs=core5x#create-an-app-configuration-store \ No newline at end of file +[createinstance_azureappconfigurationaccount]: https://docs.microsoft.com/azure/azure-app-configuration/quickstart-aspnet-core-app?tabs=core5x#create-an-app-configuration-store From 45495ddcc302e9c9e8f5b7df4221db07d9a80e4c Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Tue, 26 Sep 2023 07:52:31 +0800 Subject: [PATCH 03/13] add stack overflow guide in support.md --- SUPPORT.md | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/SUPPORT.md b/SUPPORT.md index 291d4d43..4cf80dd9 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,13 +1,3 @@ -# TODO: The maintainer of this repo has not yet edited this file - -**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project? - -- **No CSS support:** Fill out this template with information about how to file issues and get help. -- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps. -- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide. - -*Then remove this first heading from this SUPPORT.MD file before publishing your repo.* - # Support ## How to file issues and get help @@ -16,10 +6,8 @@ This project uses GitHub Issues to track bugs and feature requests. Please searc issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue. -For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE -FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER -CHANNEL. WHERE WILL YOU HELP PEOPLE?**. +For help and questions about using this project, please ask a question in Stack Overflow with [azure-app-configuration](https://stackoverflow.com/questions/tagged/azure-app-configuration) tag. ## Microsoft Support Policy -Support for this **PROJECT or PRODUCT** is limited to the resources listed above. +Support for this project is limited to the resources listed above. From 55984bcbf413a5eae6323ecf6ac342a63edf72f0 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Wed, 27 Sep 2023 15:52:26 +0800 Subject: [PATCH 04/13] add example for secret reference --- examples/secretReference.mjs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 examples/secretReference.mjs diff --git a/examples/secretReference.mjs b/examples/secretReference.mjs new file mode 100644 index 00000000..36b41656 --- /dev/null +++ b/examples/secretReference.mjs @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import * as dotenv from "dotenv"; +dotenv.config() + +/** + * This example retrives all settings and resolve secret value from keyvault. + * Before you run it, please add a sample keyvault secret reference "app.secret". + * Value of secret "app.secret" will be printed. + * + * Below environment variables are required for this example: + * - APPCONFIG_CONNECTION_STRING + * - APPCONFIG_ENDPOINT + * - AZURE_TENANT_ID + * - AZURE_CLIENT_ID + * - AZURE_CLIENT_SECRET + */ + +import { load } from "@azure/app-configuration-provider"; +import { getDefaultAzureCredential } from "@azure/identity"; +const connectionString = process.env.APPCONFIG_CONNECTION_STRING; +const settings = await load(connectionString, { + keyVaultOptions: { + credential: getDefaultAzureCredential() + } +}); +const secretKey = "app.secret"; +const value = settings.get(secretKey); + +console.log(`Get the secret from keyvault key: ${secretKey}, value: ${value}`); \ No newline at end of file From bb3c3ce8a7cf59bd2df085b7e865612991f759b6 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 15:35:57 +0800 Subject: [PATCH 05/13] update .env.template --- .gitignore | 5 ++++- examples/.env.template | 11 +++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 5e0a5c36..d946d028 100644 --- a/.gitignore +++ b/.gitignore @@ -406,4 +406,7 @@ types/ .env # npm pack -*.tgz \ No newline at end of file +*.tgz + +# examples +examples/package-lock.json \ No newline at end of file diff --git a/examples/.env.template b/examples/.env.template index 8fefab37..daf09ed8 100644 --- a/examples/.env.template +++ b/examples/.env.template @@ -1,16 +1,11 @@ -# You can defined environment variables in .env file and load them with 'dotenv' package. +# You can define environment variables in .env file and load them with 'dotenv' package. # This is a template of related environment variables in examples. -# Please rename this file to .env to make it working - +# To use this file directly, please rename it to .env APPCONFIG_CONNECTION_STRING= -# Used to specify endpoint when you are using role-based authentication instead of connection string. -# Should be https://.azconfig.io APPCONFIG_ENDPOINT= -# Used to authenticate using Microsoft Entra ID (Azure AD) as a service principal for role-based authentication. -# -# See the documentation for `EnvironmentCredential` at the following link: +# Credential used to authenticate using Microsoft Entra ID (Azure AD) role-based authentication. # https://docs.microsoft.com/javascript/api/@azure/identity/environmentcredential AZURE_TENANT_ID= AZURE_CLIENT_ID= From 531f007a2f3c91f906948fba16314e32beb86d1e Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 15:38:24 +0800 Subject: [PATCH 06/13] update READEME.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df535d16..4f61fe7a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The [Azure App Configuration](https://docs.microsoft.com/en-us/azure/azure-app-c ### Prerequisites - An [Azure Subscription](https://azure.microsoft.com) -- An [App Configuration](https://docs.microsoft.com/azure/azure-app-configuration/) resource +- An [App Configuration](https://learn.microsoft.com/en-us/azure/azure-app-configuration/quickstart-azure-app-configuration-create?tabs=azure-portal) resource ### Install the package @@ -54,6 +54,6 @@ trademarks or logos is subject to and must follow Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. -# Data Collection +## Data Collection The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry by setting the environment variable `AZURE_APP_CONFIGURATION_TRACING_DISABLED` to `TRUE`. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. \ No newline at end of file From 00f8e6b619e31c538554d53e911402a179b2ae12 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 15:45:15 +0800 Subject: [PATCH 07/13] update examples/README.md --- examples/README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/examples/README.md b/examples/README.md index c909581f..82fe4702 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,11 +6,11 @@ These examples show how to use the JavaScript Provider for Azure App Configurati The sample programs are compatible with [LTS versions of Node.js](https://github.com/nodejs/release#release-schedule). -You need [an Azure subscription][freesub] and the following Azure resources to run these sample programs: +You need [an Azure subscription](https://azure.microsoft.com/free/) and the following Azure resources to run these sample programs: -- [Azure App Configuration account][createinstance_azureappconfigurationaccount] +- [Azure App Configuration store](https://learn.microsoft.com/en-us/azure/azure-app-configuration/quickstart-azure-app-configuration-create?tabs=azure-portal) -Samples retrieve credentials to access the service endpoint from environment variables. Alternatively, edit the source code to include the appropriate credentials. See each individual sample for details on which environment variables/credentials it requires to function. +Samples retrieve credentials to accessyour App Configuration store from environment variables. Alternatively, edit the source code to include the appropriate credentials. See each individual sample for details on which environment variables/credentials it requires to function. ## Setup @@ -35,6 +35,3 @@ Alternatively, run a single sample with the correct environment variables set (s ```bash npx cross-env APPCONFIG_CONNECTION_STRING="" node helloworld.mjs ``` - -[freesub]: https://azure.microsoft.com/free/ -[createinstance_azureappconfigurationaccount]: https://docs.microsoft.com/azure/azure-app-configuration/quickstart-aspnet-core-app?tabs=core5x#create-an-app-configuration-store From 0dee86900e9bd7ae4142a0ba08394682b2eff378 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 15:49:46 +0800 Subject: [PATCH 08/13] update secretReference.mjs to reuse same credential --- examples/secretReference.mjs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/secretReference.mjs b/examples/secretReference.mjs index 36b41656..e732d471 100644 --- a/examples/secretReference.mjs +++ b/examples/secretReference.mjs @@ -5,12 +5,11 @@ import * as dotenv from "dotenv"; dotenv.config() /** - * This example retrives all settings and resolve secret value from keyvault. - * Before you run it, please add a sample keyvault secret reference "app.secret". + * Before you run it, please add a Key Vault reference with key "app.secret" in your App Configuration store. + * This example uses the same identity to authenticate with both App Configuration and Key Vault. Make sure that this identity has access to read secrets from Key Vault. * Value of secret "app.secret" will be printed. * * Below environment variables are required for this example: - * - APPCONFIG_CONNECTION_STRING * - APPCONFIG_ENDPOINT * - AZURE_TENANT_ID * - AZURE_CLIENT_ID @@ -19,10 +18,11 @@ dotenv.config() import { load } from "@azure/app-configuration-provider"; import { getDefaultAzureCredential } from "@azure/identity"; -const connectionString = process.env.APPCONFIG_CONNECTION_STRING; -const settings = await load(connectionString, { +const endpoint = process.env.APPCONFIG_ENDPOINT; +const credential = getDefaultAzureCredential(); +const settings = await load(endpoint, credential, { keyVaultOptions: { - credential: getDefaultAzureCredential() + credential: credential } }); const secretKey = "app.secret"; From cc75d3b01ff4a7dfd9bfacd4afbbc46777a1c73f Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 15:58:00 +0800 Subject: [PATCH 09/13] describe trimKeyPrefixes in helloworld.mjs --- examples/helloworld.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/helloworld.mjs b/examples/helloworld.mjs index 1d9f8bdc..29249456 100644 --- a/examples/helloworld.mjs +++ b/examples/helloworld.mjs @@ -5,7 +5,8 @@ import * as dotenv from "dotenv"; dotenv.config() /** - * This example retrives all settings starting with "app.settings.". + * This example retrives all settings with key following pattern "app.settings.*", i.e. starting with "app.settings.". + * With the option `trimKeyPrefixes`, it trims the prefix "app.settings." from keys for simplicity. * Value of config "app.settings.message" will be printed. * * Below environment variables are required for this example: From 9a2bc53b3ca401439efd27b39efba4de4167ade4 Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 16:00:55 +0800 Subject: [PATCH 10/13] update wording in examples/README.md --- examples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 82fe4702..3b10e40f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -22,9 +22,9 @@ To run the samples using the published version of the package: npm install ``` -2. Edit the file `.env.template`, adding the correct credentials to access the Azure service and run the samples. Then rename the file from `.env.template` to just `.env`. The sample programs will read this file automatically. +2. Edit the file `.env.template`, adding the correct credentials to access the Azure service and rename the file from `.env.template` to just `.env`. Then run the samples, it will read this file automatically. -3. Run whichever samples you like (note that some samples may require additional setup, see the table above): +3. Run whichever samples you like: ```bash node helloworld.mjs From 14ece550088fcbf7d1e3fce974001656b2709d8d Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Thu, 28 Sep 2023 16:06:24 +0800 Subject: [PATCH 11/13] describe trimKeyPrefixes in helloworld_aad.mjs --- examples/helloworld_aad.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/helloworld_aad.mjs b/examples/helloworld_aad.mjs index 655135d8..5e95eb97 100644 --- a/examples/helloworld_aad.mjs +++ b/examples/helloworld_aad.mjs @@ -5,7 +5,8 @@ import * as dotenv from "dotenv"; dotenv.config() /** - * This example retrives all settings starting with "app.settings.". + * This example retrives all settings with key following pattern "app.settings.*", i.e. starting with "app.settings.". + * With the option `trimKeyPrefixes`, it trims the prefix "app.settings." from keys for simplicity. * Value of config "app.settings.message" will be printed. * * Below environment variables are required for this example: From 49cff582edbdcfa4bd8bd33c8ac551b61ddbda8e Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 29 Sep 2023 07:24:46 +0800 Subject: [PATCH 12/13] address comments: reorganize examples/README.md --- examples/README.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/examples/README.md b/examples/README.md index 3b10e40f..05e1c352 100644 --- a/examples/README.md +++ b/examples/README.md @@ -10,7 +10,9 @@ You need [an Azure subscription](https://azure.microsoft.com/free/) and the foll - [Azure App Configuration store](https://learn.microsoft.com/en-us/azure/azure-app-configuration/quickstart-azure-app-configuration-create?tabs=azure-portal) -Samples retrieve credentials to accessyour App Configuration store from environment variables. Alternatively, edit the source code to include the appropriate credentials. See each individual sample for details on which environment variables/credentials it requires to function. +Samples retrieve credentials to access your App Configuration store from environment variables. +Alternatively, edit the source code to include the appropriate credentials. +See each individual sample for details on which environment variables/credentials it requires to function. ## Setup @@ -18,20 +20,19 @@ To run the samples using the published version of the package: 1. Install the dependencies using `npm`: -```bash -npm install -``` + ```bash + npm install + ``` -2. Edit the file `.env.template`, adding the correct credentials to access the Azure service and rename the file from `.env.template` to just `.env`. Then run the samples, it will read this file automatically. +2. There are two ways to run the samples using correct credentials: -3. Run whichever samples you like: +- Edit the file `.env.template`, adding the correct credentials to access the Azure service and rename the file from `.env.template` to just `.env`. +Then run the samples, it will read this file automatically. + ```bash + node helloworld.mjs + ``` -```bash -node helloworld.mjs -``` - -Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): - -```bash -npx cross-env APPCONFIG_CONNECTION_STRING="" node helloworld.mjs -``` +- Alternatively, run a single sample with the correct environment variables set (setting up the `.env` file is not required if you do this), for example (cross-platform): + ```bash + npx cross-env APPCONFIG_CONNECTION_STRING="" node helloworld.mjs + ``` From 2ba9d7860f726b50380661d14d60eb3615d513df Mon Sep 17 00:00:00 2001 From: Yan Zhang Date: Fri, 29 Sep 2023 10:37:49 +0800 Subject: [PATCH 13/13] address comments: the Azure service -> your Azure App Configuration store --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index 05e1c352..74b5ceed 100644 --- a/examples/README.md +++ b/examples/README.md @@ -26,7 +26,7 @@ To run the samples using the published version of the package: 2. There are two ways to run the samples using correct credentials: -- Edit the file `.env.template`, adding the correct credentials to access the Azure service and rename the file from `.env.template` to just `.env`. +- Edit the file `.env.template`, adding the correct credentials to access your Azure App Configuration store and rename the file from `.env.template` to just `.env`. Then run the samples, it will read this file automatically. ```bash node helloworld.mjs