Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ config/nginx-redirects.conf
src/gatsby-types.d.ts
.idea/*
**/*.swp
.claude
5 changes: 5 additions & 0 deletions content/api/realtime-sdk/messages.textile
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,8 @@ h2(#properties).
python: Attributes

<%= partial partial_version('types/_message') %>

h2(#message-annotations).
default: MessageAnnotations

<%= partial partial_version('types/_message_annotations') %>
6 changes: 3 additions & 3 deletions content/api/realtime-sdk/types.textile
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,10 @@ blang[jsall].

<%= partial partial_version('types/_message_action') %>

h3(#message-operation).
default: Operation
h3(#message-annotations).
default: MessageAnnotations

<%= partial partial_version('types/_operation') %>
<%= partial partial_version('types/_message_annotations') %>

h3(#presence-message).
default: PresenceMessage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ The following capability operations are available for API keys and issued tokens
- presence := can register presence on a channel (enter, update and leave)
- object-subscribe := can subscribe to updates to objects on a channel
- object-publish := can update objects on a channel
- annotation-subscribe := can subscribe to individual annotations on a channel
- annotation-publish := can publish annotations to messages on a channel
- history := can retrieve message and presence state history on channels
- stats := can retrieve current and historical usage statistics for an app
- push-subscribe := can subscribe devices for push notifications
Expand Down
20 changes: 5 additions & 15 deletions content/partials/types/_message.textile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ h6(#timestamp).
default: timestamp
csharp: Timestamp

Timestamp when the message was received by the Ably, as <span lang="default">milliseconds since the epoch</span><span lang="ruby">a @Time@ object</span><br>.__Type: <span lang="default">@Integer@</span><span lang="java">@Long Integer@</span><span lang="csharp">@DateTimeOffset@</span><span lang="ruby">@Time@</span><span lang="objc,swift">@NSDate@</span>__
Timestamp when the message was first received by the Ably, as <span lang="default">milliseconds since the epoch</span><span lang="ruby">a @Time@ object</span><br>.__Type: <span lang="default">@Integer@</span><span lang="java">@Long Integer@</span><span lang="csharp">@DateTimeOffset@</span><span lang="ruby">@Time@</span><span lang="objc,swift">@NSDate@</span>__

h6(#encoding).
default: encoding
Expand All @@ -69,22 +69,12 @@ blang[jsall].
h6(#serial).
default: serial

This message's unique serial (an identifier that will be the same in all future updates of this message).<br>__Type: @String@__
A server-assigned identifier that will be the same in all future updates of this message. It can be used to add annotations to a message. Serial will only be set if you enable annotations in "channel rules":/docs/channels#rules .<br>__Type: @String@__

h6(#created-at).
default: createdAt
h6(#annotations).
default: annotations

The timestamp of the very first version of a given message (will differ from @timestamp@ only if the message has been updated or deleted).<br>__Type: @Integer@__

h6(#version).
default: version

The version of the message, lexicographically-comparable with other versions (that share the same serial). Will differ from the serial only if the message has been updated or deleted.<br>__Type: @String@__

h6(#operation).
default: operation

In the case of an updated or deleted message, this will contain metadata about the update or delete operation.<br>__Type: "@Operation@":/docs/api/realtime-sdk/types#message-operation__
An object containing information about annotations that have been made to the object.<br>__Type: "@MessageAnnotations@":/docs/api/realtime-sdk/types#message-annotations__

h3(constructors).
default: Message constructors
Expand Down
7 changes: 7 additions & 0 deletions content/partials/types/_message_annotations.textile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
h4.
default: Properties
java: Members
ruby: Attributes
python: Attributes

- <span lang="default">summary</span> := An object whose keys are annotation types, and the values are aggregated summaries for that annotation type<br>__Type: @Record<String, JsonObject>@__
10 changes: 0 additions & 10 deletions content/partials/types/_operation.textile

This file was deleted.

4 changes: 4 additions & 0 deletions src/data/nav/pubsub.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ export default {
name: 'Message batching',
link: '/docs/messages/batch',
},
{
name: 'Message annotations',
link: '/docs/messages/annotations',
},
],
},
{
Expand Down
2 changes: 2 additions & 0 deletions src/pages/docs/auth/capabilities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ The following capability operations are available for API keys and issued tokens
| **presence** | Can register presence on a channel (enter, update and leave) |
| **object-subscribe** | Can subscribe to updates to objects on a channel |
| **object-publish** | Can update objects on a channel |
| **annotation-subscribe** | Can subscribe to individual annotations on a channel |
| **annotation-publish** | Can publish annotations to messages on a channel |
| **history** | Can retrieve message and presence state history on channels |
| **stats** | Can retrieve current and historical usage statistics for an app |
| **push-subscribe** | Can subscribe devices for push notifications |
Expand Down
1 change: 1 addition & 0 deletions src/pages/docs/channels/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ The channel rules related to enabling features are:
| Push notifications enabled | If checked, publishing messages with a push payload in the `extras` field is permitted. This triggers the delivery of a [Push Notification](/docs/push) to devices registered for push on the channel. |
| Server-side batching | If enabled, messages are grouped into batches before being sent to subscribers. [Server-side batching](/docs/messages/batch#server-side) reduces the overall message count, lowers costs, and mitigates the risk of hitting rate limits during high-throughput scenarios. |
| Message conflation | If enabled, messages are aggregated over a set period of time and evaluated against a conflation key. All but the latest message for each conflation key value will be discarded, and the resulting message, or messages, will be delivered to subscribers as a single batch once the period of time elapses. [Message conflation](/docs/messages#conflation) reduces costs in high-throughput scenarios by removing redundant and outdated messages. |
| Message annotations, updates, and deletes | If enabled, allows message "annotations":/docs/messages/annotations to be used, as well as updates and deletes to be published to messages. Note that these features are currently Experimental, still in development, and subject to change. When this feature is enabled, messages will be "persisted":/docs/storage-history/storage#all-message-persistence (necessary in order from them later be annotated or updated), and "continuous history":/docs/storage-history/history#continuous-history features will not work.

To set a channel rule in the Ably dashboard:

Expand Down
4 changes: 4 additions & 0 deletions src/pages/docs/channels/options/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,8 @@ The available set of channel mode flags are:
| `PRESENCE` | Can register presence on the channel. | Yes |
| `OBJECT_PUBLISH` | Can update objects on the channel. | No |
| `OBJECT_SUBSCRIBE` | Can subscribe to receive updates to objects on the channel. | No |
| `ANNOTATION_PUBLISH` | Can publish annotations to messages on the channel. | Yes |
| `ANNOTATION_SUBSCRIBE` | Can subscribe to individual annotations on the channel. | No |

The set of modes available to a client is determined by the set of [capabilities](/docs/auth/capabilities) granted by their token or API key.

Expand All @@ -450,6 +452,8 @@ The modes granted by each capability are:
| `presence` | `PRESENCE` |
| `object-subscribe` | `OBJECT_SUBSCRIBE` |
| `object-publish` | `OBJECT_PUBLISH` |
| `annotation-publish` | `ANNOTATION_PUBLISH` |
| `annotation-subscribe` | `ANNOTATION_SUBSCRIBE` |

The actual modes assigned to a client will be the **intersection** of the requested `modes` and the modes available to the client according to its capabilities. For example, a client with the `subscribe` capability which explicitly requests `SUBSCRIBE` and `PUBLISH` modes will be assigned only the `SUBSCRIBE` mode.

Expand Down
Loading