## v7.4.1
*July 30, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Added MembershipMetadata container inside PNObjectEventResult to correctly parse and forward data when object event type is `membership`.<br/>• Fixed issue where some result objects like PNMessageResult had UserMetadata declared as an object instead of the standard Dictionary<string, object> format for metadata. |
## v7.4.0
*July 23, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Added support for `status` and `type` fields for uuid, channel and members app context apis. |
## v7.3.15
*July 3, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Implemented an in-house CBOR solution for ParseToken() handling to reduce total SDK+dependencies size. |
## v7.3.14
*June 25, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Updated log type from Error to Warn for TaskCanceledException. |
## v7.3.13
*June 6, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Improved parsing of file download errors to be properly set in operation status ErrorData. |
## v7.3.12
*May 28, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Added new integration tests to better cover all SDK endpoints. |
| **Fixed** | • Fixed an issue when upon receiving a message with published with a custom type the CustomMessageType would be null upon receiving. |
## v7.3.11
*May 20, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix missing `heartbeat` and `leave` REST API calls when the event engine is enabled and `presenceTimeout` or `presenceHeartbeatInterval` not set. |
## v7.3.10
*May 9, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Specified dependency version for fixing synk reported issues. |
## v7.3.9
*May 9, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Changed the way the PubNub logger is injected into IHtttpClientService for better custom-transport-layers handling. |
## v7.3.8
*April 8, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Subscribe with custom timetoken scenario handling improvements. |
## v7.3.7
*April 7, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Enhance request handling with detailed response interface. |
## v7.3.6
*April 3, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Reafctor: Removed excess logging from transport module. Removed redundant logging from transport layer and added thread id information for tracking http request. |
## v7.3.5
*March 31, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Standardize connection configuration to address inconsistent platform defaults leading to socket exhaustion under high load. |
## v7.3.4
*March 28, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue with subscribe loop when mulitple subscription changes happen rapidly. |
## v7.3.3
*March 26, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Upgrade Cbor library to latest version.<br/>• Additional logging to log pubnub instance configuration through registered custom logger. |
## v7.3.2
*March 26, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Upgrade newtonsoft json library. |
## v7.3.1
*March 18, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Removed old deprecated logger code. |
## v7.3.0
*March 11, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Implemented new logger for enhanced logging. |
## v7.2.1
*February 25, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Implemented enhanced cancellation token management for `HttpClient` to allow graceful termination of HTTP requests. |
## v7.2.0
*January 29, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Added new optional parameter `IfMatchesEtag` for `setUUIDMetadata` and `setChannelMetadata`. When provided, the server compares the argument value with the eTag on the server and if they don't match a HTTP 412 error is returned. |
| **Fixed** | • Fixes issue of not getting `PNSubscriptionChangedCategory` status when subscription change happens. |
## v7.1.3
*January 23, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Informative log statements throughout SDK. |
## v7.1.2
*January 21, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of receiving duplicate messages when event engine is disabled. |
## v7.1.1
*January 16, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored event result data parsing logic within the subscribe feature for enhanced performance and maintainability. |
## v7.1.0
*December 4, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added support for CustomMessageType in publish, signal, files features.<br/>• Added support for Type field in membership APIs. |
## v7.0.0
*October 30, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added support for `Channel`, `ChannelGroup`, `Subscription` and `SubscriptionSet`, `ChannelMetadata`, `UserMetadata` entities for Subscribe related operation.<br/>• BREAKING CHANGES: Default Reconnection policy is set to Exponential.<br/>• BREAKING CHANGES: All apis calls will be made through `HttpClient` by default.<br/>• Default value for `EnableEventEngine` is set to `true`, Subscribe operation will be executed by event engine by default. |
| **Modified** | • Removed telemetry manager. |
## v6.20.2
*October 3, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of listener not being removed on RemoveListener call. |
## v6.20.1
*May 9, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of Unity SDK not being able to have a fully independent IJsonPluggableLibrary implementation because of direct nu-get Newtonsoft usage in C# SDK (Unity has it's own version that works with IL2CPP builds). |
## v6.20.0
*April 18, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added event engine implementation for subscribe and presence operation.<br/>• Added support for `RetryConfiguration` to configure subscribe request retry. |
## v6.19.7
*April 2, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Resolved the issue where an incorrect network status was emitted when no internet connection was detected. |
## v6.19.6
*March 28, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of inaccurate DateTime to TimeToken conversion in TranslateDateTimeToPubnubUnixNanoSeconds. |
## v6.19.5
*January 17, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of getting exception for custom objects in subscription and history when crypto module is configured. |
## v6.19.4
*November 28, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Handle unencrypted message while getting messages with crypto. |
## v6.19.3
*October 31, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of applying default serializer settings. |
## v6.19.2
*October 30, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Changed license to PubNub Software Development Kit License. |
## v6.19.1
*October 24, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of getting error when hereNow is called with channelGroups param only. |
## v6.19.0
*October 16, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add crypto module that allows configure SDK to encrypt and decrypt messages. |
| **Fixed** | • Improved security of crypto implementation by adding enhanced AES-CBC cryptor.<br/>• Fixes Newtonsoft Json vulnerability with MaxDepth and upgrade to version for non-PCL. |
| **Modified** | • Add SubscribeKey validation for subscribe feature. |
## v6.18.0
*September 4, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Allow name param as optional in SetChannelMetadata. Removed default empty value. |
## v6.17.0
*July 10, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Validate json string before deserialization. |
## v6.16.0
*May 18, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Replaced ConcurrentDictionary class file with System.Collections.Concurrent package for all target frameworks except .net 3.5/4.0.<br/>• Addressed threading issue on reading ConcurrentDictionary keys. |
## v6.15.0
*March 16, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Sending files as raw byte arrays. |
| **Modified** | • Added TcpKeepAlive and ConnectionLimit to improve performance. |
## v6.14.0
*February 27, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Undeprecated GrantToken methods/properties. |
## v6.13.0
*December 5, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Added null check for PublishFileMessage PNStatus in SendFileOperation.<br/>• Removed invalid Content-Type in ObjectsV2 request headers targeting .Net Frameworks. |
| **Modified** | • Added CultureInfo.InvariantCulture to string formatting. |
## v6.12.0
*November 14, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Encode comma char for push related multi channels. |
## v6.11.0
*November 7, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • Added Content-Type to request header to support internal acceptance tests.<br/>• Added acceptance tests for ObjectsV2 feature. |
## v6.10.0
*September 6, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Add Users/Spaces support to PCL versions. |
## v6.9.0
*August 22, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix Timer reference conflict in net6.0. |
## v6.8.0
*August 10, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed Destroy() method when multiple Pubnub instances were in use. |
## v6.7.0
*July 27, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • Added support for Users/Spaces to GrantToken. |
## v6.6.0
*July 18, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • Introduced UserId to PNConfiguration and deprecated UUID.<br/>• Added build target framework support to .Net Framework 4.8 and .Net 6.0. |
## v6.5.0
*June 14, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Suppress web request aborted exception message to callback. |
## v6.4.0
*May 23, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Handle PNConfiguration for multi Pubnub instances. |
## v6.3.0
*March 22, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Refactor Telemetry Task Result to GetAwaiter().GetResult() .<br/>• Removed SILVERLIGHT, WINDOWS_PHONE preprocessor directive code. |
## v6.2.0
*January 27, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • Bumped PeterO.Cbor library version to 4.5.2. |
## v6.1.0
*January 20, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Capture region when exception occur during subscribe. |
## v6.0.0
*January 12, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGES: UUID is mandatory to use SDK. |
## v5.4.0
*December 16, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Replaced BouncyCastle lib with System.Security.Cryptography.Algorithms.<br/>• Added try/catch for publish operation to catch exceptions. |
## v5.3.0
*November 16, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Added RevokeToken feature. |
## v5.2.0
*November 1, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Capture region for subscribe.<br/>• Removed throw exception on atleast one PAM permission validation. |
## v5.1.0
*October 12, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Dispose RandomNumberGenerator |
| **Added** | • Added PAMv3 support - GrantToken, ParseToken, SetAuthToken. |
## v5.0.1
*July 14, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Replaced Random class with RandomNumberGenerator for secure random bytes.<br/>• Handling of SendFile file size exceeded error message and refactored DeleteFile.<br/>• Refactored Encrypt/Decrypt methods in calling PubnubCrypto constructor with config. |
## v5.0.0
*June 14, 2021*
| Type | Changes |
|------|----------|
| **Added** | • BREAKING CHANGE - UseRandomInitializationVector is true by default. |
## 4.15.0.0
*May 27, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to handle malformed message for reconnection policy. |
## 4.14.0.0
*May 18, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Refactored code to handle malformed message for re-subscribe. |
| **Modified** | • Upgraded System.Net.Http minimum version to 4.3.4, to address security advisory CVE-2018-8292 in PubnubPCL. |
## 4.13.0.0
*January 18, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Increase message count default limit for History v3 api call to 100 for single channel. |
| **Fixed** | • UnsubscribeAll fix when no channels subscribed. |
## 4.12.0.0
*October 5, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Added support to Objects Access Manager |
## 4.11.0.0
*August 27, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for SaveFileToLocal in PNDownloadFileResult<br/>• Code refactor to use file Content-Type from generate-upload-url form fields<br/>• Removed IncludeUuid and IncludeMessageType from v2/history endpoint |
## 4.10.0.0
*July 30, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for publish file message<br/>• Modified PNFileEventResult model class and applied internal set accessor for models. |
## 4.9.0.0
*July 28, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Added files feature |
## 4.8.0.0
*June 10, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Removed V1 Objects API feature. BREAKING CHANGE if you are using V1 Objects.<br/>• Added Objects Simplification API feature. |
## 4.7.0.0
*May 27, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor for Signal, Publish, Fire input validation. |
## 4.6.0.0
*April 30, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Added async/await support for feature method calls.<br/>• Added sort for Objects API.<br/>• Typo correction SupressLeaveEvents to SuppressLeaveEvents in PNConfiguration. |
## 4.5.0.0
*January 9, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor to fix Objects and MessageActions using POST/PATCH/DELETE based requests.<br/>• Added filter support for Objects API. |
## 4.4.0.0
*December 19, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code related to TMS GetToken and GetTokens<br/>• Refactored code to retrieve assembly version |
## 4.3.0.0
*December 12, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Added APNS2 support for mobile push.<br/>• Added helper class to build mobile push payload.<br/>• Refactored code for PAM Signature. |
## 4.2.0.0
*October 15, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Added IncludeMeta option to History.<br/>• Added new feature FetchHistory.<br/>• Added support for Message Actions.<br/>• Fix for ManageMembers and ManageMemberships when multiple include fields are provided. |
## 4.1.0.0
*September 26, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for MessageCounts when multiple channels are used.<br/>• Fix for PAM Signature when case-sensitive param keys are provided.<br/>• Refactored all calls that use PAM signature to use v2 format signature.<br/>• Implemented PAMv3 to all Objects.<br/>• New feature Token Management System to all Objects. |
## 4.0.33.0
*August 22, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Modified Signal listener message type to PNSignalResult.<br/>• Added ObjectsAPI feature. |
## 4.0.32.0
*August 8, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Async() is deprecated. Use Execute() instead.<br/>• Added Signal feature. |
## 4.0.31.0
*July 25, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to encode unsafe chars ignored by EscapeDataString in NET35/NET40 |
## 4.0.30.0
*May 28, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to enforce minimum PresenceTimeout value to 20<br/>• Refactored code to handle bool type in presence state |
## 4.0.29.0
*April 25, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Fix to retrieve channel name for PNPresenceEventResult when channel group is used |
## 4.0.28.0
*March 28, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for MessageCounts feature when multiple channels or timetokens are used with PAM enabled keys |
## 4.0.27.0
*March 13, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Added MessageCounts feature to get count of messages published since a given time |
## 4.0.26.0
*February 14, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Fix to capture last timetoken when subscribe request timeout/terminated |
## 4.0.25.0
*February 7, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to allow tilde char for publish GET with secret key<br/>• Minor code refactoring based on Codacy analysis |
## 4.0.24.0
*October 11, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor to check null value of variables related to Reconnect usage |
## 4.0.23.0
*October 1, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor based on codacy rules on unused code<br/>• Refactored code to handle WebException from HttpRequestException for NetStandard platforms |
## 4.0.22.0
*September 6, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Added Grant delete permission feature<br/>• Modified SDK dependency Portable.BouncyCastle minimum version to 1.8.1.2 |
## 4.0.21.0
*August 13, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code for performance improvement<br/>• Refactored CleanupTelemetryData |
## 4.0.20.0
*August 6, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to publish multiple emoji characters<br/>• Refactored code to improve performance of Publish/Fire/Grant/Subscribe/Unsubscribe requests targeting .net framework |
## 4.0.19.0
*July 12, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor to maintain separate instance id during multi-instancing |
## 4.0.18.0
*June 20, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Added Publisher property to PNMessageResult of subscribe<br/>• Added PNException class and refactored code internally around status response |
## 4.0.17.0
*May 30, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor related to MultiplexExceptionHandler<br/>• Support to Apple Watch<br/>• Code refactor related to PubnubInstance |
## 4.0.16.0
*April 9, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor to ClientNetworkStatus<br/>• Proxy support for HttpClient<br/>• Code refactor to Telemetry<br/>• Reduced internal subscribe heartbeat interval for improvement in message delivery |
## 4.0.15.0
*March 22, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Feature to add external query params<br/>• Internal deduping mechanism when devices cross regions (DedupOnSubscribe)<br/>• Added provision to SupressLeaveEvents<br/>• Refactored code related to network check time request for non-200 response logging |
## 4.0.14.0
*February 15, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for Publish Sync<br/>• Refactored Int32/Int64 Parse to TryParse<br/>• Code refactor based on Codacy |
## 4.0.13.0
*January 18, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Relay server sent error status to PNStatus for Publish request<br/>• Refactored to allow colon char for publish with secret key |
## 4.0.12.0
*December 21, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Relay server sent 403 status to PNStatus for PCL<br/>• Resolved array type published message for Subscribe<string> |
## 4.0.11.0
*December 14, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored by applying JArray.Parse for history and time json response |
## 4.0.10.0
*December 13, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code by replacing Add with AddOrGet for ConcurrentDictionary<br/>• Added exception handling in TerminateReconnectTimer<br/>• Code refactor based on Codacy recommendation |
## 4.0.9.0
*December 5, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Return PNStatus for non-subscribe requests timeout<br/>• Fix for PAM Grant requests to work independent of device locale<br/>• Code refactor based on Codacy recommendation |
## 4.0.8.0
*November 9, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added bool return value for AddListener and RemoveListener<br/>• ResetTimeToken option for Reconnect and bool return for Reconnect/Disconnect<br/>• Resubscribe fix when channelgroup is used |
## 4.0.7.0
*November 1, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added exception handling to AddListener and RemoveListener<br/>• Code refactor to address collection modified error in TelemetryManager<br/>• Code refactor based on Codacy recommendation |
## 4.0.6.0
*October 27, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added null check in exception catch block during network reconnect<br/>• Refactored code to send correct channel group, if exist, to PNStatus during network reconnect<br/>• Fix for delete message from history<br/>• Code refactor based on Codacy recommendation |
## 4.0.5.2
*October 10, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added exception handling for subscribe and unsubscribe internal exceptions |
## 4.0.5.1
*September 26, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added new method RemoveAllPushNotificationsFromDeviceWithPushToken<br/>• Code refactor on Reconnect<br/>• Code refactor based on Codacy recommendation |
## 4.0.4.1
*September 19, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added Telemetry feature<br/>• Fix for PNPushListProvisionsResult |
## 4.0.3.2
*September 6, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added HereNowRefresh to PNPresenceEventResult<br/>• PCL version duplicate message fix for multiple disconnect/reconnect |
## 4.0.3.1
*August 18, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code to handle exception in Unsubscribe and query builder functionality<br/>• Migrated source code from VS 2015 to VS 2017<br/>• Added DeleteMessages feature |
## 4.0.2.2
*July 20, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Code refactor to fix subscribe timeout and reconnect |
## 4.0.2.0
*July 5, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored code for application level grant<br/>• Refactored code to reuse HttpClient instance<br/>• Refactored code to handle Pubnub multi-instancing |
## 4.0.1.7
*June 7, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for publish with UsePOST and cipher key<br/>• Handling object array for History response |
## 4.0.1.6
*April 15, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Fix for subscribe connect status callback<br/>• Message null value check for publish |
## 4.0.1.5
*April 6, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored to handle thread blocking |
## 4.0.1.4
*March 31, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Fix to support Xamarin.Android Pubnub SDK install using Visual Studio |
## 4.0.1.3
*March 29, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added code to handle presence interval event<br/>• Code refactor per CA2000 code analysis |
## 4.0.1.3-rc13
*March 28, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Refactored to address false alert log and timeout messages. |
## 4.0.1.3-rc12
*March 16, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Support for ASP.NET/MVC project template projects. |
## 4.0.1.3-rc11
*March 11, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Replaced HttpClient with compatible lib for .net 4.5/4.61 to support VS 2013. |
## 4.0.1.3-rc10
*March 8, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Comma encoding fix for multi channelgroups<br/>• Fixed channel remove from channelgroup |
## 4.0.1.3-rc9
*March 3, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Message fix for history when timetoken=false. |
## 4.0.1.3-rc8
*March 2, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added pn- prefix to default uuid. |
## 4.0.1.3-rc7
*February 20, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • pcl profile 111 subscribe message fix. |
## 4.0.1.3-rc6
*February 17, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Timetoken fix for subscribed messages. |
## 4.0.1.3-rc5
*February 7, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • HttpClient to supported platforms. |
| **Fixed** | • Fixed Unsubscribe issue. |
## 4.0.1.3-rc1
*January 17, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Derived classes for inline coding. |
## 4.0.1.2-rc1
*December 16, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Cipher typo, Origin change. |
## 4.0.1.0-rc1
*December 12, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • initial v4 version. |
Fixed | - Added MembershipMetadata container inside PNObjectEventResult to correctly parse and forward data when object event type is
membership . - Fixed issue where some result objects like PNMessageResult had UserMetadata declared as an object instead of the standard Dictionary<string, object> format for metadata.
|
Added | - Added support for
status and type fields for uuid, channel and members app context apis.
|
Added | - Implemented an in-house CBOR solution for ParseToken() handling to reduce total SDK+dependencies size.
|
Modified | - Updated log type from Error to Warn for TaskCanceledException.
|
Fixed | - Improved parsing of file download errors to be properly set in operation status ErrorData.
|
Added | - Added new integration tests to better cover all SDK endpoints.
|
Fixed | - Fixed an issue when upon receiving a message with published with a custom type the CustomMessageType would be null upon receiving.
|
Fixed | - Fix missing
heartbeat and leave REST API calls when the event engine is enabled and presenceTimeout or presenceHeartbeatInterval not set.
|
Fixed | - Specified dependency version for fixing synk reported issues.
|
Modified | - Changed the way the PubNub logger is injected into IHtttpClientService for better custom-transport-layers handling.
|
Modified | - Subscribe with custom timetoken scenario handling improvements.
|
Modified | - Enhance request handling with detailed response interface.
|
Fixed | - Reafctor: Removed excess logging from transport module. Removed redundant logging from transport layer and added thread id information for tracking http request.
|
Fixed | - Standardize connection configuration to address inconsistent platform defaults leading to socket exhaustion under high load.
|
Fixed | - Fixes issue with subscribe loop when mulitple subscription changes happen rapidly.
|
Modified | - Upgrade Cbor library to latest version.
- Additional logging to log pubnub instance configuration through registered custom logger.
|
Modified | - Upgrade newtonsoft json library.
|
Modified | - Removed old deprecated logger code.
|
Modified | - Implemented new logger for enhanced logging.
|
Fixed | - Implemented enhanced cancellation token management for
HttpClient to allow graceful termination of HTTP requests.
|
Added | - Added new optional parameter
IfMatchesEtag for setUUIDMetadata and setChannelMetadata . When provided, the server compares the argument value with the eTag on the server and if they don't match a HTTP 412 error is returned.
|
Fixed | - Fixes issue of not getting
PNSubscriptionChangedCategory status when subscription change happens.
|
Modified | - Informative log statements throughout SDK.
|
Fixed | - Fixes issue of receiving duplicate messages when event engine is disabled.
|
Modified | - Refactored event result data parsing logic within the subscribe feature for enhanced performance and maintainability.
|
Added | - Added support for CustomMessageType in publish, signal, files features.
- Added support for Type field in membership APIs.
|
Added | - Added support for
Channel , ChannelGroup , Subscription and SubscriptionSet , ChannelMetadata , UserMetadata entities for Subscribe related operation. - BREAKING CHANGES: Default Reconnection policy is set to Exponential.
- BREAKING CHANGES: All apis calls will be made through
HttpClient by default. - Default value for
EnableEventEngine is set to true , Subscribe operation will be executed by event engine by default.
|
Modified | - Removed telemetry manager.
|
Fixed | - Fixes issue of listener not being removed on RemoveListener call.
|
Fixed | - Fixes issue of Unity SDK not being able to have a fully independent IJsonPluggableLibrary implementation because of direct nu-get Newtonsoft usage in C# SDK (Unity has it's own version that works with IL2CPP builds).
|
Added | - Added event engine implementation for subscribe and presence operation.
- Added support for
RetryConfiguration to configure subscribe request retry.
|
Fixed | - Resolved the issue where an incorrect network status was emitted when no internet connection was detected.
|
Fixed | - Fixes issue of inaccurate DateTime to TimeToken conversion in TranslateDateTimeToPubnubUnixNanoSeconds.
|
Fixed | - Fixes issue of getting exception for custom objects in subscription and history when crypto module is configured.
|
Fixed | - Handle unencrypted message while getting messages with crypto.
|
Fixed | - Fixes issue of applying default serializer settings.
|
Modified | - Changed license to PubNub Software Development Kit License.
|
Fixed | - Fixes issue of getting error when hereNow is called with channelGroups param only.
|
Added | - Add crypto module that allows configure SDK to encrypt and decrypt messages.
|
Fixed | - Improved security of crypto implementation by adding enhanced AES-CBC cryptor.
- Fixes Newtonsoft Json vulnerability with MaxDepth and upgrade to version for non-PCL.
|
Modified | - Add SubscribeKey validation for subscribe feature.
|
Fixed | - Allow name param as optional in SetChannelMetadata. Removed default empty value.
|
Modified | - Validate json string before deserialization.
|
Modified | - Replaced ConcurrentDictionary class file with System.Collections.Concurrent package for all target frameworks except .net 3.5/4.0.
- Addressed threading issue on reading ConcurrentDictionary keys.
|
Added | - Sending files as raw byte arrays.
|
Modified | - Added TcpKeepAlive and ConnectionLimit to improve performance.
|
Modified | - Undeprecated GrantToken methods/properties.
|
Fixed | - Added null check for PublishFileMessage PNStatus in SendFileOperation.
- Removed invalid Content-Type in ObjectsV2 request headers targeting .Net Frameworks.
|
Modified | - Added CultureInfo.InvariantCulture to string formatting.
|
Fixed | - Encode comma char for push related multi channels.
|
Modified | - Added Content-Type to request header to support internal acceptance tests.
- Added acceptance tests for ObjectsV2 feature.
|
Fixed | - Add Users/Spaces support to PCL versions.
|
Fixed | - Fix Timer reference conflict in net6.0.
|
Fixed | - Fixed Destroy() method when multiple Pubnub instances were in use.
|
Modified | - Added support for Users/Spaces to GrantToken.
|
Modified | - Introduced UserId to PNConfiguration and deprecated UUID.
- Added build target framework support to .Net Framework 4.8 and .Net 6.0.
|
Fixed | - Suppress web request aborted exception message to callback.
|
Fixed | - Handle PNConfiguration for multi Pubnub instances.
|
Fixed | - Refactor Telemetry Task Result to GetAwaiter().GetResult() .
- Removed SILVERLIGHT, WINDOWS_PHONE preprocessor directive code.
|
Modified | - Bumped PeterO.Cbor library version to 4.5.2.
|
Fixed | - Capture region when exception occur during subscribe.
|
Modified | - BREAKING CHANGES: UUID is mandatory to use SDK.
|
Fixed | - Replaced BouncyCastle lib with System.Security.Cryptography.Algorithms.
- Added try/catch for publish operation to catch exceptions.
|
Added | - Added RevokeToken feature.
|
Modified | - Capture region for subscribe.
- Removed throw exception on atleast one PAM permission validation.
|
Modified | - Dispose RandomNumberGenerator
|
Added | - Added PAMv3 support - GrantToken, ParseToken, SetAuthToken.
|
Modified | - Replaced Random class with RandomNumberGenerator for secure random bytes.
- Handling of SendFile file size exceeded error message and refactored DeleteFile.
- Refactored Encrypt/Decrypt methods in calling PubnubCrypto constructor with config.
|
Added | - BREAKING CHANGE - UseRandomInitializationVector is true by default.
|
Modified | - Refactored code to handle malformed message for reconnection policy.
|
Fixed | - Refactored code to handle malformed message for re-subscribe.
|
Modified | - Upgraded System.Net.Http minimum version to 4.3.4, to address security advisory CVE-2018-8292 in PubnubPCL.
|
Modified | - Increase message count default limit for History v3 api call to 100 for single channel.
|
Fixed | - UnsubscribeAll fix when no channels subscribed.
|
Modified | - Added support to Objects Access Manager
|
Modified | - Fix for SaveFileToLocal in PNDownloadFileResult
- Code refactor to use file Content-Type from generate-upload-url form fields
- Removed IncludeUuid and IncludeMessageType from v2/history endpoint
|
Modified | - Fix for publish file message
- Modified PNFileEventResult model class and applied internal set accessor for models.
|
Modified | - Removed V1 Objects API feature. BREAKING CHANGE if you are using V1 Objects.
- Added Objects Simplification API feature.
|
Modified | - Code refactor for Signal, Publish, Fire input validation.
|
Modified | - Added async/await support for feature method calls.
- Added sort for Objects API.
- Typo correction SupressLeaveEvents to SuppressLeaveEvents in PNConfiguration.
|
Modified | - Code refactor to fix Objects and MessageActions using POST/PATCH/DELETE based requests.
- Added filter support for Objects API.
|
Modified | - Refactored code related to TMS GetToken and GetTokens
- Refactored code to retrieve assembly version
|
Modified | - Added APNS2 support for mobile push.
- Added helper class to build mobile push payload.
- Refactored code for PAM Signature.
|
Modified | - Added IncludeMeta option to History.
- Added new feature FetchHistory.
- Added support for Message Actions.
- Fix for ManageMembers and ManageMemberships when multiple include fields are provided.
|
Modified | - Fix for MessageCounts when multiple channels are used.
- Fix for PAM Signature when case-sensitive param keys are provided.
- Refactored all calls that use PAM signature to use v2 format signature.
- Implemented PAMv3 to all Objects.
- New feature Token Management System to all Objects.
|
Modified | - Modified Signal listener message type to PNSignalResult.
- Added ObjectsAPI feature.
|
Modified | - Async() is deprecated. Use Execute() instead.
- Added Signal feature.
|
Modified | - Refactored code to encode unsafe chars ignored by EscapeDataString in NET35/NET40
|
Modified | - Refactored code to enforce minimum PresenceTimeout value to 20
- Refactored code to handle bool type in presence state
|
Modified | - Fix to retrieve channel name for PNPresenceEventResult when channel group is used
|
Modified | - Fix for MessageCounts feature when multiple channels or timetokens are used with PAM enabled keys
|
Modified | - Added MessageCounts feature to get count of messages published since a given time
|
Modified | - Fix to capture last timetoken when subscribe request timeout/terminated
|
Modified | - Refactored code to allow tilde char for publish GET with secret key
- Minor code refactoring based on Codacy analysis
|
Modified | - Code refactor to check null value of variables related to Reconnect usage
|
Modified | - Code refactor based on codacy rules on unused code
- Refactored code to handle WebException from HttpRequestException for NetStandard platforms
|
Modified | - Added Grant delete permission feature
- Modified SDK dependency Portable.BouncyCastle minimum version to 1.8.1.2
|
Modified | - Refactored code for performance improvement
- Refactored CleanupTelemetryData
|
Modified | - Refactored code to publish multiple emoji characters
- Refactored code to improve performance of Publish/Fire/Grant/Subscribe/Unsubscribe requests targeting .net framework
|
Modified | - Code refactor to maintain separate instance id during multi-instancing
|
Modified | - Added Publisher property to PNMessageResult of subscribe
- Added PNException class and refactored code internally around status response
|
Modified | - Code refactor related to MultiplexExceptionHandler
- Support to Apple Watch
- Code refactor related to PubnubInstance
|
Modified | - Code refactor to ClientNetworkStatus
- Proxy support for HttpClient
- Code refactor to Telemetry
- Reduced internal subscribe heartbeat interval for improvement in message delivery
|
Modified | - Feature to add external query params
- Internal deduping mechanism when devices cross regions (DedupOnSubscribe)
- Added provision to SupressLeaveEvents
- Refactored code related to network check time request for non-200 response logging
|
Modified | - Fix for Publish Sync
- Refactored Int32/Int64 Parse to TryParse
- Code refactor based on Codacy
|
Modified | - Relay server sent error status to PNStatus for Publish request
- Refactored to allow colon char for publish with secret key
|
Modified | - Relay server sent 403 status to PNStatus for PCL
- Resolved array type published message for Subscribe<string>
|
Modified | - Refactored by applying JArray.Parse for history and time json response
|
Modified | - Refactored code by replacing Add with AddOrGet for ConcurrentDictionary
- Added exception handling in TerminateReconnectTimer
- Code refactor based on Codacy recommendation
|
Modified | - Return PNStatus for non-subscribe requests timeout
- Fix for PAM Grant requests to work independent of device locale
- Code refactor based on Codacy recommendation
|
Modified | - Added bool return value for AddListener and RemoveListener
- ResetTimeToken option for Reconnect and bool return for Reconnect/Disconnect
- Resubscribe fix when channelgroup is used
|
Modified | - Added exception handling to AddListener and RemoveListener
- Code refactor to address collection modified error in TelemetryManager
- Code refactor based on Codacy recommendation
|
Modified | - Added null check in exception catch block during network reconnect
- Refactored code to send correct channel group, if exist, to PNStatus during network reconnect
- Fix for delete message from history
- Code refactor based on Codacy recommendation
|
Modified | - Added exception handling for subscribe and unsubscribe internal exceptions
|
Modified | - Added new method RemoveAllPushNotificationsFromDeviceWithPushToken
- Code refactor on Reconnect
- Code refactor based on Codacy recommendation
|
Modified | - Added Telemetry feature
- Fix for PNPushListProvisionsResult
|
Modified | - Added HereNowRefresh to PNPresenceEventResult
- PCL version duplicate message fix for multiple disconnect/reconnect
|
Modified | - Refactored code to handle exception in Unsubscribe and query builder functionality
- Migrated source code from VS 2015 to VS 2017
- Added DeleteMessages feature
|
Modified | - Code refactor to fix subscribe timeout and reconnect
|
Modified | - Refactored code for application level grant
- Refactored code to reuse HttpClient instance
- Refactored code to handle Pubnub multi-instancing
|
Modified | - Fix for publish with UsePOST and cipher key
- Handling object array for History response
|
Modified | - Fix for subscribe connect status callback
- Message null value check for publish
|
Modified | - Refactored to handle thread blocking
|
Modified | - Fix to support Xamarin.Android Pubnub SDK install using Visual Studio
|
Modified | - Added code to handle presence interval event
- Code refactor per CA2000 code analysis
|
Modified | - Refactored to address false alert log and timeout messages.
|
Modified | - Support for ASP.NET/MVC project template projects.
|
Modified | - Replaced HttpClient with compatible lib for .net 4.5/4.61 to support VS 2013.
|
Fixed | - Comma encoding fix for multi channelgroups
- Fixed channel remove from channelgroup
|
Fixed | - Message fix for history when timetoken=false.
|
Modified | - Added pn- prefix to default uuid.
|
Fixed | - pcl profile 111 subscribe message fix.
|
Fixed | - Timetoken fix for subscribed messages.
|
Modified | - HttpClient to supported platforms.
|
Fixed | |
Modified | - Derived classes for inline coding.
|
Modified | - Cipher typo, Origin change.
|