Skip to content

Commit 3381cec

Browse files
committed
add missing changes
1 parent 729d543 commit 3381cec

File tree

2 files changed

+164
-0
lines changed

2 files changed

+164
-0
lines changed

en_US/changes/breaking-changes-ee-5.9.md

+16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
## 5.9.0
44

5+
- [#14865](https://github.com/emqx/emqx/pull/14865) Dropped old LDAP authentication config layout (deprecated since v5.4).
6+
Move `password_attribute` and `is_superuser_attribute` under the `method` block:
7+
```hcl
8+
method {
9+
type = hash
10+
password_attribute = "userPassword"
11+
is_superuser_attribute = "isSuperuser"
12+
}
13+
```
14+
15+
- [#14765](https://github.com/emqx/emqx/pull/14765) Added extra validation for using Named Instances in SQL Server Connector. Previously, we could not infer when the user furnished an explicit port for SQL Server, and always added the default port if not explicitly defined.
16+
17+
For Named Instances, we need to explicitly define a port to connect to when connecting with the ODBC driver. And the driver happily connects to whatever instance is running on that port, completely ignoring the given Instance Name, if any.
18+
19+
Now, we impose that the port is to be explicitly defined when an instance name is given, and we also attempt to infer differences between desired and connected instance names during health checks.
20+
521
- [#14773](https://github.com/emqx/emqx/pull/14773) Rate limiting configuration options have been changed.
622
- This change is incompatible with versions prior to 5.1.0
723
- This change is also incompatible with manually modified limiter configurations that use structures from versions prior to 5.1.0

en_US/changes/changes-ee-v5.md

+148
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,109 @@ Make sure to check the breaking changes and known issues before upgrading to EMQ
88

99
### Enhancements
1010

11+
- [#14996](https://github.com/emqx/emqx/pull/14996) RabbitMQ action supports using the default exchange.
12+
13+
- [#14979](https://github.com/emqx/emqx/pull/14979) Support for `zone` and `listener` in authentication and authorization templates.
14+
Also added `zone` and `listener` to the `who` match conditions in ACL rules.
15+
16+
This enables per-listener or per-zone access control.
17+
Examples:
18+
19+
- Send the `zone` name in requests to the HTTP authenticator using a body template like:
20+
`{"username": "${username}", "zone": "${zone}"}`
21+
22+
- In `acl.conf`, allow clients to subscribe to `${username}/#` only if connected via the SSL listener:
23+
`{allow, {listener, "ssl:default"}, subscribe, ["${username}/#"]}.`
24+
25+
- [#14976](https://github.com/emqx/emqx/pull/14976) Added support for the precondition configuration for authenticators.
26+
27+
This allows selective invocation of authenticators based on client information, helping avoid unnecessary authentication requests.
28+
For example, to trigger the HTTP authenticator only for clients connected via `tcp:default`, and Postgre authenticators for those on `ssl:default`, you can use preconditions like str_eq(listener, 'tcp:default') or str_eq(listener, 'ssl:default').
29+
30+
- [#14966](https://github.com/emqx/emqx/pull/14966) Added the possibility of deleting the default dashboard admin user. For that, at least one other admin user must exist.
31+
32+
- [#14930](https://github.com/emqx/emqx/pull/14930) Start releasing macOS 15 (Sequoia) packages
33+
34+
- [#14901](https://github.com/emqx/emqx/pull/14901) Added a new type of schema to Schema Registry: `external_http`. With this new schema type, it's possible to setup an external HTTP server that performs arbitrary operations to the payload and return the result to be used in Rules.
35+
36+
- [#14892](https://github.com/emqx/emqx/pull/14892) 1. Fix load imbalance in core/replicant cluster.
37+
Previously, under certain conditions all transactions from the replicants could be sent to a single core node.
38+
39+
2. Add CLI commands for rebalancing replicant nodes in relation to core nodes:
40+
- `emqx_ctl cluster core rebalance plan`
41+
- `emqx_ctl cluster core rebalance status`
42+
- `emqx_ctl cluster core rebalance confirm`
43+
- `emqx_ctl cluster core rebalance abort`
44+
45+
- [#14884](https://github.com/emqx/emqx/pull/14884) Added HTTP API to manage multi-tenancy configurations.
46+
47+
- [#14876](https://github.com/emqx/emqx/pull/14876) End-to-end tracing support for Rule Engine, including tracing for the following entry:
48+
49+
- Client-published messages triggering Rules
50+
- Client events and alert events triggering Rules
51+
- Source-triggered Rules
52+
- Actions executed by Rules
53+
54+
Limitations:
55+
Fallback action tracing is not currently supported.
56+
57+
- [#14845](https://github.com/emqx/emqx/pull/14845) Avoid unnecessary restarts of existing listeners when changing gateway configurations and listeners.
58+
59+
60+
- [#14840](https://github.com/emqx/emqx/pull/14840) Added HTTP API endpoints to configure client and tenant rate limiters for multi-tenancy feature.
61+
62+
- [#14794](https://github.com/emqx/emqx/pull/14794) Add the `payload_limit` parameter to the HTTP API interface for the Log Trace.
63+
Previously, the payload print would be truncated if its size exceeded 1024 bytes.
64+
Now, this limit is configurable.
65+
66+
- [#14766](https://github.com/emqx/emqx/pull/14766) Added safeguards to `emqx ctl cluster leave` command to prevent nodes responsible for Durable Storage data replication from leaving the cluster.
67+
68+
- [#14642](https://github.com/emqx/emqx/pull/14642) Added new Connector and Action types that allow logging events to local disk in JSON lines format.
69+
70+
- [#14629](https://github.com/emqx/emqx/pull/14629) Added support for [JSON Lines](https://jsonlines.org/) container types for S3 and Azure Blob Storage Actions.
71+
72+
- [#14590](https://github.com/emqx/emqx/pull/14590) Limit the maximum uptime for a node running under evaluation license to one month. After reaching the uptime limit, the node will reject new connections.
73+
74+
- [#14584](https://github.com/emqx/emqx/pull/14584) Support authenticator app for dashboard 2FA (2-factor authentication) login.
75+
76+
- [#14261](https://github.com/emqx/emqx/pull/14261) Introduced enhancements to facilitate multi-tenancy in MQTT client management.
77+
78+
New features:
79+
80+
- **Multi-Tenant Client Recognition**: MQTT clients with a `tns` attribute are now treated as multi-tenant clients.
81+
- **Namespace Indexing**: Added the MQTT client namespace (`tns`) to the client ID index to support multi-tenancy scenarios.
82+
83+
APIs:
84+
85+
- **List Namespaces**: Introduced a paginated API to retrieve namespaces:
86+
Endpoint: `/api/v5/mt/ns_list`
87+
- **List Client Sessions in a Namespace**: Added a paginated API to fetch client sessions within a specific namespace:
88+
Endpoint: `/api/v5/mt/:ns/client_list`
89+
- **Count Live Client Sessions in a Namespace**: New API to retrieve the number of active client sessions in a namespace:
90+
Endpoint: `/api/v5/mt/:ns/client_count`
91+
92+
Configuration:
93+
94+
- **Session Limit Per Namespace**: Added the `multi_tenancy.default_max_sessions` configuration to enforce limits on the number of client sessions allowed per namespace.
95+
96+
Notes:
97+
98+
- Admin multi-tenancy (admin user groups) is not included in this pull request and remains under development.
99+
100+
- [#14118](https://github.com/emqx/emqx/pull/14118) Support `ON DUPLICATE KEY UPDATE` in mysql actions.
101+
102+
Now the user can specify `ON DUPLICATE KEY UPDATE` in the `mysql` action, e.g.:
103+
104+
```
105+
INSERT INTO t1 (a,b,c) VALUES (${id},${clientid},${qos}) ON DUPLICATE KEY UPDATE a=a;
106+
```
107+
108+
Note that the `ON DUPLICATE KEY UPDATE` clause doesn't support placeholders (`${var}`).
109+
110+
- [#14040](https://github.com/emqx/emqx/pull/14040) Added timeouts to the internal RPC calls during node rebalance. Previously, the rebalance process could hang if a node was unresponsive.
111+
112+
- [#14017](https://github.com/emqx/emqx/pull/14017) Support for parsing customized types of InfoReport data messages in the GB/T 32960 gateway
113+
11114
#### Core MQTT Functionalities
12115

13116
- [#14721](https://github.com/emqx/emqx/pull/14721) Delayed publish interval limit changed from 4294967 seconds (49.7 days) to 42949670 seconds (497 days).
@@ -166,6 +269,51 @@ Make sure to check the breaking changes and known issues before upgrading to EMQ
166269

167270
### Bug Fixes
168271

272+
- [#15087](https://github.com/emqx/emqx/pull/15087) Fixed an issue with `hocon` library in which, if one had any string one-liner field that ended in a lone backslash, the configuration file would fail to be parsed later.
273+
274+
- [#15084](https://github.com/emqx/emqx/pull/15084) Client attributes `zone` and `listener` can be used as various string function input.
275+
276+
Previously functions like `regex_match` would raise exception because `zone` and `listener` are internally atoms.
277+
278+
- [#15067](https://github.com/emqx/emqx/pull/15067) Fixed a couple of issues with Cluster Linking Route Replication.
279+
* Replication process may enter erratic reconnect loop when the Cluster Link is misconfigured on local or remote side, which will hinder replication once misconfiguration is resolved.
280+
* Replication process may crash during attempts to close non-existing MQTT client connection.
281+
* Replication boostrapping may crash if shared subscriptions are present in the routing table.
282+
283+
- [#15056](https://github.com/emqx/emqx/pull/15056) For MQTT messages whose payload is a JSON list object, it is no longer necessary to explicitly decode the payload in the `foreach` statement.
284+
285+
- [#15051](https://github.com/emqx/emqx/pull/15051) Enhance the TDEngine connector by adding parameter validation and updating the driver version to provide clearer error messages.
286+
287+
- [#15018](https://github.com/emqx/emqx/pull/15018) Fixed a bug with Exhook in which attemtping to import an invalid `exhook` configuration via the CLI would result in a crash with a `badarg` error.
288+
289+
- [#15012](https://github.com/emqx/emqx/pull/15012) Fixed an issue where the `publish_confirmation_timeout` parameter of RabbitMQ Actions were being multiplied by 1000.
290+
291+
- [#14989](https://github.com/emqx/emqx/pull/14989) Reduced the number of API calls that Kinesis Connection and Action do when (re)starting and during health checks.
292+
293+
Previously, upon (re)starting the Connector, it would perform one `ListStreams` request for each worker in its connection pool. Additionally, each periodic health check would do `ListStreams` for each worker. The Action health check would do `DescribeStream` for each connection worker in the pool.
294+
295+
Now, the Connector no longer performs the initial `ListStreams` upon (re)starting. Both Connector and Action attempt to check if at least one worker has a healthy response from their respective API requests: the request is attempted by each worker serially, and the Connector or Action is considered `connected` upon the first successful response received. Thus, in the best case scenario, each Connector and each Action will do 1 API request each per health check, regardless of pool sizea. In the worst case scenario, each worker in the pool might still perform one request each, if they fail to receive a sucessful response.
296+
297+
- [#14988](https://github.com/emqx/emqx/pull/14988) Fixed an issue where schema validation or message transformation configurations could be imported before schema registry when restoring a backup, leading to validation errors.
298+
299+
- [#14977](https://github.com/emqx/emqx/pull/14977) Fix `emqx ctl conf cluster_sync status` command node display order.
300+
301+
Previously the node name for new/old config were printed in the other way around.
302+
303+
- [#14933](https://github.com/emqx/emqx/pull/14933) Resolved a rare edge case where a Durable Storage backed by DS Raft could be assigned to storage sites that had left the cluster long ago.
304+
305+
- [#14767](https://github.com/emqx/emqx/pull/14767) Kafka producer now smoothly handles Kafka topic re-creation with fewer partitions.
306+
Previously, the lost partition producers may linger behind to retry and write large amount of error logs.
307+
308+
- [#14303](https://github.com/emqx/emqx/pull/14303) Fix `scram:http` authentication.
309+
310+
- [#14121](https://github.com/emqx/emqx/pull/14121) Deprecated the `health_check_topic` configuration for Kafka Consumer Connector to avoid further confusion. This parameters was never actually used for this connector type.
311+
312+
- [#14906](https://github.com/emqx/emqx/pull/14906) Update Mria to 0.8.12.1 to eliminate occasional warnings caused by unexpected exit signals.
313+
```
314+
2025-01-10T20:00:00+00:00 [warning] clientid: C1, msg: emqx_session_mem_unknown_message, message: {'EXIT',<0.123456.0>,normal}
315+
```
316+
169317
#### Core MQTT Functionalities
170318

171319
- [#14707](https://github.com/emqx/emqx/pull/14707) Fixed an issue where, in strict_mode, PUBLISH packets with QoS 2 and the DUP flag set were incorrectly considered invalid packets.

0 commit comments

Comments
 (0)