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

Added extra diagnostic checks to help debug issues when mnesia is stuck waiting for tables. Library Updates: `ekka` has been upgraded to version 0.15.15, and `mria` to version 0.6.4. Feature Preview: Planned for EMQX v5.4.0, introducing the concepts of Connector and Action base on data bridge. The existing data bridge will be gradually migrated to Connector and Action. Connector are designed to manage the integration with external systems, while Actions are solely used to configure the data processing methods. Connector can be reused across multiple Actions, providing greater flexibility and scalability. Currently, the migration has been completed for Kafka producer and Azure Event Hub producer. The Dashboard now supports MQTT 5.0 publish attribute settings for the rule engine's message republish action, allowing users more flexibility in publishing messages. Upgraded jq library from v0.3.10 to v0.3.11. In this version, jqport programs are initiated on-demand and will not appear in users' processes unless the jq function in EMQX is used. Additionally, idle jqport programs will auto-terminate after a set period. Note: Most EMQX users are running jq in NIF mode and will not be affected by this update. Hid a few pieces of sensitive information from debug-level logs. Disabled outdated TLS versions and cipher suites in the EMQX backplane network (`genrpc`). Added support for tlsv1.3 on the backplane and introduced new configuration parameters: `EMQXRPCTLS_VERSIONS` and `EMQX_RPCCIPHERS`. Fixed clustering in IPv6 network. Added new configurations `rpc.listenaddress` and `rpc.ipv6only` to allow EMQX cluster RPC server and client to use IPv6. Updated QUIC stack to msquic 2.2.3. Fixed rpc schema to ensure that client/server uses same transport driver. Fixed the issue where the node could not start after executing `./bin/emqx data import [FILE]`. The connection between `apikeykey` and `apikeyname` is also enhanced for better consistency and unique

`apikeykey`: When generating an API key via the dashboard, `apikeykey` will now create a unique value derived from the provided human-readable `apikey_name`. `apikeyname` Conversely, when using a bootstrap file to generate an API key, `apikeyname` will be generated as a unique value based on the associated `apikey_key`. Fixed the schema to ensure that RPC client SSL port aligns with the configured server port. This fix also guarantees that the RPC ports are correctly opened in the Helm chart. Upgraded opentelemetry library to v1.3.1-emqx. This opentelemetry release fixes invalid metrics timestamps in the exported metrics. Fix excessive warning message print in remote console shell. Fixed an issue where a Kafka Producer bridge with `sync` query mode would not buffer messages when in the `connecting` state. Fixed a metrics-related issue where messages sent to Kafka would be counted as failed even when they were successfully transmitted afterward due to internal buffering. Enhanced the LDAP filter string parser with the following improvements: Automatic escaping of special characters within filter strings. Fixed a bug that previously prevented the use of `dn` as a filter value. Resolved an incompatibility issue that caused crashes during session takeover or channel eviction when the session was located on a remote node running EMQX v5.2.x or an earlier version. Eliminated logging and tracing of HTTP request bodies in HTTP authentification and HTTP bridges. Simplified the CQL query used for the Cassandra bridge health check, which was previously generating warnings in the Cassandra server logs. Fixed backward plugin compatibility. Currently, EMQX validates hookpoint names, so invalid hookspoints cannot be used for registering hooks. However, older versions of plugin templates used some misspelled hookpoints, and so could the real plugins. We allow the old hookpoints to be used for registering hooks, but issue a warning that they are deprecated. As before, these hooks are never called. Fix config sync wait-loop race condition when cluster nodes boot around the same time.