Ably's changelog
Ably's changelog
ably.com

JavaScript Client Library SDK release v1.2.30

 

Client Library SDK Improvement

  
  • Add connectivityCheckUrl and disableConnectivityCheck client options #1051
  • Fix EventEmitter.once when using array with promises #1046
  • Allow null arguments in authCallback #1052
  • Move channel state to attaching on new transport reattach when using promises #1053

Ably Swift and Objective-C docs now available in your code editor via Intelligent code completion. Bonus: Idiomatic API Reference docs site powered by Jazzy

 

Docs

 

Improvement

  

In the latest release of the ably-cocoa SDK (which covers Objective-C and Swift clients), we’ve added docstring comments for the public methods and properties provided by the SDK so you can quickly access the descriptions directly in your code editor using Intelligent code completion features like Intellisense in VSCode.

We also had feedback from customers that an auto-generated documentation site (powered by tools like Jazzy) is sometimes preferred in addition to the documentation we provide on our main site for the purpose of familiarity. For ably-cocoa, the idiomatic documentation is available at /docs/sdk/cocoa/v1.2.

You can continue to find our main API Reference documentation, which is categorized into the realtime and REST interfaces for all programming languages at /docs/api. Feel free to choose whichever option you like.

How do I give feedback?

This docs update and further planned changes are based on feedback from customers like you. So if you’d like to share any other requests or feedback, please reach out to us and help us make Ably better for everyone.

Java / Android Client Library SDK release v1.2.17

 

Client Library SDK Fix

  

Fixed bugs:

  • RSA4d is not implemented correctly #829
  • JSONUtilsObject.add() silently discards data of unsupported type #501

Merged pull requests:

  • Fail Ably connection if auth callback throws specific errors #834 (KacperKluka)

Dashboard updates and guidance to help you get started with Ably

 

Improvement

  

We have made some changes to the dashboard to improve your experience working with Ably

  • The "Account Usage" page to see stats across your whole account, can be accessed from the account menu in the top-right corner.
  • We have moved the account limits, usage and billing information from the main dashboard to their own separate pages.
  • If you're new to Ably, we have provided guidance to help you publish your first message.

Screenshot 2022-09-15 at 08.08.26.png

Impacts

  • Account limits, usage and billing is no longer accessible from the main dashboard. However, they are available as separate pages from the account menu.

Screenshot 2022-09-15 at 08.09.39.png

How do I give feedback?

We rely on your feedback and feature requests to improve it. You can contact us at any time if you would like to talk about contributing or feature requests

Python Client Library SDK release v1.2.1

 

Client Library SDK Improvement

  

Full Changelog

Implemented enhancements:

  • Add support to get channel lifecycle status #271
  • Migrate project to poetry #305

.NET Client Library SDK release v1.2.9

 

Client Library SDK Improvement

  

Full Changelog

Implemented enhancements:

  • Add support to get channel lifecycle status #1150

Fixed bugs:

  • ClientOptions LogLevel not working #1140

Closed issues:

  • Unity: Investigate inability to select GitHub as SCM #1173
  • MacOS build fails when restoring packages #1160
  • Remove support for Windows 7 #1158
  • dotnet Update urls in readme #1146
  • Skipped Test: ConnectionSandboxTransportSideEffectsSpecs.WithChannelInDetachingState_WhenTransportIsDisconnected_ShouldResendDetachMessageOnConnectionResumed #834
  • Dropping the .NET Framework solution #618
  • Take control of our Assembly Version #617
  • Update documentation about using alternative websocket libraries #425

Merged pull requests:

Updates, deletions, and edit permissions in chat apps with Ably JWT user claims

 

New feature

  

Ably JWT user claims help developers implement chat room roles quickly and cleanly in chat applications built with Ably.

When building a chat room, you may wish to provide the ability to update and delete messages. This is an expected feature for users, and an important tool for moderators or administrators.

Users may have different permissions depending on their role in the chat room:

  • Any chat user can update or delete their own messages
  • Moderators or administrators can update or delete anyone’s messages

Ably JWT user claims* let chat room role information be added to JWT authentication tokens, which are then available to your application when checking if an edit is valid. Under the hood it can be used to support application logic for any type of message interaction, not only updates and deletion.

How does it work?

Ably provides message interactions as a flexible way to implement features such as message updates and deletions. Users supply updated content or a deletion marker as a message interaction that is tied to the original message. Applications should compare client IDs between these messages to verify whether the interaction is valid. Typically, only message interactions made by the user who produced the original message will be accepted.

Now consider the task of extending this validation to support content moderators or administrators, who are permitted to make broader changes.

By adding an Ably JWT user claim to those users’ authentication tokens, you can supply additional descriptive information - in this case, their role. Ably will then pass this information on every message sent by those users, allowing clients to directly verify that the message interaction was issued by a user with the appropriate permissions. Ably does not prescribe how this is done, you are free to validate using whatever logic is appropriate for your application.

Example

Below is a JWT payload, showing a chat user with relatively complex permissions. The format is customisable to your application; here we use simple strings.

{
  "sub": "65847593",
  "name": "John Doe",

  // The user is an administrator in the 'helpdesk' channel
  "ably.channel.helpdesk": "administrator", 

  // The user is a moderator in all channels in the 'chat' channel namespace
  "ably.channel.chat:*": "moderator",

  // The user is a guest in all other channels 
  "ably.channel.*": "guest"
}

Here is an example of a message interaction for a deletion. The JWT user claim is provided in the message ‘extras’ for the client application to use. The content of ‘extras’ is controlled by Ably only and can’t be produced by other clients.

{
  "name": "chat-message",
  "data": "This message has been removed by a moderator",
  "extras": {
    "userClaim": "moderator",
    "ref": {
      "type": "com.ably.deletion",
      "timeserial": "1126583028565-1",
    }
  }
}

Getting started with Ably JWT user claims

  • Read the documentation for JWT user claims
  • Include user claims in the JWTs for your moderators, administrators, or other privileged users
  • In your client application, use the trusted information in ‘extras’ to validate message interactions appropriately

How do I give feedback?

We’d love to hear your views and questions. You can contact us at any time if you would like to send feedback.

JavaScript Client Library SDK release v1.2.29

 

Client Library SDK Fix

  
  • Fix upgrade bug that could lead to an indefinitely sync-pending transport #1041
  • Always allow event queueing while connecting #1039

JavaScript Client Library SDK release v1.2.28

 

Client Library SDK Fix

  
  • Add clientId to MessageFilter #1032
  • Transports: implement timeouts in tryConnect() #1035
  • Only log connectionSerial mismatch from channel messages #1036

Cocoa Client Library SDK release v.1.2.11

 

Client Library SDK Fix

  

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Mutable ARTDeviceDetails.metadata #1435, fixed in: Added missing strong property attributes #1434 (maratal)
  • According to spec, the SDK should be responsible for calling -[UIApplication registerForRemoteNotifications], not the user #1271, in: Call to the registerForRemoteNotifications #1293 (maratal)

Closed issues:

  • Remove call to registerForRemoteNotifications from Basic APNS example #1359, in: #1360 (maratal)
  • Create simplified ably-cocoa example project for demonstrating push notifications capability #1318, in: Basic APNS example #1319 (maratal)

Merged pull requests: