Enhancements
https://github.com/emqx/emqx/pull/8329 The MongoDB library has been upgraded to support MongoDB 5.1+
https://github.com/emqx/emqx/pull/9593 Obfuscated sensitive data in the response when querying bridges information by API.
https://github.com/emqx/emqx/pull/9614 Make it possible to configure host:port from environment variables without quotes. Prior to this change, when overriding a host:port config value from the environment variable, one has to quote it as: env EMQX_BRIDGESMQTTXYZSERVER='"localhost:1883"'. Now it's possible to set it without quote as env EMQX_BRIDGESMQTTXYZSERVER='localhost:1883'.
https://github.com/emqx/emqx/pull/9642 Deprecates enable_batch and enable_queue options for bridges/resources. After this change, queuing is always enabled for bridges, and batching is controlled by the batch_size option: batch_size > 1 means batching will be enabled.
https://github.com/emqx/emqx/pull/9671 Implement sliding window average metrics.
https://github.com/emqx/emqx/pull/9674 Made rule engine behavior more consistent with bridge behavior regarding metrics: if a rule engine is disabled, its metrics are now reset.
https://github.com/emqx/emqx/pull/9675 HTTP client library ehttpc upgraded from 0.4.2 to 0.4.3. Library eredis_cluster which manages clients to Redis clusters upgraded from 0.7.1 to 0.7.5.
https://github.com/emqx/emqx/pull/9713 Introduce api_key.bootstrap_file to initialize the api key at boot time. Deprecate dashboard.bootstrap_users_file. Limit the maximum number of api keys to 100 instead of 30.
Bug fixes
https://github.com/emqx/emqx/pull/8648 When deleting a non-existing bridge the server gave a successful response. This has been fixed so that the server instead gives an error response when the user attempts to delete a non-existing bridge.
https://github.com/emqx/emqx/pull/9637 Fix the expiry_interval fields of the clients HTTP API to measure in seconds.
https://github.com/emqx/emqx/pull/9638 Fix the problem of data loss and bad match when the MySQL driver is disconnected.
https://github.com/emqx/emqx/pull/9641 Fix an issue where testing the GCP PubSub could leak memory and an issue where its JWT token would fail to refresh a second time.
https://github.com/emqx/emqx/pull/9642 Fix some issues that could lead to wrong bridge metrics. Fix an issue that could lead to message loss and wrong metrics with the Kafka Producer bridge when Kafka or the connection to it is down. Fix some issues that could lead to the same message being delivered more than once when using batching for bridges and when the batch was retried.
https://github.com/emqx/emqx/pull/9667 Remove the possibility to set clientid for /publish and /publish/bulk HTTP APIs. This is to reduce the risk of security confusion.
https://github.com/emqx/emqx/pull/9687 Fix the problem that sending messages to data-bridges failed because of incorrect handling of some data-bridges without local_topic field configured. Before this change, if some bridges have configured the local_topic field but others have not, a function_clause error will occur when forwarding messages to the data-bridges.
https://github.com/emqx/emqx/pull/9689 Fix handling of HTTP authorization result when a request failure (e.g.: HTTP resource is down) would cause a function_clause error.
https://github.com/emqx/emqx/pull/9703 Set the default value of the qos field of the HTTP API /clients/:clientid/subscribe to 0. Before this fix, the qos field has no default value, which leads to a function_clause error when querying this API.
https://github.com/emqx/emqx/pull/9705 Remove the default value of Webhook. Before this repair, the default value of the body field of Webhook is ${payload}, but there is no payload field in the available fields of other events except the message publishing in the rule, so in this case, the webhook will send a string with the message body as "undefined" to the HTTP service. This fix removes the default value of the body field. When the body field is not configured, Webhook will send all available fields of the current event in the format of a JSON object.
https://github.com/emqx/emqx/pull/9712 Fixed the problem of '404 Not Found' when calling the HTTP API '/clients/:clientid/subscribe/bulk' from the plug-ins and data-bridges on handling the 'client.connected' event.
https://github.com/emqx/emqx/pull/9714 Fix /mqtt/auto_subscribe API's bad swagger schema, and make sure swagger always checks if the schema is correct.
https://github.com/emqx/emqx/pull/9716 MQTT bridge config compatibility fix. The config created before v5.0.12 may encounter a compatibility issue after upgrading to v5.0.13.
https://github.com/emqx/emqx/pull/9717 Prior to this fix, if it always times out when trying to connect a bridge server, it's not possible to change other configs even when the bridge is disabled.