Skip to content

Commit c75a46b

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-rbac-pim-integration-conversion-powershell
2 parents a1ccfc8 + cf79411 commit c75a46b

18 files changed

+370
-86
lines changed

articles/api-center/build-register-apis-vscode-extension.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: API developers can use the Azure API Center extension for Visual St
44
author: dlepow
55
ms.service: azure-api-center
66
ms.topic: how-to
7-
ms.date: 10/16/2024
7+
ms.date: 11/08/2024
88
ms.author: danlep
99
ms.collection: ce-skilling-ai-copilot
1010
ms.custom:
@@ -16,7 +16,8 @@ ms.custom:
1616
API developers in your organization can build and register APIs in your [API center](overview.md) inventory by using the Azure API Center extension for Visual Studio Code. API developers can:
1717

1818
* Add an existing API to an API center as a one-time operation, or integrate a development pipeline to register APIs as part of a CI/CD workflow.
19-
* Generate OpenAPI specification files from API code using GitHub Copilot, and register the API to an API center.
19+
* Use GitHub Copilot to generate new OpenAPI specs from API code.
20+
* Use natural language prompts with the API Center plugin for GitHub Copilot for Azure to create new OpenAPI specs.
2021

2122
API developers can also take advantage of features in the extension to [discover and consume APIs](discover-apis-vscode-extension.md) in the API center and ensure [API governance](govern-apis-vscode-extension.md).
2223

