| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| EMQX Enterprise 5.1.1-alpha.1.tar.gz | 2023-07-10 | 3.1 MB | |
| EMQX Enterprise 5.1.1-alpha.1.zip | 2023-07-10 | 4.4 MB | |
| README.md | 2023-07-10 | 12.3 kB | |
| Totals: 3 Items | 7.5 MB | 0 | |
Enhancements
-
#10667 The MongoDB connector and bridge have been refactored to a separate app to improve code structure.
-
#11115 Added info logs to indicate when buffered messages are dropped due to time-to-live (TTL) expiration.
-
#11133 Rename
deliver_ratetodelivery_ratein the configuration ofretainer. -
#11137 Refactors the dashboard listener configuration to use a nested
ssl_optionsfield for ssl settings. -
#11138 - Change k8s
api_serverdefault value fromhttp://127.0.0.1:9091tohttps://kubernetes.default.svc:443 emqx_ctl conf show clusterno longer displays irrelevant configuration items, such as whendiscovery_strategy=static, it will not display configuration information related toetcd/k8s/dns.-
Remove
zones(deprecated config key) fromemqx_ctl conf show_keys -
#11165 Remove
/configs/limiterapi fromswagger.json, only the api documentation was removed, and the/configs/limiterapi functionalities have not been changed. -
#11166 Added 3 random SQL functions to the rule engine.
- random(): Generates a random number between 0 and 1 (0.0 =< X < 1.0).
- uuid_v4(): Generates a random UUID (version 4) string.
-
uuid_v4_no_hyphen(): Generates a random UUID (version 4) string without hyphens.
-
#11180 Adding a new configuration API
/configs(GET/PUT) that supports to reload the hocon format configuration file. -
#11226 Unify the listener switch to
enable, while being compatible with the previousenabled. -
#10203 Add HStreamDB bridge support, adapted to the HStreamDB
v0.15.0. -
#11079 Add support for custom headers in messages for Kafka producer bridge.
-
#11090 Implemented GCP PubSub Consumer data integration bridge.
-
#11132 Add support for MQTT action authorization based on QoS level and Retain flag values. Now, EMQX can check by ACL whether a client has permission to publish/subscribe using a specified QoS level and to use retained messages.
-
#11169 Two new built-in functions
sparkplug_decodeandsparkplug_encodehave been added to the rule engine SQL like language. These functions are used to decode and encode Sparkplug B messages. The functions are used as follows:
Decode a Sparkplug B message:
```sql select sparkplug_decode(payload) as decoded from t
```
Encode a Sparkplug B message:
sql
select
sparkplug_encode(json_decode(payload)) as encoded
from t
One can also specify a Sparkplug B message type by specifying it as the second argument to the sparkplug_decode and sparkplug_encode functions. The default is Payload:
sql
select
sparkplug_encode(sparkplug_decode(payload, 'Payload'), 'Payload') as encoded
from t
- #11207 Update the dependent versions of multiple data bridges to enhance security and ensure that sensitive data will not be leaked. Including:
- TDEngine
- MongoDB
- MySQL
-
Clickhouse
-
#11020 Upgraded emqtt dependency to avoid sensitive data leakage in the debug log.
-
#11135 Improve time offset parser in rules engine and return uniform error codes.
Bug Fixes
-
#11004 Do not allow wildcards for destination topic in rewrite rules.
-
#11026 Addressed an inconsistency in the usage of 'div' and 'mod' operations within the rule engine. Previously, the 'div' operation was only usable as an infix operation and 'mod' could only be applied through a function call. With this change, both 'div' and 'mod' can be used via function call syntax and infix syntax.
-
#11037 When starting an HTTP connector EMQX now returns a descriptive error in case the system is unable to connect to the remote target system.
-
#11039 Fixed database number validation for Redis connector. Previously negative numbers were accepted as valid database numbers.
-
#11074 Fix to adhere to Protocol spec MQTT-5.0 [MQTT-3.8.3-4].
-
#11077 Fixes crash when updating binding with a non-integer port.
-
#11094 Fixed an issue where connection errors in Kafka Producer would not be reported when reconnecting the bridge.
-
#11103 Updated
erlclouddependency. -
#11106 Added a validation for the maximum number of pool workers of a bridge.
Now the maximum amount is 1024 to avoid large memory consumption from an unreasonable number of workers.
-
#11118 Ensure that validation errors in REST API responses are slightly less confusing. Now, if there are out-of-range errors, they will be presented as
{"value": 42, "reason": {"expected": "1..10"}, ...}, replacing the previous usage ofexpected_typewithexpected. -
#11126 Rule metrics for async mode bridges will set failure counters correctly now.
-
#11134 Fix the value of the uppercase
authorizationheader is not obfuscated. -
#11139 The Redis connector has been refactored to its own Erlang application to improve the code structure.
-
#11145 Add several fixes and improvements in Ekka and Mria.
Ekka: - improve cluster discovery log messages to consistently describe actual events Ekka PR - remove deprecated cluster auto-clean configuration parameter (it has been moved to Mria) Ekka PR
Mria:
- ping only running replicant nodes. Previously, mria_lb was trying to ping both stopped and running
replicant nodes, which might result in timeout errors.
Mria PR
- use null_copies storage when copying $mria_rlog_sync table.
This fix has no effect on EMQX for now, as $mria_rlog_sync is only used in mria:sync_transaction/2,3,4,
which is not utilized by EMQX.
Mria PR
-
#11148 Fix when a node has left the cluster, other nodes still try to synchronize configuration update operations to it.
-
#11150 Wait for Mria table when emqx_psk app is being started to ensure that PSK data is synced to replicant nodes even if they don't have init PSK file.
-
#11151 The MySQL connector has been refactored to its own Erlang application to improve the code structure.
-
#11158 Wait for Mria table when the mnesia backend of retainer starts to avoid a possible error of the retainer when joining a cluster.
-
#11162 Fixed an issue in webhook bridge where, in async query mode, HTTP status codes like 4XX and 5XX would be treated as successes in the bridge metrics.
-
#11164 Reintroduced support for nested (i.e.:
${payload.a.b.c}) placeholders for extracting data from rule action messages without the need for callingjson_decode(payload)first. -
#11172 Fix the
payloadwill be duplicated in the below situations: - Use a
foreachsentence without theassub-expression and select all fields(use the*or omitted thedosub-expression)
For example:
FOREACH payload.sensors FROM "t/#"
- Select the payload field and all fields
For example:
SELECT payload.sensors, * FROM "t/#"
- #11174 Fixed the encoding of the
serverkey coming from an ingress MQTT bridge.
Before the fix, it was being encoded as a list of integers corresponding to the ASCII characters of the server string.
-
#11184 Config value for
max_packet_sizehas a max value of 256MB defined by protocol. This is now enforced and any configuration with a value greater than that will break. -
#11192 Fix produces valid HOCON file when atom type is used. Remove unnecessary
"from HOCON file. -
#11195 Avoid to create duplicated subscription by HTTP API or client in Stomp gateway
-
#11206 Make the username and password params of CoAP client to optional in connection mode.
-
#11208 Fix the issue of abnormal data statistics for LwM2M client.
-
#11211 Consistently return
404forDELETEoperations on non-existent resources. -
#11214 Fix a bug where node configuration may fail to synchronize correctly when joining the cluster.
-
#11229 Fixed an issue preventing plugins from starting/stopping after changing configuration via
emqx ctl conf load. -
#11237 The
headersdefault value in /prometheus API should be a map instead of a list. -
#10645 Changes health check for Oracle Database, PostgreSql, MySql and Kafka Producer data bridges to ensure target table/topic exists.
-
#11090 Fixed a configuration that prevented the pipelining option from being correctly set for GCP PubSub Producer bridge.
-
#11107 Now we return the health check failure reason when probing a MongoDB bridge.
-
#11139 The Redis bridge has been refactored to its own Erlang application to improve the code structure and to make it easier to maintain.
-
#11151 The MySQL bridge has been refactored to its own Erlang application to improve the code structure and to make it easier to maintain.
-
#11163 Fixed
topology.pool_size = 1and hid such option from users for MondoDB bridges to avoid confusion. -
#11175 Now when using a nonexistent hostname for connecting to MySQL will result in a 400 error rather than 503 in the HTTP API.
-
#11198 Fix global rebalance status evaluation on replicant nodes. Previously,
/api/v5/load_rebalance/global_statusAPI method could return incomplete results if handled by a replicant node. -
#11223 In InfluxDB bridging, if intend to write using the float data type but the placeholder represents the original value as an integer without a decimal point during serialization, it will result in the failure of Influx Line Protocol serialization and the inability to write to the InfluxDB bridge.
See also: InfluxDB v2.7 Line-Protocol
- #11225 Fix the
usernameof PostgreSQL/Timescale/MatrixDB bridges could be empty