Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v5.4.1
->v5.5.0
Release Notes
emqx/emqx (emqx/emqx)
v5.5.0
: EMQX v5.5.0Compare Source
v5.5.0
Enhancements
#12085 EMQX has been upgraded to leverage the capabilities of OTP version 26.1.2-2. NOTE: Docker images are still built with OTP 25.3.2.
#12189 Enhanced the ACL claim format in EMQX JWT authentication for greater versatility. The updated format now supports an array structure, aligning more closely with the file-based ACL rules.
For example:
In this new format, the absence of a matching rule does not result in an automatic denial of the action. The authorization chain can advance to other configured authorizers if a match is not found in the JWT ACL. If no match is found throughout the chain, the final decision defers to the default permission set in
authorization.no_match
.#12267 Added a new
timeout
parameter to thecluster/:node/invite
interface, addressing the issue of default timeouts.The previously set 5-second default timeout often led to HTTP API call timeouts because joining an EMQX cluster usually requires more time.
In addition, EMQX added a new API
/cluster/:node/invite_async
to support an asynchronous way to invite nodes to join the cluster and introduced a newcluster/invitation
API to inspect the join status.#12272 Introduced updates to the
retain
API in EMQX:DELETE /retainer/messages
to clean all retained messages.topic
in the query string for the APIGET /retainer/messages
. For example, using a query stringtopic=t/1
filters the retained messages for a specific topic, improving the efficiency of message retrieval.#12277 Added
mqtt/delayed/messages/:topic
API to remove delayed messages by topic name.#12278 Adjusted the maximum pagination size for paginated APIs in the REST API from
3000
to10000
.#12289 Authorization caching now supports the exclusion of specific topics. For the specified list of topics and topic filters, EMQX will not generate an authorization cache. The list can be set through the
authorization.cache.excludes
configuration item or via the Dashboard. For these specific topics, permission checks will always be conducted in real-time rather than relying on previous cache results, thus ensuring the timeliness of authorization outcomes.#12329 Added
broker.routing.batch_sync
configuration item to enable a dedicated process pool that synchronizes subscriptions with the global routing table in batches, thus reducing the frequency of cross-node communication that can be slowed down by network latency. Processing multiple subscription updates collectively, not only accelerates synchronization between replica nodes and core nodes in a cluster but also reduces the load on the broker pool, minimizing the risk of overloading.#12333 Added a
tags
field for actions and connectors. Similar to thedescription
field (which is a free text annotation),tags
can be used to annotate actions and connectors for filtering and grouping.#12299 Exposed more metrics to improve observability:
Montior API:
retained_msg_count
field to/api/v5/monitor_current
.license_quota
field to/api/v5/monitor_current
retained_msg_count
andnode_uptime
fields to/api/v5/monitor_current/nodes/{node}
.retained_msg_count
,license_quota
andnode_uptime
fields to/api/v5/monitor_current/nodes/{node}
.Prometheus API:
emqx_cert_expiry_at
andemqx_license_expiry_at
to/api/v5/prometheus/stats
to display TLS listener certificate expiration time and license expiration time./api/v5/prometheus/auth
endpoint to provide metrics such as execution count and running status for all authenticatiors and authorizators./api/v5/prometheus/data_integration
endpoint to provide metrics such as execution count and status for all rules, actions, and connectors.Limitations:
Prometheus push gateway only supports the content in
/api/v5/prometheus/stats?mode=node
.For more API details and metric type information, please see swagger api docs.
#12196 Improved network efficiency during routes cleanup.
Previously, when a node was down, a delete operation for each route to that node must be exchanged between all the other live nodes. After this change, only one
match and delete
operation is exchanged between all live nodes, significantly reducing the number of necessary network packets and decreasing the load on the inter-cluster network.This optimization must be especially helpful for geo-distributed EMQX deployments where network latency can be significantly high.
#12354 The concurrent creation and updates of data integrations are now supported, significantly increasing operation speeds, such as when importing backup files.
Bug Fixes
#12232 Fixed an issue when cluster commit log table was not deleted after a node was forced to leave a cluster.
#12243 Fixed a family of subtle race conditions that could lead to inconsistencies in the global routing state.
#12269 Improved error handling in the
/clients
interface; now returns a 400 status with more detailed error messages, instead of a generic 500, for query string validation failures.#12285 Updated the CoAP gateway to support short parameter names for slight savings in datagram size. For example,
clientid=bar
can be written asc=bar
.#12303 Fixed the message indexing in retainer. Previously, clients with wildcard subscriptions might receive irrelevant retained messages not matching their subscription topics.
#12305 Corrected an issue with incomplete client/connection information being passed into
emqx_cm
, which could lead to internal inconsistencies and affect memory usage and operations like node evacuation.#12306 Fixed an issue preventing the connectivity test for the Connector from functioning correctly after updating the password parameter via the HTTP API.
#12359 Fixed an issue causing error messages when restarting a node configured with some types of data bridges. Additionally, these bridges were at risk of entering a failed state upon node restart, requiring a manual restart to restore functionality.
#12404 Fixed an issue where restarting a data integration with heavy message flow could lead to a stop in the collection of data integration metrics.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.