Skip to content

Commit d846c9c

Browse files
Merge pull request #312237 from MicrosoftDocs/main
Auto Publish – main to live - 2026-02-24 23:00 UTC
2 parents fa1cc98 + e85fbd4 commit d846c9c

125 files changed

Lines changed: 3117 additions & 1609 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6845,6 +6845,11 @@
68456845
"redirect_url": "/azure/reliability/reliability-nat-gateway",
68466846
"redirect_document_id": false
68476847
},
6848+
{
6849+
"source_path": "articles/iot-operations/connect-to-cloud/howto-configure-opentelemetry-endpoint.md",
6850+
"redirect_url": "/azure/iot-operations/connect-to-cloud/open-telemetry",
6851+
"redirect_document_id": false
6852+
},
68486853
{
68496854
"source_path": "articles/synapse-analytics/sql/get-started-azure-data-studio.md",
68506855
"redirect_url": "/azure/synapse-analytics/sql/get-started-ssms",

articles/api-management/azure-openai-semantic-cache-lookup-policy.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.collection: ce-skilling-ai-copilot
99
ms.custom:
1010
- build-2024
1111
ms.topic: reference
12-
ms.date: 10/27/2025
12+
ms.date: 02/23/2026
1313
ms.update-cycle: 180-days
1414
ms.author: danlep
1515
---
@@ -23,6 +23,8 @@ Use the `azure-openai-semantic-cache-lookup` policy to perform cache lookup of r
2323
> [!NOTE]
2424
> * This policy must have a corresponding [Cache responses to Azure OpenAI API requests](azure-openai-semantic-cache-store-policy.md) policy.
2525
> * For prerequisites and steps to enable semantic caching, see [Enable semantic caching for LLM APIs in Azure API Management](azure-openai-enable-semantic-caching.md).
26+
> * Because semantic caching returns responses based on similarity (not exact match), it can surface responses that are incorrect, outdated, or unsafe for the current request. Evaluate this feature carefully for your workload and include safeguards.
27+
2628

2729
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2830

articles/api-management/azure-openai-semantic-cache-store-policy.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.collection: ce-skilling-ai-copilot
99
ms.custom:
1010
- build-2024
1111
ms.topic: reference
12-
ms.date: 12/13/2024
12+
ms.date: 02/23/2026
1313
ms.update-cycle: 180-days
1414
ms.author: danlep
1515
---
@@ -23,6 +23,8 @@ The `azure-openai-semantic-cache-store` policy caches responses to Azure OpenAI
2323
> [!NOTE]
2424
> * This policy must have a corresponding [Get cached responses to Azure OpenAI API requests](azure-openai-semantic-cache-lookup-policy.md) policy.
2525
> * For prerequisites and steps to enable semantic caching, see [Enable semantic caching for Azure OpenAI APIs in Azure API Management](azure-openai-enable-semantic-caching.md).
26+
> * Because semantic caching returns responses based on similarity (not exact match), it can surface responses that are incorrect, outdated, or unsafe for the current request. Evaluate this feature carefully for your workload and include safeguards.
27+
2628

2729
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2830

articles/api-management/ip-filter-policy.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: reference
9-
ms.date: 07/23/2024
9+
ms.date: 02/23/2026
1010
ms.author: danlep
1111
---
1212
# Restrict caller IPs
@@ -49,7 +49,9 @@ The `ip-filter` policy filters (allows/denies) calls from specific IP addresses
4949

5050
### Usage notes
5151

52-
If you configure this policy at more than one scope, IP filtering is applied in the order of [policy evaluation](set-edit-policies.md#use-base-element-to-set-policy-evaluation-order) in your policy definition.
52+
- If you configure this policy at more than one scope, IP filtering is applied in the order of [policy evaluation](set-edit-policies.md#use-base-element-to-set-policy-evaluation-order) in your policy definition.
53+
54+
- If `action` is set to `allow`, requests that don't match any `address` or `address-range` are denied. If `action` is set to `forbid`, requests that don't match any `address` or `address-range` are allowed.
5355

5456
## Example
5557

articles/api-management/llm-semantic-cache-lookup-policy.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.collection: ce-skilling-ai-copilot
99
ms.custom:
1010
- build-2024
1111
ms.topic: reference
12-
ms.date: 10/27/2025
12+
ms.date: 02/23/2026
1313
ms.update-cycle: 180-days
1414
ms.author: danlep
1515
---
@@ -23,6 +23,7 @@ Use the `llm-semantic-cache-lookup` policy to perform cache lookup of responses
2323
> [!NOTE]
2424
> * This policy must have a corresponding [Cache responses to large language model API requests](llm-semantic-cache-store-policy.md) policy.
2525
> * For prerequisites and steps to enable semantic caching, see [Enable semantic caching for LLM APIs in Azure API Management](azure-openai-enable-semantic-caching.md).
26+
> * Because semantic caching returns responses based on similarity (not exact match), it can surface responses that are incorrect, outdated, or unsafe for the current request. Evaluate this feature carefully for your workload and include safeguards.
2627
2728
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2829

articles/api-management/llm-semantic-cache-store-policy.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: azure-api-management
88
ms.collection: ce-skilling-ai-copilot
99
ms.custom:
1010
ms.topic: reference
11-
ms.date: 12/13/2024
11+
ms.date: 02/23/2026
1212
ms.update-cycle: 180-days
1313
ms.author: danlep
1414
---
@@ -22,6 +22,7 @@ The `llm-semantic-cache-store` policy caches responses to chat completion API re
2222
> [!NOTE]
2323
> * This policy must have a corresponding [Get cached responses to large language model API requests](llm-semantic-cache-lookup-policy.md) policy.
2424
> * For prerequisites and steps to enable semantic caching, see [Enable semantic caching for Azure OpenAI APIs in Azure API Management](azure-openai-enable-semantic-caching.md).
25+
> * Because semantic caching returns responses based on similarity (not exact match), it can surface responses that are incorrect, outdated, or unsafe for the current request. Evaluate this feature carefully for your workload and include safeguards.
2526
2627
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2728

articles/api-management/validate-content-policy.md

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: reference
9-
ms.date: 08/30/2024
9+
ms.date: 02/23/2026
1010
ms.author: danlep
1111
---
1212

1313
# Validate content
1414

1515
[!INCLUDE [api-management-availability-all-tiers](../../includes/api-management-availability-all-tiers.md)]
1616

17-
The `validate-content` policy validates the size or content of a request or response body against one or more [supported schemas](#schemas-for-content-validation).
17+
The `validate-content` policy validates the size or content (or both) of a request or response body against one or more [supported schemas](#schemas-for-content-validation).
1818

1919
The following table shows the schema formats and request or response content types that the policy supports. Content type values are case insensitive.
2020

@@ -161,6 +161,74 @@ In the following example, API Management interprets any request as a request wit
161161
</validate-content>
162162
```
163163

164+
### Complete policy example with content validation
165+
166+
The following example shows a complete policy document for a customer order API that uses `validate-content` to validate incoming requests and outgoing responses. The policy validates that customer order payloads conform to the `customer-order-schema` (added to API Management) before forwarding them to the backend, and also validates that the backend's order confirmation matches the expected schema, but only detects issues rather than blocking them.
167+
168+
169+
```xml
170+
<policies>
171+
<inbound>
172+
<base />
173+
<!-- Authenticate the request -->
174+
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized">
175+
<openid-config url="https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration" />
176+
<audiences>
177+
<audience>api://customer-orders</audience>
178+
</audiences>
179+
</validate-jwt>
180+
181+
<!-- Rate limit per subscription -->
182+
<rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Subscription.Id)" />
183+
184+
<!-- Validate incoming order request -->
185+
<validate-content unspecified-content-type-action="prevent" max-size="524288" size-exceeded-action="prevent" errors-variable-name="requestValidationErrors">
186+
<content type="application/json" validate-as="json" schema-id="customer-order-schema" action="prevent" allow-additional-properties="false" />
187+
</validate-content>
188+
189+
<!-- Set backend URL -->
190+
<set-backend-service base-url="https://orders-backend.contoso.com/api" />
191+
</inbound>
192+
<backend>
193+
<base />
194+
</backend>
195+
<outbound>
196+
<base />
197+
198+
<!-- Validate backend response -->
199+
<validate-content unspecified-content-type-action="detect" max-size="1048576" size-exceeded-action="detect" errors-variable-name="responseValidationErrors">
200+
<content type="application/json" validate-as="json" schema-id="order-confirmation-schema" action="detect" />
201+
</validate-content>
202+
203+
<!-- Add custom header to indicate validation passed -->
204+
<set-header name="X-Content-Validated" exists-action="override">
205+
<value>true</value>
206+
</set-header>
207+
</outbound>
208+
<on-error>
209+
<base />
210+
<!-- Return validation errors in a structured format -->
211+
<choose>
212+
<when condition="@(context.Variables.ContainsKey("requestValidationErrors"))">
213+
<return-response>
214+
<set-status code="400" reason="Bad Request" />
215+
<set-header name="Content-Type" exists-action="override">
216+
<value>application/json</value>
217+
</set-header>
218+
<set-body>@{
219+
var errors = (IEnumerable<object>)context.Variables["requestValidationErrors"];
220+
return JsonConvert.SerializeObject(new {
221+
error = "Request validation failed",
222+
details = errors
223+
});
224+
}</set-body>
225+
</return-response>
226+
</when>
227+
</choose>
228+
</on-error>
229+
</policies>
230+
```
231+
164232
[!INCLUDE [api-management-validation-policy-error-reference](../../includes/api-management-validation-policy-error-reference.md)]
165233

166234
## Related policies

articles/application-gateway/json-web-token-overview.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Application Gateway doesn't maintain any session or cookie-based state. This app
3030
- **Multitenant support**: Supports common organizations and consumers' tenant configurations.
3131
- **HTTPS only**: Requires HTTPS listeners. HTTP isn't supported.
3232

33+
:::image type="content" source="media/json-web-token-overview/jwt-validation.png" alt-text="Diagram showing JWT Validation for Application Gateway.":::
34+
3335
## Prerequisites
3436

3537
- Application Gateway requirements:
81.3 KB
Loading

articles/azure-cache-for-redis/cache-event-grid.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Use Azure Event Grid to publish Azure Cache for Redis events.
44
ms.date: 12/21/2020
55
appliesto:
66
- ✅ Azure Cache for Redis
7-
ms.topic: conceptual
7+
ms.topic: concept-article
88

99
---
1010

0 commit comments

Comments
 (0)