Skip to content

Commit 50339d5

Browse files
committed
Update to use "." as segment separator
1 parent 6e61e58 commit 50339d5

4 files changed

Lines changed: 33 additions & 33 deletions

File tree

articles/azure-functions/functions-bindings-web-pubsub.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Functions Web PubSub bindings
33
description: Understand how to use Web PubSub bindings with Azure Functions.
44
ms.topic: reference
55
ms.custom: devx-track-extended-java, devx-track-js, devx-track-python
6-
ms.date: 09/02/2024
6+
ms.date: 01/28/2026
77
zone_pivot_groups: programming-languages-set-functions-lang-workers
88
---
99

@@ -70,12 +70,12 @@ Add the extension to your project by installing this [NuGet package].
7070
By default, an application setting named `WebPubSubConnectionString` is used to store your Web PubSub connection string. When you choose to use a different setting name for your connection, you must explicitly set that as the key name in your binding definitions. During local development, you must also add this setting to the `Values` collection in the the [_local.settings.json_ file](./functions-develop-local.md#local-settings-file).
7171

7272
> [!IMPORTANT]
73-
> A connection string includes the authorization information required for your application to access Azure Web PubSub service. The access key inside the connection string is similar to a root password for your service. For optimal security, your function app should use managed identities when connecting to the Web PubSub service instead of using a connection string. For more information, see [Authorize a managed identity request by using Microsoft Entra ID](../azure-web-pubsub/howto-authorize-from-managed-identity.md).
73+
> A connection string includes the authorization information required for your application to access Azure Web PubSub service. The access key inside the connection string is similar to a root password for your service. For optimal security, your function app should use managed identities when connecting to the Web PubSub service instead of using a connection string. For more information, see [Authorize a managed identity request by using Microsoft Entra ID](../azure-web-pubsub/howto-authorize-from-managed-identity.md).
7474
7575
For details on how to configure and use Web PubSub and Azure Functions together, refer to [Tutorial: Create a serverless notification app with Azure Functions and Azure Web PubSub service](../azure-web-pubsub/tutorial-serverless-notification.md).
7676
::: zone pivot="programming-language-csharp"
7777
> [!NOTE]
78-
> When running in the isolated worker model, the Azure Web PubSub binding doesn't currently support Microsoft Entra ID authetication using managed identities. In the isolated model, you must continue to use a connection string, which includes a shared secret key.
78+
> When running in the isolated worker model, the Azure Web PubSub binding doesn't currently support Microsoft Entra ID authentication using managed identities. In the isolated model, you must continue to use a connection string, which includes a shared secret key.
7979
::: zone-end
8080
## Next steps
8181

articles/azure-web-pubsub/concept-client-protocols.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: vicancy
55
ms.author: lianwei
66
ms.service: azure-web-pubsub
77
ms.topic: conceptual
8-
ms.date: 11/08/2021
8+
ms.date: 01/28/2026
99
ms.custom: sfi-ropc-nochange
1010
---
1111

@@ -234,7 +234,7 @@ await service.grantPermission("<connection_id>", "joinLeaveGroup", { targetName:
234234
```
235235

236236
> [!NOTE]
237-
> Wildcard roles (e.g., `webpubsub.sendToGroups.<pattern>`) are not supported in REST APIs or server SDKs during runtime yet. This feature will be supported in a future update.
237+
> Assigning wildcard roles (e.g., `webpubsub.sendToGroups.<pattern>`) through REST APIs or server SDKs are not supported yet. This feature will be supported in a future update.
238238
239239

240240
## Next steps

articles/azure-web-pubsub/concept-wildcard-group-roles.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kevinguo-ed
55
ms.author: kevinguo
66
ms.service: azure-web-pubsub
77
ms.topic: conceptual
8-
ms.date: 10/14/2025
8+
ms.date: 01/28/2026
99
ms.custom:
1010
---
1111

@@ -36,11 +36,11 @@ Use pattern roles when:
3636

3737
| Symbol | Meaning |
3838
| ------ | ------- |
39-
| `?` | Matches exactly one character except `/` |
40-
| `*` | Matches zero or more characters except `/` |
41-
| `**` | Matches zero or more characters including `/` (crosses segment boundaries) |
39+
| `?` | Matches exactly one character except `.` |
40+
| `*` | Matches zero or more characters except `.` |
41+
| `**` | Matches zero or more characters including `.` (crosses segment boundaries) |
4242
| `\` | Escape character for `\`, `*`, `?` |
43-
| `/` | Acts as a hierarchy separator and is never matched by `?` or `*` (only by `**`). |
43+
| `.` | Acts as a hierarchy separator and is never matched by `?` or `*` (only by `**`). |
4444

4545
Additional rules:
4646
- Up to five total `*` characters (including those forming `**`) are allowed in a single pattern.
@@ -49,10 +49,10 @@ Additional rules:
4949

5050
| Pattern | Matches | Does not match |
5151
| ------- | ------- | -------------- |
52-
| `chat-*` | `chat-1`, `chat-room` | `chat/1`, `xchat-1` |
53-
| `clientA/*` | `clientA/alpha`, `clientA/1` | `clientA/alpha/room1`, `clientB/alpha` |
54-
| `clientA/**` | `clientA/alpha`, `clientA/alpha/room1` | `clientB/anything` |
55-
| `clientA/rooms/?1` | `clientA/rooms/a1`, `clientA/rooms/11` | `clientA/rooms/1`, `clientA/rooms/a/1` |
52+
| `chat-*` | `chat-1`, `chat-room` | `chat.1`, `xchat-1` |
53+
| `clientA.*` | `clientA.alpha`, `clientA.1` | `clientA.alpha.room1`, `clientB.alpha` |
54+
| `clientA.**` | `clientA.alpha`, `clientA.alpha.room1` | `clientB.anything` |
55+
| `clientA.rooms.?1` | `clientA.rooms.a1`, `clientA.rooms.11` | `clientA.rooms.1`, `clientA.rooms.a.1` |
5656
| `literal\*star` | `literal*star` | `literalXstar` |
5757

5858
### Escaping
@@ -70,10 +70,10 @@ Add the pattern role to the `roles` collection when generating a client access t
7070
```js
7171
const token = await serviceClient.getClientAccessToken({
7272
roles: [
73-
// Can send to all groups under clientA/
74-
'webpubsub.sendToGroups.clientA/**',
75-
// Can join/leave any direct child group under public/
76-
'webpubsub.joinLeaveGroups.public/*'
73+
// Can send to all groups under clientA.
74+
'webpubsub.sendToGroups.clientA.**',
75+
// Can join/leave any direct child group under public.
76+
'webpubsub.joinLeaveGroups.public.*'
7777
]
7878
});
7979
```
@@ -82,34 +82,34 @@ const token = await serviceClient.getClientAccessToken({
8282

8383
```csharp
8484
var url = service.GetClientAccessUri(roles: new [] {
85-
// Can send to all groups under clientA/
86-
"webpubsub.sendToGroups.clientA/**",
87-
// Can join/leave any direct child group under public/
88-
"webpubsub.joinLeaveGroups.public/*"
85+
// Can send to all groups under clientA.
86+
"webpubsub.sendToGroups.clientA.**",
87+
// Can join/leave any direct child group under public.
88+
"webpubsub.joinLeaveGroups.public.*"
8989
});
9090
```
9191

9292
# [Python](#tab/python)
9393

9494
```python
9595
token = service.get_client_access_token(roles=[
96-
# Can send to all groups under clientA/
97-
"webpubsub.sendToGroups.clientA/**",
96+
# Can send to all groups under clientA.
97+
"webpubsub.sendToGroups.clientA.**",
9898

99-
# Can join/leave any direct child group under public/
100-
"webpubsub.joinLeaveGroups.public/*"
99+
# Can join/leave any direct child group under public.
100+
"webpubsub.joinLeaveGroups.public.*"
101101
])
102102
```
103103

104104
# [Java](#tab/java)
105105

106106
```java
107107
GetClientAccessTokenOptions opt = new GetClientAccessTokenOptions();
108-
// Can send to all groups under clientA/
109-
opt.addRole("webpubsub.sendToGroups.clientA/**");
108+
// Can send to all groups under clientA.
109+
opt.addRole("webpubsub.sendToGroups.clientA.**");
110110

111-
// Can join/leave any direct child group under public/
112-
opt.addRole("webpubsub.joinLeaveGroups.public/*");
111+
// Can join/leave any direct child group under public.
112+
opt.addRole("webpubsub.joinLeaveGroups.public.*");
113113
WebPubSubClientAccessToken token = service.getClientAccessToken(opt);
114114
```
115115

articles/azure-web-pubsub/whats-new.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ author: kevinguo-ed
55
ms.author: kevinguo
66
ms.service: azure-web-pubsub
77
ms.topic: conceptual
8-
ms.date: 10/14/2025
8+
ms.date: 01/28/2026
99
ms.custom: mode-other
1010
---
1111

1212
# What's new with Azure Web PubSub
1313

1414
On this page, you can read about recent updates about Azure Web PubSub. As we make continuous improvements to the capabilities and developer experience of the service, we welcome any feedback and suggestions. Reach out to the service team at **[email protected]**
1515

16-
## Q4 2025
16+
## Q1 2026
1717

1818
### Wildcard group role patterns
1919

@@ -22,7 +22,7 @@ You can now grant a client permissions to many related groups using a single wil
2222
- `webpubsub.sendToGroups.{pattern}`
2323
- `webpubsub.joinLeaveGroups.{pattern}`
2424

25-
Patterns support `?`, `*`, and `**` (where `**` can cross `/` separators) plus escaping. This reduces token size and simplifies hierarchical, path-style group authorization (for example: `clientA/**`). Existing literal roles (`webpubsub.sendToGroup.<group>` and `webpubsub.joinLeaveGroup.<group>`) continue to work unchanged.
25+
Patterns support `?`, `*`, and `**` (where `**` can cross `.` separators) plus escaping. This reduces token size and simplifies hierarchical, path-style group authorization (for example: `clientA.**`). Existing literal roles (`webpubsub.sendToGroup.<group>` and `webpubsub.joinLeaveGroup.<group>`) continue to work unchanged.
2626

2727
> [!div class="nextstepaction"]
2828
> [Learn how to use wildcard group role patterns](./concept-wildcard-group-roles.md)

0 commit comments

Comments
 (0)