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

Start releasing Rocky Linux 9 (compatible with Enterprise Linux 9) and MacOS 12 packages Add `extraVolumeMounts` to EMQX Helm Chart, it will have the ability to mount the user-own files into the EMQX instance, for example, ACL rule files as mentioned in Done of When connecting with the flag `clean_start=false`, EMQX will filter out messages that published by banned clients. Previously, the messages sent by banned clients may still be delivered to subscribers in this scenario. For helm charts, add MQTT ingress bridge; and removed stale `mgmt` references. Improve the performance of `/bridges` API. Earlier, when the number of nodes in the cluster was large or the node was busy, the API may have a request timeout. Redact the HTTP request body in the authentication error logs for security reasons. Fix return type structure for error case in API schema for `/gateways/:name/clients`. In dashboard API for `/monitor(_current)/nodes/:node` return `404` instead of `400` if node does not exist. Metrics are now only exposed via the /bridges/:id/metrics endpoint. Metrics are no longer returned in other API operations such as getting the list of all bridges, or in the response when a bridge has been created. Allow setting node name from `EMQXNODE_NAME` when running in docker. Prior to this fix, only `EMQXNODENAME` is allowed. Ensure Bridge API returns `404` status code consistently for resources that don't exist. Improve daemon mode startup failure logs. Before this change, it was difficult for users to understand the reason for EMQX 'start' command failed to boot the node. The only information they received was that the node did not start within the expected time frame, and they were instructed to boot the node with 'console' command in the hope of obtaining some logs. However, the node might actually be running, which could cause 'console' mode to fail for a different reason. With this new change, when daemon mode fails to boot, a diagnosis is issued. Here are the possible scenarios: If the node cannot be found from `ps -ef`, the user is instructed to find information in log files `erlang.log.`. If the node is found to be running but not responding to pings, the user is advised to check if the host name is resolvable and reachable. If the node is responding to pings, but the EMQX app is not running, it is likely a bug. In this case, the user is advised to report a Github issue. Fix: configuration parameter `mqtt.maxawaitingrel` had no effect. Fix `/bridges` API status

Return `400` instead of `403` in case of removing a data bridge that is dependent on an active rule. Return `400` instead of `403` in case of calling operations (start|stop|restart) when Data-Bridging is not enabled. Improve error messages for `/briges_probe` and `[/node/:node]/bridges/:id/:operation` API calls to make them more readable. And set HTTP status code to `400` instead of `500`. Check if type in `PUT /authorization/sources/:type` matches `type` given in body of request. Fix description of `sharedsubscriptionstrategy`. Consistently return `404` for all requests on non existent source in `/authorization/sources/:source[/*]`. A crash with an error in the log file that happened when the MongoDB authorization module queried the database has been fixed. Fix channel crash for slow clients with enhanced authentication. Previously, when the client was using enhanced authentication, but the Auth message was sent slowly or the Auth message was lost, the client process would crash. For operations on `bridges API` if `bridge-id` is unknown we now return `404` instead of `400`. Also a bug was fixed that caused a crash if that was a node operation. Additionally we now also check if the given bridge is enabled when doing the cluster operation `start` . Affected endpoints: [cluster] `/bridges/:id/:operation`, [node] `/nodes/:node/bridges/:id/:operation`, where `operation` is one of `[start|stop|restart]`. Moreover, for a node operation, EMQX checks if node name is in our cluster and return `404` instead of `501`. Fix an error occurring when a joining node doesn't have plugins that are installed on other nodes in the cluster. After this fix, the joining node will copy all the necessary plugins from other nodes. Fix problems related to manual joining of EMQX replicant nodes to the cluster. Previously, after manually executing joining and then leaving the cluster, the `replicant` node can only run normally after restarting the node after joining the cluster again. Fix crash when `statsd.server` is set to an empty string. The default heartbeat period for MongoDB has been increased to reduce the risk of too excessive logging to the MongoDB log file. Fix garbled config display in dashboard when the value is originally from environment variables. For example, `env EMQXSTATSD_SERVER='127.0.0.1:8124' . /bin/emqx start` results in unreadable string (not '127.0.0.1:8124') displayed in Dashboard's Statsd settings page. Related PR: . Fix some error logs generated by `systemctl stop emqx` command. Prior to the fix, the command was not stopping jq and os_mon applications properly. Add `-setcookie` emulator flag when invoking `emqx ctl` to prevent problems with emqx cli when home directory is read only. Fixes . Fixed default rate limit configuration not being applied correctly when creating a new listener.