Project: EMQ Technologies (App Definition and Development / Streaming & Messaging)
File: e5.3.2.en.md

Changed default RPC driver from `gen_rpc` to `rpc` for core-replica database synchronization. This improves core-replica data replication latency. Allowed users with the "Viewer" role to change their own passwords. However, those with the "Viewer" role do not have permission to change the passwords of other users. Improved the performance of the `emqx` command. Added validation to Redis commands in Redis authorization source. Additionally, this improvement refines the parsing of Redis commands during authentication and authorization processes. The parsing now aligns with `redis-cli` compatibility standards and supports quoted arguments. Enhanced file transfer capabilities. Now, clients can use an asynchronous method for file transfer by sending commands to the `$file-async/...` topic and subscribing to command execution results on the `$file-response/{clientId}` topic. This improvement simplifies the use of the file transfer feature, particularly suitable for clients using MQTT v3.1/v3.1.1 or those employing MQTT bridging. For more details, please refer to . Fixed the error response code when downloading non-existent trace files. Now the response returns `404` instead of `500`. Fixed an issue in EMQX's `builtindatabase` authorization source. With this update, all Access Control List (ACL) records are completely removed when an authorization source is deleted. This resolves the issue of residual records remaining in the database when re-creating authorization sources. Fixed validation of Bcrypt salt rounds in authentication management through the API/Dashboard. Fixed validation of the `iterations` field of the `pbkdf2` password hashing algorithm. Now, `iterations` must be strictly positive. Previously, it could be set to 0, which led to a nonfunctional authenticator. Fixed an issue in the EMQX CoAP Gateway where heartbeats were not effectively maintaining the connection's active status. This fix ensures that the heartbeat mechanism properly sustains the liveliness of CoAP Gateway connections. Modified HTTP API behavior for APIs managing the `builtindatabase` authorization source. They will now return a `404` status code if `builtindatabase` is not set as the authorization source, replacing the former `20X` response. Improved the termination of EMQX services to ensure a graceful stop even in the presence of an unavailable MongoDB resource. This fix addresses an issue where redundant error logs were generated due to a race condition during simultaneous socket closure by a peer and the server. Previously, concurrent socket close events triggered by the operating system and EMQX resulted in unnecessary error logging. The implemented fix improves event handling to eliminate unnecessary error messages. Fixed a bug where attempting to set the `active_n` option on a TCP/SSL socket could lead to a connection crash. The problem occurred if the socket had already been closed by the time the connection process attempted to apply the `activen` setting, resulting in a `caseclause` crash. Added hot configuration support for the file transfer feature. Improved the log formatting specifically for the Postgres bridge in EMQX. It addresses issues related to Unicode characters in error messages returned by the driver.