You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/index.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -165,7 +165,7 @@ It also puts you in control of how you manage your application when there aren't
165
165
166
166
### Enterprise controls <aid="enterprise"/>
167
167
168
-
Ably's platform provides [integrations](/docs/platform/integrations) and functionality to ensure that your applications always exceed the requirements of enterprise environments. Whether that's [message auditing](/docs/platform/integrations/streaming), [client identification](/docs/auth/identified-clients) or [fine-grained authorization](/docs/auth/capabilities).
168
+
Ably's platform provides [integrations](/docs/platform/integrations) and functionality to ensure that your applications always exceed the requirements of enterprise environments. Whether that's [message auditing](/docs/platform/integrations/streaming), [client identification](/docs/platform/auth/identified-clients) or [fine-grained authorization](/docs/platform/auth/capabilities).
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/messaging/citations.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -306,7 +306,7 @@ The `multiple.v1` summary groups counts by the annotation `name`, with totals an
306
306
```
307
307
</Code>
308
308
309
-
When agents publish citations with a [`clientId`](/docs/auth/identified-clients), summaries include a per-client count showing how many citations each agent contributed. Citations published by [unidentified](/docs/auth/identified-clients#unidentified) clients are counted in the `totalUnidentified` field.
309
+
When agents publish citations with a [`clientId`](/docs/platform/auth/identified-clients), summaries include a per-client count showing how many citations each agent contributed. Citations published by [unidentified](/docs/platform/auth/identified-clients#unidentified) clients are counted in the `totalUnidentified` field.
310
310
311
311
<Asidedata-type="note">
312
312
The `clipped` field indicates whether the summary was truncated due to size limits. This only occurs when a large number of clients with distinct `clientId`s publish annotations. See [large summaries](/docs/messages/annotations#large-summaries) for more information.
Use [user claims](/docs/auth/capabilities#custom-restrictions-on-channels-) to embed roles directly in the JWT for role-based access control (RBAC). This approach is useful when permissions are role-based rather than user-specific, allowing you to make authorization decisions based on the user's role without looking up individual user permissions.
333
+
Use [user claims](/docs/platform/auth/capabilities#custom-restrictions-on-channels-) to embed roles directly in the JWT for role-based access control (RBAC). This approach is useful when permissions are role-based rather than user-specific, allowing you to make authorization decisions based on the user's role without looking up individual user permissions.
334
334
335
335
<Aside data-type="note">
336
336
This approach uses [authenticated claims for users](/docs/ai-transport/sessions-identity/identifying-users-and-agents#user-claims) to embed custom claims in JWTs that represent user roles or attributes.
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/sessions-identity/identifying-users-and-agents.mdx
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ In decoupled architectures, identity serves several critical purposes:
17
17
18
18
## Authenticating users <aid="authenticating"/>
19
19
20
-
Use [token authentication](/docs/auth/token) to authenticate users securely. Your authentication server generates a token that is signed with the secret part of your Ably API key. Clients use this token to connect to Ably, and the token signature ensures it cannot be tampered with.
20
+
Use [token authentication](/docs/platform/auth/token) to authenticate users securely. Your authentication server generates a token that is signed with the secret part of your Ably API key. Clients use this token to connect to Ably, and the token signature ensures it cannot be tampered with.
21
21
22
-
The following examples use [JWT authentication](/docs/auth/token#jwt) for its simplicity and standard tooling support. For other approaches, see [token authentication](/docs/auth/token).
22
+
The following examples use [JWT authentication](/docs/platform/auth/token#jwt) for its simplicity and standard tooling support. For other approaches, see [token authentication](/docs/platform/auth/token).
23
23
24
24
Create a server endpoint that generates signed JWTs after verifying user authentication:
25
25
@@ -179,10 +179,10 @@ The `authenticateUser` middleware in this example is for demonstration purposes
179
179
180
180
The JWT is signed with the secret part of your Ably API key using [HMAC-SHA-256](https://datatracker.ietf.org/doc/html/rfc4868). This example does not embed any claims in the JWT payload, so by default the token inherits the capabilities of the Ably API key used to sign the token.
181
181
182
-
Configure your client to obtain a signed JWT from your server endpoint using an [`authCallback`](/docs/auth/token#auth-callback). The client obtains a signed JWT from the callback and uses it to authenticate requests to Ably. The client automatically makes a request for a new token before it expires.
182
+
Configure your client to obtain a signed JWT from your server endpoint using an [`authCallback`](/docs/platform/auth/token#auth-callback). The client obtains a signed JWT from the callback and uses it to authenticate requests to Ably. The client automatically makes a request for a new token before it expires.
183
183
184
184
<Asidedata-type="important">
185
-
Never include your Ably API key in client code. Instead, always authenticate clients using [token auth](/docs/auth/token).
185
+
Never include your Ably API key in client code. Instead, always authenticate clients using [token auth](/docs/platform/auth/token).
186
186
</Aside>
187
187
188
188
<Code>
@@ -244,7 +244,7 @@ ably.connection.on(ConnectionState.connected, state -> {
Agents typically run on servers in trusted environments where API keys can be securely stored. Use [API key authentication](/docs/auth#basic-authentication) to authenticate agents directly with Ably.
247
+
Agents typically run on servers in trusted environments where API keys can be securely stored. Use [API key authentication](/docs/platform/auth#basic-authentication) to authenticate agents directly with Ably.
248
248
249
249
<Code>
250
250
```javascript
@@ -287,12 +287,12 @@ Only use API key authentication in server-side code. Never include your Ably API
287
287
</Aside>
288
288
289
289
<Asidedata-type="note">
290
-
Agents can also authenticate using [token authentication](/docs/auth/token), which is useful when agents run in environments where API keys should not be stored or when agents need dynamic capabilities that change based on runtime conditions.
290
+
Agents can also authenticate using [token authentication](/docs/platform/auth/token), which is useful when agents run in environments where API keys should not be stored or when agents need dynamic capabilities that change based on runtime conditions.
291
291
</Aside>
292
292
293
293
## Specifying capabilities <aid="capabilities"/>
294
294
295
-
Use [capabilities](/docs/auth/capabilities) to specify which operations clients can perform on which channels. This applies to both users and agents, allowing you to enforce fine-grained permissions.
295
+
Use [capabilities](/docs/platform/auth/capabilities) to specify which operations clients can perform on which channels. This applies to both users and agents, allowing you to enforce fine-grained permissions.
Ably recommends using token authentication with short-lived tokens and minimal capabilities required for each user to limit the window of exposure if a token is compromised. For more information, see [When to use token auth](/docs/auth/token#when).
412
+
Ably recommends using token authentication with short-lived tokens and minimal capabilities required for each user to limit the window of exposure if a token is compromised. For more information, see [When to use token auth](/docs/platform/auth/token#when).
@@ -479,12 +479,12 @@ Following the principle of least privilege, provision API keys with the minimum
479
479
480
480
Use the [`clientId`](/docs/messages#properties) to identify the user or agent that published a message. The method for setting `clientId` depends on your authentication approach:
481
481
482
-
- When using [basic authentication](/docs/auth/identified-clients#basic), specify the `clientId` directly in the client options when instantiating the client instance.
483
-
- When using [token authentication](/docs/auth/identified-clients#token), specify an explicit `clientId` when issuing the token.
482
+
- When using [basic authentication](/docs/platform/auth/identified-clients#basic), specify the `clientId` directly in the client options when instantiating the client instance.
483
+
- When using [token authentication](/docs/platform/auth/identified-clients#token), specify an explicit `clientId` when issuing the token.
484
484
485
485
### User identity <aid="user-identity"/>
486
486
487
-
Users typically authenticate using [token authentication](/docs/auth/identified-clients#token). Add the [`x-ably-clientId`](/docs/api/realtime-sdk/authentication#ably-jwt) claim to your JWT to establish a verified identity for each user client. This identity appears as the [`clientId`](/docs/messages#properties) in all messages the user publishes, and subscribers can trust this identity because only your server can issue JWTs with specific `clientId` values.
487
+
Users typically authenticate using [token authentication](/docs/platform/auth/identified-clients#token). Add the [`x-ably-clientId`](/docs/api/realtime-sdk/authentication#ably-jwt) claim to your JWT to establish a verified identity for each user client. This identity appears as the [`clientId`](/docs/messages#properties) in all messages the user publishes, and subscribers can trust this identity because only your server can issue JWTs with specific `clientId` values.
488
488
489
489
As with all clients, the method for setting `clientId` depends on your [authentication approach](#identity).
490
490
@@ -608,7 +608,7 @@ The `clientId` in the message can be trusted, so agents can use this identity to
608
608
609
609
### Agent identity <aid="agent-identity"/>
610
610
611
-
Agent code typically runs in a trusted environment, so you can use [basic authentication](/docs/auth/identified-clients#basic) and directly specify the `clientId` when instantiating the agent client. This identity appears as the [`clientId`](/docs/messages#properties) in all messages the agent publishes, allowing subscribers to identify the agent which published a message.
611
+
Agent code typically runs in a trusted environment, so you can use [basic authentication](/docs/platform/auth/identified-clients#basic) and directly specify the `clientId` when instantiating the agent client. This identity appears as the [`clientId`](/docs/messages#properties) in all messages the agent publishes, allowing subscribers to identify the agent which published a message.
Agents can also authenticate using [token authentication](/docs/auth/token), which is useful when agents run in environments where API keys cannot be accessed securely or when agents need [dynamic capabilities](/docs/auth/token#dynamic-channel-access-control).
684
+
Agents can also authenticate using [token authentication](/docs/platform/auth/token), which is useful when agents run in environments where API keys cannot be accessed securely or when agents need [dynamic capabilities](/docs/platform/auth/token#dynamic-channel-access-control).
685
685
</Aside>
686
686
687
687
## Adding roles and attributes <aid="roles-attributes"/>
@@ -690,7 +690,7 @@ Embed custom roles and attributes in messages to enable role-based access contro
690
690
691
691
### User claims <aid="user-claims"/>
692
692
693
-
Use [authenticated claims for users](/docs/auth/capabilities#custom-restrictions-on-channels-) to embed custom claims in JWTs that represent user roles or attributes.
693
+
Use [authenticated claims for users](/docs/platform/auth/capabilities#custom-restrictions-on-channels-) to embed custom claims in JWTs that represent user roles or attributes.
694
694
695
695
Add claims with names matching the `ably.channel.*` pattern to your JWT to specify user claims for specific channels. Claims can be scoped to individual channels or to [namespaces](/docs/channels#namespaces) of channels. The most specific user claim matching the channel is automatically included under `extras.userClaim` in all messages the client publishes.
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/sessions-identity/online-status.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ For details on authenticating users and agents and setting the `clientId`, see [
26
26
You have flexibility in when to enter presence. For example, an agent might choose to appear as online only while processing a specific task, or remain present for the duration of the entire session. Users typically enter presence when they connect to a session and remain present until they disconnect.
27
27
28
28
<Asidedata-type="note">
29
-
Clients require the [`presence`](/docs/auth/capabilities) capability on the channel to participate in presence.
29
+
Clients require the [`presence`](/docs/platform/auth/capabilities) capability on the channel to participate in presence.
30
30
</Aside>
31
31
32
32
For example, a user client can enter presence when joining a session:
@@ -98,7 +98,7 @@ channel.presence.enter(data);
98
98
99
99
### Going online from multiple devices <aid="multiple-devices"/>
100
100
101
-
A single user can be present on a channel from multiple devices simultaneously. Ably tracks each connection separately using a unique [`connectionId`](/docs/connect#connection-ids), while maintaining the same [`clientId`](/docs/auth/identified-clients#assign) across all connections.
101
+
A single user can be present on a channel from multiple devices simultaneously. Ably tracks each connection separately using a unique [`connectionId`](/docs/connect#connection-ids), while maintaining the same [`clientId`](/docs/platform/auth/identified-clients#assign) across all connections.
102
102
103
103
When a user connects from multiple devices, each device enters presence independently. All connections share the same `clientId` but have different `connectionId` values.
104
104
@@ -360,7 +360,7 @@ AblyRealtime ably = new AblyRealtime(options);
360
360
Participants in a session can query the current presence set or subscribe to presence events to see who else is online and react to changes in realtime. Users might want to see which agents are processing work, while agents might want to detect when specific users are offline to pause or cancel work.
361
361
362
362
<Asidedata-type="note">
363
-
Clients require the `subscribe`[capability](/docs/auth/capabilities) on the channel to retrieve the presence set and subscribe to presence events.
363
+
Clients require the `subscribe`[capability](/docs/platform/auth/capabilities) on the channel to retrieve the presence set and subscribe to presence events.
364
364
</Aside>
365
365
366
366
### Retrieving current presence members <aid="get-members"/>
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/sessions-identity/push-notifications.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ Push notification setup is platform-specific. See the following guides to config
31
31
</Aside>
32
32
33
33
<Asidedata-type="note">
34
-
To send push notifications to a specific user's devices rather than to channel subscribers, the agent's token requires the `push-admin`[capability](/docs/auth/capabilities). This enables direct publishing via the Push Admin API.
34
+
To send push notifications to a specific user's devices rather than to channel subscribers, the agent's token requires the `push-admin`[capability](/docs/platform/auth/capabilities). This enables direct publishing via the Push Admin API.
Copy file name to clipboardExpand all lines: src/pages/docs/ai-transport/sessions-identity/resuming-sessions.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,7 @@ Ably provides access to channel message history, enabling agents to retrieve any
59
59
When an agent resumes, it needs to retrieve messages published while it was offline. Use [channel history](/docs/storage-history/history) with the [`untilAttach` option](/docs/storage-history/history#continuous-history) to catch up on historical messages while preserving continuity with live message delivery.
60
60
61
61
<Asidedata-type="note">
62
-
Clients require the [`history`](/docs/auth/capabilities) capability on the channel to retrieve message history.
62
+
Clients require the [`history`](/docs/platform/auth/capabilities) capability on the channel to retrieve message history.
0 commit comments