@@ -27,6 +28,7 @@ The following Visual Studio Code extensions are needed for the specified scenari
2728
* [GitHub Actions](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions) - to register APIs using a CI/CD pipeline with GitHub Actions
2829
* [Azure Pipelines](https://marketplace.visualstudio.com/items?itemName=ms-azure-devops.azure-pipelines) - to register APIs using a CI/CD pipeline with Azure Pipelines
2930
* [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - to generate OpenAPI specification files from API code
31+
* [GitHub Copilot for Azure](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azure-github-copilot) - to generate OpenAPI specification files using the Azure API Center Plugin for GitHub Copilot for Azure
3032

3133
[!INCLUDE [vscode-extension-setup](includes/vscode-extension-setup.md)]
3234

@@ -51,9 +53,9 @@ The following steps register an API in your API center with a CI/CD pipeline. Wi
5153

5254
Learn more about setting up a [GitHub Actions workflow](register-apis-github-actions.md) to register APIs with your API center.
5355

54-
## Generate OpenAPI specification file from API code
56+
## Generate OpenAPI spec from API code
5557

56-
Use the power of GitHub Copilot with the Azure API Center extension for Visual Studio Code to create an OpenAPI specification file from your API code. Right-click on the API code, select **Copilot** from the options, and select **Generate API documentation**. GitHub Copilot creates an OpenAPI specification file.
58+
Use the power of [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) with the Azure API Center extension for Visual Studio Code to create an OpenAPI specification file from your API code. Right-click on the API code, select **Copilot** from the options, and select **Generate API documentation**. GitHub Copilot creates an OpenAPI specification file.
5759

5860
> [!NOTE]
5961
> This feature is available in the pre-release version of the API Center extension.
@@ -62,6 +64,33 @@ Use the power of GitHub Copilot with the Azure API Center extension for Visual S
6264

6365
After generating the OpenAPI specification file and checking for accuracy, you can register the API with your API center using the **Azure API Center: Register API** command.
6466

67+
## Generate OpenAPI spec using natural language prompts
68+
69+
The API Center plugin for [GitHub Copilot for Azure](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azure-github-copilot) helps you design new APIs starting from natural language prompts. With AI assistance, quickly generate an OpenAPI spec for API development that complies with your organization's standards.
70+
71+
> [!NOTE]
72+
> This feature is available in the pre-release version of the API Center extension.
73+
74+
1. If desired, set an active API style guide. Use the **Ctrl+Shift+P** keyboard shortcut to open the Command Palette. Type **Azure API Center: Set API Style Guide**, make a selection, and hit **Enter**.
75+
76+
If no style guide is set, the default `spectral:oas` ruleset is used.
77+
1. In the chat panel, make a request in natural language to the `@azure` agent to describe what the API does. Example:
78+
79+
```vscode
80+
@azure Generate OpenAPI spec: An API that allows customers to pay for an order using various payment methods such as cash, checks, credit cards, and debit cards.
81+
```
82+
83+
The agent responds with an OpenAPI specification document.
84+
85+
:::image type="content" source="media/build-register-apis-vscode-extension/generate-api-specification.png" alt-text="Screenshot showing how to use @azure extension to generate an OpenAPI spec from a prompt.":::
86+
87+
88+
1. Review the generated output for accuracy and compliance with your API style guide. Refine the prompt if needed to regenerate.
89+
90+
> [!TIP]
91+
> Effective prompts focus on an API's business requirements rather than implementation details. Shorter prompts sometimes work better than longer ones.
92+
1. When it meets your requirements, save the generated OpenAPI specification to a file.
93+
1. Register the API with your API center. Select **Register your API in API Center** button in the chat panel, or select **Azure API Center: Register API** from the Command Palette, and follow the prompts.
6594
6695
## Related content
6796
129 KB
Loading

articles/azure-app-configuration/TOC.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
href: quickstart-java-spring-app.md
2525
- name: Python
2626
href: quickstart-python-provider.md
27-
- name: JavaScript/Node.js
27+
- name: Node.js
2828
href: quickstart-javascript-provider.md
2929
- name: Azure Functions
3030
href: quickstart-azure-functions-csharp.md
@@ -42,8 +42,10 @@
4242
href: quickstart-feature-flag-spring-boot.md
4343
- name: Azure Functions
4444
href: quickstart-feature-flag-azure-functions-csharp.md
45-
- name: Python app
45+
- name: Python
4646
href: quickstart-feature-flag-python.md
47+
- name: Node.js
48+
href: quickstart-feature-flag-javascript.md
4749
- name: Azure Kubernetes Service
4850
href: quickstart-feature-flag-azure-kubernetes-service.md
4951
- name: Service integration
@@ -88,7 +90,7 @@
8890
href: enable-dynamic-configuration-java-spring-app.md
8991
- name: Python
9092
href: enable-dynamic-configuration-python.md
91-
- name: JavaScript
93+
- name: Node.js
9294
href: enable-dynamic-configuration-javascript.md
9395
- name: Azure Kubernetes Service
9496
href: enable-dynamic-configuration-azure-kubernetes-service.md
@@ -138,6 +140,8 @@
138140
href: howto-feature-filters.md
139141
- name: ASP.NET Core
140142
href: howto-feature-filters-aspnet-core.md
143+
- name: JavaScript
144+
href: howto-feature-filters-javascript.md
141145
- name: Python
142146
href: howto-feature-filters-python.md
143147
- name: Enable features on a schedule
@@ -146,6 +150,8 @@
146150
href: howto-timewindow-filter.md
147151
- name: ASP.NET Core
148152
href: howto-timewindow-filter-aspnet-core.md
153+
- name: JavaScipt
154+
href: howto-timewindow-filter-javascript.md
149155
- name: Roll out features to targeted audience
150156
items:
151157
- name: Overview
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: Enable conditional features with a custom filter in a Node.js application
3+
titleSuffix: Azure App Configuration
4+
description: Learn how to implement a custom feature filter to enable conditional feature flags for your Node.js application.
5+
ms.service: azure-app-configuration
6+
ms.devlang: javascript
7+
author: zhiyuanliang-ms
8+
ms.author: zhiyuanliang
9+
ms.topic: how-to
10+
ms.custom: mode-other, devx-track-js
11+
ms.date: 09/26/2024
12+
---
13+
14+
# Tutorial: Enable conditional features with a custom filter in a JavaScript application
15+
16+
Feature flags can use feature filters to enable features conditionally. To learn more about feature filters, see [Tutorial: Enable conditional features with feature filters](./howto-feature-filters.md).
17+
18+
The example used in this tutorial is based on the Node.js application introduced in the feature management [quickstart](./quickstart-feature-flag-javascript.md). Before proceeding further, complete the quickstart to create a Node.js application with a *Beta* feature flag. Once completed, you must [add a custom feature filter](./howto-feature-filters.md) to the *Beta* feature flag in your App Configuration store.
19+
20+
In this tutorial, you'll learn how to implement a custom feature filter and use the feature filter to enable features conditionally. We are using the Node.js console app as an example, but you can also use the custom feature filter in other JavaScript applications.
21+
22+
## Prerequisites
23+
24+
- Create a [console app with a feature flag](./quickstart-feature-flag-javascript.md).
25+
- [Add a custom feature filter to the feature flag](./howto-feature-filters.md)
26+
27+
## Implement a custom feature filter
28+
29+
You've added a custom feature filter named **Random** with a **Percentage** parameter for your *Beta* feature flag in the prerequisites. Next, you implement the feature filter to enable the *Beta* feature flag based on the chance defined by the **Percentage** parameter.
30+
31+
1. Open the file *app.js* and add the `RandomFilter` with the following code.
32+
33+
``` javascript
34+
class RandomFilter {
35+
name = "Random";
36+
evaluate(context) {
37+
const percentage = context.parameters.Percentage;
38+
const randomNumber = Math.random() * 100;
39+
return randomNumber <= percentage;
40+
}
41+
}
42+
```
43+
44+
You added a `RandomFilter` class that has a single method named `evaluate`, which is called whenever a feature flag is evaluated. In `evaluate`, a feature filter enables a feature flag by returning `true`.
45+
46+
You set the name to of `RandomFilter` to **Random**, which matches the filter name you set in the *Beta* feature flag in Azure App Configuration.
47+
48+
1. Register the `RandomFilter` when creating the `FeatureManager`.
49+
50+
``` javascript
51+
const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
52+
```
53+
54+
## Feature filter in action
55+
56+
When you run the application the configuration provider will load the *Beta* feature flag from Azure App Configuration. The result of the `isEnabled("Beta")` method will be printed to the console. As the `RandomFilter` is implemented and used by the *Beta* feature flag, the result will be `True` 50 percent of the time and `False` the other 50 percent of the time.
57+
58+
Running the application will show that the *Beta* feature flag is sometimes enabled and sometimes not.
59+
60+
``` bash
61+
Beta is enabled: true
62+
Beta is enabled: false
63+
Beta is enabled: false
64+
Beta is enabled: true
65+
Beta is enabled: true
66+
Beta is enabled: false
67+
Beta is enabled: false
68+
Beta is enabled: false
69+
Beta is enabled: true
70+
Beta is enabled: true
71+
```
72+
73+
## Next steps
74+
75+
To learn more about the built-in feature filters, continue to the following tutorials.
76+
77+
> [!div class="nextstepaction"]
78+
> [Enable features on a schedule](./howto-timewindow-filter.md)
79+
80+
> [!div class="nextstepaction"]
81+
> [Roll out features to targeted audience](./howto-targetingfilter.md)

articles/azure-app-configuration/howto-feature-filters.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,15 @@ You can create custom feature filters that enable features based on your specifi
5555
> [!div class="mx-imgBorder"]
5656
> ![Screenshot of the Azure portal, applying new custom filter.](./media/feature-filters/feature-flag-edit-apply-filter.png)
5757
58-
You have successfully added a custom filter to a feature flag. Follow the instructions in the [Next Steps](#next-steps) section to implement the feature filter into your application for the language or platform you are using.
58+
You have successfully added a custom filter to a feature flag.
5959

60-
## Next steps
61-
62-
In this tutorial, you learned the concept of feature filter and added a custom feature filter to a feature flag.
63-
64-
To learn how to implement a custom feature filter, continue to the following tutorial:
60+
1. Continue to the following instructions to implement the feature filter into your application for the language or platform you are using.
6561

66-
> [!div class="nextstepaction"]
67-
> [ASP.NET Core](./howto-feature-filters-aspnet-core.md)
62+
- [ASP.NET Core](./howto-feature-filters-aspnet-core.md)
63+
- [Node.js](./howto-feature-filters-javascript.md)
64+
- [Python](./howto-feature-filters-python.md)
6865

69-
> [!div class="nextstepaction"]
70-
> [Python](./howto-feature-filters-python.md)
66+
## Next steps
7167

7268
To learn more about the built-in feature filters, continue to the following tutorials:
7369

articles/azure-app-configuration/howto-targetingfilter.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,13 @@ In this article, you will learn how to add and configure a targeting filter for
6868
> [!div class="mx-imgBorder"]
6969
> ![Screenshot of the Azure portal, applying new targeting filter.](./media/feature-filters/feature-flag-edit-apply-targeting-filter.png)
7070
71-
Now, you successfully added a targeting filter for your feature flag. This targeting filter will use the targeting rule you configured to enable or disable the feature flag for specific users and groups. Follow the instructions in the [Next Steps](#next-steps) section to learn how it works in your application for the language or platform you are using.
71+
Now, you successfully added a targeting filter for your feature flag. This targeting filter will use the targeting rule you configured to enable or disable the feature flag for specific users and groups.
7272

73-
## Next steps
74-
75-
In this tutorial, you learned the concept of the targeting filter and added it to a feature flag.
73+
1. Continue to the following instructions to use the feature flag with a targeting filter in your application for the language or platform you are using.
7674

77-
To learn how to use the feature flag with a targeting filter in your application, continue to the following tutorial.
75+
- [ASP.NET Core](./howto-targetingfilter-aspnet-core.md)
7876

79-
> [!div class="nextstepaction"]
80-
> [ASP.NET Core](./howto-targetingfilter-aspnet-core.md)
77+
## Next steps
8178

8279
To learn more about the feature filters, continue to the following tutorials:
8380

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: Enable features on a schedule in a Node.js application
3+
titleSuffix: Azure App Configuration
4+
description: Learn how to enable feature flags on a schedule in a Node.js application.
5+
ms.service: azure-app-configuration
6+
ms.devlang: javascript
7+
author: zhiyuanliang-ms
8+
ms.author: zhiyuanliang
9+
ms.topic: how-to
10+
ms.custom: mode-other, devx-track-js
11+
ms.date: 09/26/2024
12+
---
13+
14+
# Tutorial: Enable features on a schedule in a Node.js application
15+
16+
In this tutorial, you use the time window filter to enable a feature on a schedule for a Node.js application.
17+
18+
The example used in this tutorial is based on the Node.js application introduced in the feature management [quickstart](./quickstart-feature-flag-javascript.md). Before proceeding further, complete the quickstart to create a Node.js application with a *Beta* feature flag. Once completed, you must [add a time window filter](./howto-timewindow-filter.md) to the *Beta* feature flag in your App Configuration store.
19+
20+
## Prerequisites
21+
22+
- Create a [Node.js application with a feature flag](./quickstart-feature-flag-javascript.md).
23+
- [Add a time window filter to the feature flag](./howto-timewindow-filter.md)
24+
25+
## Use the time window filter
26+
27+
You've added a time window filter for your *Beta* feature flag in the prerequisites. Next, you'll use the feature flag with the time window filter in your Node.js application.
28+
29+
When you create a feature manager, the built-in feature filters are automatically added to its feature filter collection.
30+
31+
``` javascript
32+
const fm = new FeatureManager(ffProvider);
33+
```
34+
35+
## Time window filter in action
36+
37+
When you run the application, the configuration provider loads the *Beta* feature flag from Azure App Configuration. The result of the `isEnabled("Beta")` method will be printed to the console. If your current time is earlier than the start time set for the time window filter, the *Beta* feature flag will be disabled by the time window filter.
38+
39+
You'll see the following console outputs.
40+
41+
``` bash
42+
Beta is enabled: false
43+
Beta is enabled: false
44+
Beta is enabled: false
45+
Beta is enabled: false
46+
Beta is enabled: false
47+
Beta is enabled: false
48+
```
49+
50+
Once the start time has passed, you'll notice that the *Beta* feature flag is enabled by the time window filter.
51+
52+
You'll see the console outputs change as the *Beta* is enabled.
53+
54+
``` bash
55+
Beta is enabled: false
56+
Beta is enabled: false
57+
Beta is enabled: false
58+
Beta is enabled: false
59+
Beta is enabled: false
60+
Beta is enabled: false
61+
Beta is enabled: true
62+
Beta is enabled: true
63+
Beta is enabled: true
64+
Beta is enabled: true
65+
```
66+
67+
## Next steps
68+
69+
To learn more about the feature filters, continue to the following tutorials.
70+
71+
> [!div class="nextstepaction"]
72+
> [Enable conditional features with feature filters](./howto-feature-filters.md)
73+
74+
> [!div class="nextstepaction"]
75+
> [Roll out features to targeted audience](./howto-targetingfilter.md)

articles/azure-app-configuration/howto-timewindow-filter.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,14 @@ In this article, you will learn how to add and configure a time window filter fo
3939
> [!div class="mx-imgBorder"]
4040
> ![Screenshot of the Azure portal, applying new time window filter.](./media/feature-filters/feature-flag-edit-apply-timewindow-filter.png)
4141
42-
Now, you successfully added a time window filter to a feature flag. Follow the instructions in the [Next Steps](#next-steps) section to learn how it works in your application for the language or platform you are using.
42+
Now, you successfully added a time window filter to a feature flag.
4343

44-
## Next steps
45-
46-
In this tutorial, you learned the concept of the time window filter and added it to a feature flag.
44+
1. Continue to the following instructions to use the feature flag with a time window filter in your application for the language or platform you are using.
4745

48-
To learn how to use the feature flag with a time window filter in your application, continue to the following tutorial.
46+
- [ASP.NET Core](./howto-timewindow-filter-aspnet-core.md)
47+
- [Node.js](./howto-timewindow-filter-javascript.md)
4948

50-
> [!div class="nextstepaction"]
51-
> [ASP.NET Core](./howto-timewindow-filter-aspnet-core.md)
49+
## Next steps
5250

5351
To learn more about the feature filters, continue to the following tutorials:
5452

articles/azure-app-configuration/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ landingContent:
148148
url: quickstart-feature-flag-spring-boot.md
149149
- text: Python app
150150
url: quickstart-feature-flag-python.md
151+
- text: Node.js app
152+
url: quickstart-feature-flag-javascript.md
151153
- linkListType: tutorial
152154
links:
153155
- text: Use feature flags in ASP.NET Core
39.2 KB
Loading

0 commit comments

Comments
 (0)