chore: split change logs
This commit is contained in:
parent
fa5d756ae6
commit
31c0d73cd5
205
CHANGES-5.0.md
205
CHANGES-5.0.md
|
@ -1,205 +0,0 @@
|
||||||
# 5.0.9
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Add `cert_common_name` and `cert_subject` placeholder support for authz_http and authz_mongo.[#8973](https://github.com/emqx/emqx/pull/8973)
|
|
||||||
* Use milliseconds internally in emqx_delayed to store the publish time, improving precision.[#9060](https://github.com/emqx/emqx/pull/9060)
|
|
||||||
* More rigorous checking of flapping to improve stability of the system. [#9136](https://github.com/emqx/emqx/pull/9136)
|
|
||||||
* No message(s) echo for the message publish APIs [#9155](https://github.com/emqx/emqx/pull/9155)
|
|
||||||
Prior to this fix, the message publish APIs (`api/v5/publish` and `api/v5/publish/bulk`) echos the message back to the client in HTTP body.
|
|
||||||
This change fixed it to only send back the message ID.
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Check ACLs for last will testament topic before publishing the message. [#8930](https://github.com/emqx/emqx/pull/8930)
|
|
||||||
* Fix GET /listeners API crash When some nodes still in initial configuration. [#9002](https://github.com/emqx/emqx/pull/9002)
|
|
||||||
* Fix empty variable interpolation in authentication and authorization. Placeholders for undefined variables are rendered now as empty strings and do not cause errors anymore. [#8963](https://github.com/emqx/emqx/pull/8963)
|
|
||||||
* Fix the latency statistics error of the slow subscription module when `stats_type` is `internal` or `response`. [#8986](https://github.com/emqx/emqx/pull/8986)
|
|
||||||
* Redispatch shared subscription messages. [#9104](https://github.com/emqx/emqx/pull/9104)
|
|
||||||
|
|
||||||
# 5.0.8
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Fix exhook `client.authorize` never being execauted. [#8780](https://github.com/emqx/emqx/pull/8780)
|
|
||||||
* Fix JWT plugin don't support non-integer timestamp claims. [#8867](https://github.com/emqx/emqx/pull/8867)
|
|
||||||
* Avoid publishing will message when client fails to auhtenticate. [#8887](https://github.com/emqx/emqx/pull/8887)
|
|
||||||
* Speed up dispatching of shared subscription messages in a cluster [#8893](https://github.com/emqx/emqx/pull/8893)
|
|
||||||
* Fix the extra / prefix when CoAP gateway parsing client topics. [#8658](https://github.com/emqx/emqx/pull/8658)
|
|
||||||
* Speed up updating the configuration, When some nodes in the cluster are down. [#8857](https://github.com/emqx/emqx/pull/8857)
|
|
||||||
* Fix delayed publish inaccurate caused by os time change. [#8926](https://github.com/emqx/emqx/pull/8926)
|
|
||||||
* Fix that EMQX can't start when the retainer is disabled [#8911](https://github.com/emqx/emqx/pull/8911)
|
|
||||||
* Fix that redis authn will deny the unknown users [#8934](https://github.com/emqx/emqx/pull/8934)
|
|
||||||
* Fix ExProto UDP client keepalive checking error.
|
|
||||||
This causes the clients to not expire as long as a new UDP packet arrives [#8866](https://github.com/emqx/emqx/pull/8866)
|
|
||||||
* Fix that MQTT Bridge message payload could be empty string. [#8949](https://github.com/emqx/emqx/pull/8949)
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Print a warning message when boot with the default (insecure) Erlang cookie. [#8905](https://github.com/emqx/emqx/pull/8905)
|
|
||||||
* Change the `/gateway` API path to plural form. [#8823](https://github.com/emqx/emqx/pull/8823)
|
|
||||||
* Don't allow updating config items when they already exist in `local-override.conf`. [#8851](https://github.com/emqx/emqx/pull/8851)
|
|
||||||
* Remove `node.etc_dir` from emqx.conf, because it is never used.
|
|
||||||
Also allow user to customize the logging directory [#8892](https://github.com/emqx/emqx/pull/8892)
|
|
||||||
* Added a new API `POST /listeners` for creating listener. [#8876](https://github.com/emqx/emqx/pull/8876)
|
|
||||||
* Close ExProto client process immediately if it's keepalive timeouted. [#8866](https://github.com/emqx/emqx/pull/8866)
|
|
||||||
* Upgrade grpc-erl driver to 0.6.7 to support batch operation in sending stream. [#8866](https://github.com/emqx/emqx/pull/8866)
|
|
||||||
|
|
||||||
# 5.0.7
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Remove `will_msg` (not used) field from the client API. [#8721](https://github.com/emqx/emqx/pull/8721)
|
|
||||||
* Fix `$queue` topic name error in management API return. [#8728](https://github.com/emqx/emqx/pull/8728)
|
|
||||||
* Fix race condition which may cause `client.connected` and `client.disconnected` out of order. [#8625](https://github.com/emqx/emqx/pull/8625)
|
|
||||||
* Fix quic listener default idle timeout's type. [#8826](https://github.com/emqx/emqx/pull/8826)
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Do not auto-populate default SSL cipher suites, so that the configs are less bloated. [#8769](https://github.com/emqx/emqx/pull/8769)
|
|
||||||
|
|
||||||
# 5.0.6
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Upgrade Dashboard version to fix an issue where the node status was not displayed correctly. [#8771](https://github.com/emqx/emqx/pull/8771)
|
|
||||||
|
|
||||||
# 5.0.5
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Allow changing the license type from key to file (and vice-versa). [#8598](https://github.com/emqx/emqx/pull/8598)
|
|
||||||
* Add back http connector config keys `max_retries` `retry_interval` as deprecated fields [#8672](https://github.com/emqx/emqx/issues/8672)
|
|
||||||
This caused upgrade failure in 5.0.4, because it would fail to boot on configs created from older version.
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Add `bootstrap_users_file` configuration to add default Dashboard username list, which is only added when EMQX is first started.
|
|
||||||
* The license is now copied to all nodes in the cluster when it's reloaded. [#8598](https://github.com/emqx/emqx/pull/8598)
|
|
||||||
* Added a HTTP API to manage licenses. [#8610](https://github.com/emqx/emqx/pull/8610)
|
|
||||||
* Updated `/nodes` API node_status from `Running/Stopped` to `running/stopped`. [#8642](https://github.com/emqx/emqx/pull/8642)
|
|
||||||
* Improve handling of placeholder interpolation errors [#8635](https://github.com/emqx/emqx/pull/8635)
|
|
||||||
* Better logging on unknown object IDs. [#8670](https://github.com/emqx/emqx/pull/8670)
|
|
||||||
* The bind option support `:1883` style. [#8758](https://github.com/emqx/emqx/pull/8758)
|
|
||||||
|
|
||||||
# 5.0.4
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* The `data/configs/cluster-override.conf` is cleared to 0KB if `hocon_pp:do/2` failed [commits/71f64251](https://github.com/emqx/emqx/pull/8443/commits/71f642518a683cc91a32fd542aafaac6ef915720)
|
|
||||||
* Improve the health_check for webhooks.
|
|
||||||
Prior to this change, the webhook only checks the connectivity of the TCP port using `gen_tcp:connect/2`, so
|
|
||||||
if it's a HTTPs server, we didn't check if TLS handshake was successful.
|
|
||||||
[commits/6b45d2ea](https://github.com/emqx/emqx/commit/6b45d2ea9fde6d3b4a5b007f7a8c5a1c573d141e)
|
|
||||||
* The `created_at` field of rules is missing after emqx restarts. [commits/5fc09e6b](https://github.com/emqx/emqx/commit/5fc09e6b950c340243d7be627a0ce1700691221c)
|
|
||||||
* The rule engine's jq function now works even when the path to the EMQX install dir contains spaces [jq#35](https://github.com/emqx/jq/pull/35) [#8455](https://github.com/emqx/emqx/pull/8455)
|
|
||||||
* Avoid applying any ACL checks on superusers [#8452](https://github.com/emqx/emqx/pull/8452)
|
|
||||||
* Fix statistics related system topic name error
|
|
||||||
* Fix AuthN JWKS SSL schema. Using schema in `emqx_schema`. [#8458](https://github.com/emqx/emqx/pull/8458)
|
|
||||||
* `sentinel` field should be required when AuthN/AuthZ Redis using sentinel mode. [#8458](https://github.com/emqx/emqx/pull/8458)
|
|
||||||
* Fix bad swagger format. [#8517](https://github.com/emqx/emqx/pull/8517)
|
|
||||||
* Fix `chars_limit` is not working when `formatter` is `json`. [#8518](http://github.com/emqx/emqx/pull/8518)
|
|
||||||
* Ensuring that exhook dispatches the client events are sequential. [#8530](https://github.com/emqx/emqx/pull/8530)
|
|
||||||
* Avoid using RocksDB backend for persistent sessions when such backend is unavailable. [#8528](https://github.com/emqx/emqx/pull/8528)
|
|
||||||
* Fix AuthN `cert_subject` and `cert_common_name` placeholder rendering failure. [#8531](https://github.com/emqx/emqx/pull/8531)
|
|
||||||
* Support listen on an IPv6 address, e.g: [::1]:1883 or ::1:1883. [#8547](https://github.com/emqx/emqx/pull/8547)
|
|
||||||
* GET '/rules' support for pagination and fuzzy search. [#8472](https://github.com/emqx/emqx/pull/8472)
|
|
||||||
**‼️ Note** : The previous API only returns array: `[RuleObj1,RuleObj2]`, after updating, it will become
|
|
||||||
`{"data": [RuleObj1,RuleObj2], "meta":{"count":2, "limit":100, "page":1}`,
|
|
||||||
which will carry the paging meta information.
|
|
||||||
* Fix the issue that webhook leaks TCP connections. [ehttpc#34](https://github.com/emqx/ehttpc/pull/34), [#8580](https://github.com/emqx/emqx/pull/8580)
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Improve the dashboard listener startup log, the listener name is no longer spliced with port information,
|
|
||||||
and the colon(:) is no longer displayed when IP is not specified. [#8480](https://github.com/emqx/emqx/pull/8480)
|
|
||||||
* Remove `/configs/listeners` API, use `/listeners/` instead. [#8485](https://github.com/emqx/emqx/pull/8485)
|
|
||||||
* Optimize performance of builtin database operations in processes with long message queue [#8439](https://github.com/emqx/emqx/pull/8439)
|
|
||||||
* Improve authentication tracing. [#8554](https://github.com/emqx/emqx/pull/8554)
|
|
||||||
* Standardize the '/listeners' and `/gateway/<name>/listeners` API fields.
|
|
||||||
It will introduce some incompatible updates, see [#8571](https://github.com/emqx/emqx/pull/8571)
|
|
||||||
* Add option to perform GC on connection process after TLS/SSL handshake is performed. [#8637](https://github.com/emqx/emqx/pull/8637)
|
|
||||||
|
|
||||||
# 5.0.3
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Websocket listener failed to read headers `X-Forwarded-For` and `X-Forwarded-Port` [#8415](https://github.com/emqx/emqx/pull/8415)
|
|
||||||
* Deleted `cluster_singleton` from MQTT bridge config document. This config is no longer applicable in 5.0 [#8407](https://github.com/emqx/emqx/pull/8407)
|
|
||||||
* Fix `emqx/emqx:latest` docker image publish to use the Erlang flavor, but not Elixir flavor [#8414](https://github.com/emqx/emqx/pull/8414)
|
|
||||||
* Changed the `exp` field in JWT auth to be optional rather than required to fix backwards compatability with 4.X releases. [#8425](https://github.com/emqx/emqx/pull/8425)
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Improve the speed of dashboard's HTTP API routing rule generation, which sometimes causes timeout [#8438](https://github.com/emqx/emqx/pull/8438)
|
|
||||||
|
|
||||||
# 5.0.2
|
|
||||||
|
|
||||||
Announcement: EMQX team has decided to stop supporting relup for opensource edition.
|
|
||||||
Going forward, it will be an enterprise-only feature.
|
|
||||||
|
|
||||||
Main reason: relup requires carefully crafted upgrade instructions from ALL previous versions.
|
|
||||||
|
|
||||||
For example, 4.3 is now at 4.3.16, we have `4.3.0->4.3.16`, `4.3.1->4.3.16`, ... 16 such upgrade paths in total to maintain.
|
|
||||||
This had been the biggest obstacle for EMQX team to act agile enough in delivering enhancements and fixes.
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* Fixed a typo in `bin/emqx` which affects MacOs release when trying to enable Erlang distribution over TLS [#8398](https://github.com/emqx/emqx/pull/8398)
|
|
||||||
* Restricted shell was accidentally disabled in 5.0.1, it has been added back. [#8396](https://github.com/emqx/emqx/pull/8396)
|
|
||||||
|
|
||||||
# 5.0.1
|
|
||||||
|
|
||||||
5.0.1 is built on [Erlang/OTP 24.2.1-1](https://github.com/emqx/otp/tree/OTP-24.2.1-1). Same as 5.0.0.
|
|
||||||
|
|
||||||
5.0.0 (like 4.4.x) had Erlang/OTP version number in the package name.
|
|
||||||
This is because we wanted to release different flavor packages (on different Elixir/Erlang/OTP platforms).
|
|
||||||
|
|
||||||
However the long package names also causes confusion, as users may not know which to choose if there were more than
|
|
||||||
one presented at the same time.
|
|
||||||
|
|
||||||
Going forward, (starting from 5.0.1), packages will be released in both default (short) and flavored (long) package names.
|
|
||||||
|
|
||||||
For example: `emqx-5.0.1-otp24.2.1-1-ubuntu20.04-amd64.tar.gz`,
|
|
||||||
but only the default one is presented to the users: `emqx-5.0.1-ubuntu20.04-amd64.tar.gz`.
|
|
||||||
|
|
||||||
In case anyone wants to try a different flavor package, it can be downlowded from the public s3 bucket,
|
|
||||||
for example:
|
|
||||||
https://s3.us-west-2.amazonaws.com/packages.emqx/emqx-ce/v5.0.1/emqx-5.0.1-otp24.2.1-1-ubuntu20.04-arm64.tar.gz
|
|
||||||
|
|
||||||
Exceptions:
|
|
||||||
|
|
||||||
* Windows package is always presented with short name (currently on Erlang/OTP 24.2.1).
|
|
||||||
* Elixir package name is flavored with both Elixir and Erlang/OTP version numbers,
|
|
||||||
for example: `emqx-5.0.1-elixir1.13.4-otp24.2.1-1-ubuntu20.04-amd64.tar.gz`
|
|
||||||
|
|
||||||
## Enhancements
|
|
||||||
|
|
||||||
* Removed management API auth for prometheus scraping endpoint /api/v5/prometheus/stats [#8299](https://github.com/emqx/emqx/pull/8299)
|
|
||||||
* Added more TCP options for exhook (gRPC) connections. [#8317](https://github.com/emqx/emqx/pull/8317)
|
|
||||||
* HTTP Servers used for authentication and authorization will now indicate the result via the response body. [#8374](https://github.com/emqx/emqx/pull/8374) [#8377](https://github.com/emqx/emqx/pull/8377)
|
|
||||||
* Bulk subscribe/unsubscribe APIs [#8356](https://github.com/emqx/emqx/pull/8356)
|
|
||||||
* Added exclusive subscription [#8315](https://github.com/emqx/emqx/pull/8315)
|
|
||||||
* Provide authentication counter metrics [#8352](https://github.com/emqx/emqx/pull/8352) [#8375](https://github.com/emqx/emqx/pull/8375)
|
|
||||||
* Do not allow admin user self-deletion [#8286](https://github.com/emqx/emqx/pull/8286)
|
|
||||||
* After restart, ensure to copy `cluster-override.conf` from the clustered node which has the greatest `tnxid`. [#8333](https://github.com/emqx/emqx/pull/8333)
|
|
||||||
|
|
||||||
## Bug fixes
|
|
||||||
|
|
||||||
* A bug fix ported from 4.x: allow deleting subscriptions from `client.subscribe` hookpoint callback result. [#8304](https://github.com/emqx/emqx/pull/8304) [#8347](https://github.com/emqx/emqx/pull/8377)
|
|
||||||
* Fixed Erlang distribution over TLS [#8309](https://github.com/emqx/emqx/pull/8309)
|
|
||||||
* Made possible to override authentication configs from environment variables [#8323](https://github.com/emqx/emqx/pull/8309)
|
|
||||||
* Made authentication passwords in Mnesia database backward compatible to 4.x, so we can support data migration better. [#8351](https://github.com/emqx/emqx/pull/8351)
|
|
||||||
* Fix plugins upload for rpm/deb installations [#8379](https://github.com/emqx/emqx/pull/8379)
|
|
||||||
* Sync data/authz/acl.conf and data/certs from clustered nodes after a new node joins the cluster [#8369](https://github.com/emqx/emqx/pull/8369)
|
|
||||||
* Ensure auto-retry of failed resources [#8371](https://github.com/emqx/emqx/pull/8371)
|
|
||||||
* Fix the issue that the count of `packets.connack.auth_error` is inaccurate when the client uses a protocol version below MQTT v5.0 to access [#8178](https://github.com/emqx/emqx/pull/8178)
|
|
||||||
|
|
||||||
## Others
|
|
||||||
|
|
||||||
* Rate limiter interface is hidden so far, it's subject to a UX redesign.
|
|
||||||
* QUIC library upgraded to 0.0.14.
|
|
||||||
* Now the default packages will be released withot otp version number in the package name.
|
|
||||||
* Renamed config exmpale file name in `etc` dir.
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
# v5.0.1
|
||||||
|
|
||||||
|
5.0.1 is built on [Erlang/OTP 24.2.1-1](https://github.com/emqx/otp/tree/OTP-24.2.1-1). Same as 5.0.0.
|
||||||
|
|
||||||
|
5.0.0 (like 4.4.x) had Erlang/OTP version number in the package name.
|
||||||
|
This is because we wanted to release different flavor packages (on different Elixir/Erlang/OTP platforms).
|
||||||
|
|
||||||
|
However the long package names also causes confusion, as users may not know which to choose if there were more than
|
||||||
|
one presented at the same time.
|
||||||
|
|
||||||
|
Going forward, (starting from 5.0.1), packages will be released in both default (short) and flavored (long) package names.
|
||||||
|
|
||||||
|
For example: `emqx-5.0.1-otp24.2.1-1-ubuntu20.04-amd64.tar.gz`,
|
||||||
|
but only the default one is presented to the users: `emqx-5.0.1-ubuntu20.04-amd64.tar.gz`.
|
||||||
|
|
||||||
|
In case anyone wants to try a different flavor package, it can be downlowded from the public s3 bucket,
|
||||||
|
for example:
|
||||||
|
https://s3.us-west-2.amazonaws.com/packages.emqx/emqx-ce/v5.0.1/emqx-5.0.1-otp24.2.1-1-ubuntu20.04-arm64.tar.gz
|
||||||
|
|
||||||
|
Exceptions:
|
||||||
|
|
||||||
|
* Windows package is always presented with short name (currently on Erlang/OTP 24.2.1).
|
||||||
|
* Elixir package name is flavored with both Elixir and Erlang/OTP version numbers,
|
||||||
|
for example: `emqx-5.0.1-elixir1.13.4-otp24.2.1-1-ubuntu20.04-amd64.tar.gz`
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Removed management API auth for prometheus scraping endpoint /api/v5/prometheus/stats [#8299](https://github.com/emqx/emqx/pull/8299)
|
||||||
|
* Added more TCP options for exhook (gRPC) connections. [#8317](https://github.com/emqx/emqx/pull/8317)
|
||||||
|
* HTTP Servers used for authentication and authorization will now indicate the result via the response body. [#8374](https://github.com/emqx/emqx/pull/8374) [#8377](https://github.com/emqx/emqx/pull/8377)
|
||||||
|
* Bulk subscribe/unsubscribe APIs [#8356](https://github.com/emqx/emqx/pull/8356)
|
||||||
|
* Added exclusive subscription [#8315](https://github.com/emqx/emqx/pull/8315)
|
||||||
|
* Provide authentication counter metrics [#8352](https://github.com/emqx/emqx/pull/8352) [#8375](https://github.com/emqx/emqx/pull/8375)
|
||||||
|
* Do not allow admin user self-deletion [#8286](https://github.com/emqx/emqx/pull/8286)
|
||||||
|
* After restart, ensure to copy `cluster-override.conf` from the clustered node which has the greatest `tnxid`. [#8333](https://github.com/emqx/emqx/pull/8333)
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* A bug fix ported from 4.x: allow deleting subscriptions from `client.subscribe` hookpoint callback result. [#8304](https://github.com/emqx/emqx/pull/8304) [#8347](https://github.com/emqx/emqx/pull/8377)
|
||||||
|
* Fixed Erlang distribution over TLS [#8309](https://github.com/emqx/emqx/pull/8309)
|
||||||
|
* Made possible to override authentication configs from environment variables [#8323](https://github.com/emqx/emqx/pull/8309)
|
||||||
|
* Made authentication passwords in Mnesia database backward compatible to 4.x, so we can support data migration better. [#8351](https://github.com/emqx/emqx/pull/8351)
|
||||||
|
* Fix plugins upload for rpm/deb installations [#8379](https://github.com/emqx/emqx/pull/8379)
|
||||||
|
* Sync data/authz/acl.conf and data/certs from clustered nodes after a new node joins the cluster [#8369](https://github.com/emqx/emqx/pull/8369)
|
||||||
|
* Ensure auto-retry of failed resources [#8371](https://github.com/emqx/emqx/pull/8371)
|
||||||
|
* Fix the issue that the count of `packets.connack.auth_error` is inaccurate when the client uses a protocol version below MQTT v5.0 to access [#8178](https://github.com/emqx/emqx/pull/8178)
|
||||||
|
|
||||||
|
## Others
|
||||||
|
|
||||||
|
* Rate limiter interface is hidden so far, it's subject to a UX redesign.
|
||||||
|
* QUIC library upgraded to 0.0.14.
|
||||||
|
* Now the default packages will be released withot otp version number in the package name.
|
||||||
|
* Renamed config exmpale file name in `etc` dir.
|
|
@ -0,0 +1,18 @@
|
||||||
|
# v5.0.2
|
||||||
|
|
||||||
|
Announcement: EMQX team has decided to stop supporting relup for opensource edition.
|
||||||
|
Going forward, it will be an enterprise-only feature.
|
||||||
|
|
||||||
|
Main reason: relup requires carefully crafted upgrade instructions from ALL previous versions.
|
||||||
|
|
||||||
|
For example, 4.3 is now at 4.3.16, we have `4.3.0->4.3.16`, `4.3.1->4.3.16`, ... 16 such upgrade paths in total to maintain.
|
||||||
|
This had been the biggest obstacle for EMQX team to act agile enough in delivering enhancements and fixes.
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Fixed a typo in `bin/emqx` which affects MacOs release when trying to enable Erlang distribution over TLS [#8398](https://github.com/emqx/emqx/pull/8398)
|
||||||
|
* Restricted shell was accidentally disabled in 5.0.1, it has been added back. [#8396](https://github.com/emqx/emqx/pull/8396)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# v5.0.3
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Websocket listener failed to read headers `X-Forwarded-For` and `X-Forwarded-Port` [#8415](https://github.com/emqx/emqx/pull/8415)
|
||||||
|
* Deleted `cluster_singleton` from MQTT bridge config document. This config is no longer applicable in 5.0 [#8407](https://github.com/emqx/emqx/pull/8407)
|
||||||
|
* Fix `emqx/emqx:latest` docker image publish to use the Erlang flavor, but not Elixir flavor [#8414](https://github.com/emqx/emqx/pull/8414)
|
||||||
|
* Changed the `exp` field in JWT auth to be optional rather than required to fix backwards compatability with 4.X releases. [#8425](https://github.com/emqx/emqx/pull/8425)
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Improve the speed of dashboard's HTTP API routing rule generation, which sometimes causes timeout [#8438](https://github.com/emqx/emqx/pull/8438)
|
|
@ -0,0 +1,37 @@
|
||||||
|
# v5.0.4
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Improve the dashboard listener startup log, the listener name is no longer spliced with port information,
|
||||||
|
and the colon(:) is no longer displayed when IP is not specified. [#8480](https://github.com/emqx/emqx/pull/8480)
|
||||||
|
* Remove `/configs/listeners` API, use `/listeners/` instead. [#8485](https://github.com/emqx/emqx/pull/8485)
|
||||||
|
* Optimize performance of builtin database operations in processes with long message queue [#8439](https://github.com/emqx/emqx/pull/8439)
|
||||||
|
* Improve authentication tracing. [#8554](https://github.com/emqx/emqx/pull/8554)
|
||||||
|
* Standardize the '/listeners' and `/gateway/<name>/listeners` API fields.
|
||||||
|
It will introduce some incompatible updates, see [#8571](https://github.com/emqx/emqx/pull/8571)
|
||||||
|
* Add option to perform GC on connection process after TLS/SSL handshake is performed. [#8637](https://github.com/emqx/emqx/pull/8637)
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* The `data/configs/cluster-override.conf` is cleared to 0KB if `hocon_pp:do/2` failed [commits/71f64251](https://github.com/emqx/emqx/pull/8443/commits/71f642518a683cc91a32fd542aafaac6ef915720)
|
||||||
|
* Improve the health_check for webhooks.
|
||||||
|
Prior to this change, the webhook only checks the connectivity of the TCP port using `gen_tcp:connect/2`, so
|
||||||
|
if it's a HTTPs server, we didn't check if TLS handshake was successful.
|
||||||
|
[commits/6b45d2ea](https://github.com/emqx/emqx/commit/6b45d2ea9fde6d3b4a5b007f7a8c5a1c573d141e)
|
||||||
|
* The `created_at` field of rules is missing after emqx restarts. [commits/5fc09e6b](https://github.com/emqx/emqx/commit/5fc09e6b950c340243d7be627a0ce1700691221c)
|
||||||
|
* The rule engine's jq function now works even when the path to the EMQX install dir contains spaces [jq#35](https://github.com/emqx/jq/pull/35) [#8455](https://github.com/emqx/emqx/pull/8455)
|
||||||
|
* Avoid applying any ACL checks on superusers [#8452](https://github.com/emqx/emqx/pull/8452)
|
||||||
|
* Fix statistics related system topic name error
|
||||||
|
* Fix AuthN JWKS SSL schema. Using schema in `emqx_schema`. [#8458](https://github.com/emqx/emqx/pull/8458)
|
||||||
|
* `sentinel` field should be required when AuthN/AuthZ Redis using sentinel mode. [#8458](https://github.com/emqx/emqx/pull/8458)
|
||||||
|
* Fix bad swagger format. [#8517](https://github.com/emqx/emqx/pull/8517)
|
||||||
|
* Fix `chars_limit` is not working when `formatter` is `json`. [#8518](http://github.com/emqx/emqx/pull/8518)
|
||||||
|
* Ensuring that exhook dispatches the client events are sequential. [#8530](https://github.com/emqx/emqx/pull/8530)
|
||||||
|
* Avoid using RocksDB backend for persistent sessions when such backend is unavailable. [#8528](https://github.com/emqx/emqx/pull/8528)
|
||||||
|
* Fix AuthN `cert_subject` and `cert_common_name` placeholder rendering failure. [#8531](https://github.com/emqx/emqx/pull/8531)
|
||||||
|
* Support listen on an IPv6 address, e.g: [::1]:1883 or ::1:1883. [#8547](https://github.com/emqx/emqx/pull/8547)
|
||||||
|
* GET '/rules' support for pagination and fuzzy search. [#8472](https://github.com/emqx/emqx/pull/8472)
|
||||||
|
**‼️ Note** : The previous API only returns array: `[RuleObj1,RuleObj2]`, after updating, it will become
|
||||||
|
`{"data": [RuleObj1,RuleObj2], "meta":{"count":2, "limit":100, "page":1}`,
|
||||||
|
which will carry the paging meta information.
|
||||||
|
* Fix the issue that webhook leaks TCP connections. [ehttpc#34](https://github.com/emqx/ehttpc/pull/34), [#8580](https://github.com/emqx/emqx/pull/8580)
|
|
@ -0,0 +1,17 @@
|
||||||
|
# v5.0.5
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Add `bootstrap_users_file` configuration to add default Dashboard username list, which is only added when EMQX is first started.
|
||||||
|
* The license is now copied to all nodes in the cluster when it's reloaded. [#8598](https://github.com/emqx/emqx/pull/8598)
|
||||||
|
* Added a HTTP API to manage licenses. [#8610](https://github.com/emqx/emqx/pull/8610)
|
||||||
|
* Updated `/nodes` API node_status from `Running/Stopped` to `running/stopped`. [#8642](https://github.com/emqx/emqx/pull/8642)
|
||||||
|
* Improve handling of placeholder interpolation errors [#8635](https://github.com/emqx/emqx/pull/8635)
|
||||||
|
* Better logging on unknown object IDs. [#8670](https://github.com/emqx/emqx/pull/8670)
|
||||||
|
* The bind option support `:1883` style. [#8758](https://github.com/emqx/emqx/pull/8758)
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Allow changing the license type from key to file (and vice-versa). [#8598](https://github.com/emqx/emqx/pull/8598)
|
||||||
|
* Add back http connector config keys `max_retries` `retry_interval` as deprecated fields [#8672](https://github.com/emqx/emqx/issues/8672)
|
||||||
|
This caused upgrade failure in 5.0.4, because it would fail to boot on configs created from older version.
|
|
@ -0,0 +1,5 @@
|
||||||
|
# v5.0.6
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Upgrade Dashboard version to fix an issue where the node status was not displayed correctly. [#8771](https://github.com/emqx/emqx/pull/8771)
|
|
@ -0,0 +1,12 @@
|
||||||
|
# v5.0.7
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Do not auto-populate default SSL cipher suites, so that the configs are less bloated. [#8769](https://github.com/emqx/emqx/pull/8769)
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Remove `will_msg` (not used) field from the client API. [#8721](https://github.com/emqx/emqx/pull/8721)
|
||||||
|
* Fix `$queue` topic name error in management API return. [#8728](https://github.com/emqx/emqx/pull/8728)
|
||||||
|
* Fix race condition which may cause `client.connected` and `client.disconnected` out of order. [#8625](https://github.com/emqx/emqx/pull/8625)
|
||||||
|
* Fix quic listener default idle timeout's type. [#8826](https://github.com/emqx/emqx/pull/8826)
|
|
@ -0,0 +1,28 @@
|
||||||
|
# v5.0.8
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
* Print a warning message when boot with the default (insecure) Erlang cookie. [#8905](https://github.com/emqx/emqx/pull/8905)
|
||||||
|
* Change the `/gateway` API path to plural form. [#8823](https://github.com/emqx/emqx/pull/8823)
|
||||||
|
* Don't allow updating config items when they already exist in `local-override.conf`. [#8851](https://github.com/emqx/emqx/pull/8851)
|
||||||
|
* Remove `node.etc_dir` from emqx.conf, because it is never used.
|
||||||
|
Also allow user to customize the logging directory [#8892](https://github.com/emqx/emqx/pull/8892)
|
||||||
|
* Added a new API `POST /listeners` for creating listener. [#8876](https://github.com/emqx/emqx/pull/8876)
|
||||||
|
* Close ExProto client process immediately if it's keepalive timeouted. [#8866](https://github.com/emqx/emqx/pull/8866)
|
||||||
|
* Upgrade grpc-erl driver to 0.6.7 to support batch operation in sending stream. [#8866](https://github.com/emqx/emqx/pull/8866)
|
||||||
|
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
* Fix exhook `client.authorize` never being execauted. [#8780](https://github.com/emqx/emqx/pull/8780)
|
||||||
|
* Fix JWT plugin don't support non-integer timestamp claims. [#8867](https://github.com/emqx/emqx/pull/8867)
|
||||||
|
* Avoid publishing will message when client fails to auhtenticate. [#8887](https://github.com/emqx/emqx/pull/8887)
|
||||||
|
* Speed up dispatching of shared subscription messages in a cluster [#8893](https://github.com/emqx/emqx/pull/8893)
|
||||||
|
* Fix the extra / prefix when CoAP gateway parsing client topics. [#8658](https://github.com/emqx/emqx/pull/8658)
|
||||||
|
* Speed up updating the configuration, When some nodes in the cluster are down. [#8857](https://github.com/emqx/emqx/pull/8857)
|
||||||
|
* Fix delayed publish inaccurate caused by os time change. [#8926](https://github.com/emqx/emqx/pull/8926)
|
||||||
|
* Fix that EMQX can't start when the retainer is disabled [#8911](https://github.com/emqx/emqx/pull/8911)
|
||||||
|
* Fix that redis authn will deny the unknown users [#8934](https://github.com/emqx/emqx/pull/8934)
|
||||||
|
* Fix ExProto UDP client keepalive checking error.
|
||||||
|
This causes the clients to not expire as long as a new UDP packet arrives [#8866](https://github.com/emqx/emqx/pull/8866)
|
||||||
|
* Fix that MQTT Bridge message payload could be empty string. [#8949](https://github.com/emqx/emqx/pull/8949)
|
|
@ -0,0 +1,34 @@
|
||||||
|
# v5.0.9
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
- Add `cert_common_name` and `cert_subject` placeholder support for authz_http and authz_mongo [#8973](https://github.com/emqx/emqx/pull/8973).
|
||||||
|
|
||||||
|
- Use milliseconds internally in emqx_delayed to store the publish time, improving precision [#9060](https://github.com/emqx/emqx/pull/9060).
|
||||||
|
|
||||||
|
- More rigorous checking of flapping to improve stability of the system [#9136](https://github.com/emqx/emqx/pull/9136).
|
||||||
|
|
||||||
|
- No message(s) echo for the message publish APIs [#9155](https://github.com/emqx/emqx/pull/9155).
|
||||||
|
Prior to this fix, the message publish APIs (`api/v5/publish` and `api/v5/publish/bulk`) echos the message back to the client in HTTP body.
|
||||||
|
This change fixed it to only send back the message ID.
|
||||||
|
|
||||||
|
## Bug fixes
|
||||||
|
|
||||||
|
- Check ACLs for last will testament topic before publishing the message [#8930](https://github.com/emqx/emqx/pull/8930).
|
||||||
|
|
||||||
|
- Fix GET /listeners API crash when some nodes (in a cluster) is still loading the configs [#9002](https://github.com/emqx/emqx/pull/9002).
|
||||||
|
|
||||||
|
- Fix empty variable interpolation in authentication and authorization [#8963](https://github.com/emqx/emqx/pull/8963).
|
||||||
|
Placeholders for undefined variables are rendered now as empty strings and do not cause errors anymore.
|
||||||
|
|
||||||
|
- Fix the latency statistics error of the slow subscription stats [#8986](https://github.com/emqx/emqx/pull/8986).
|
||||||
|
Prior to this change when `stats_type` is `internal` or `response`, the begin time stamp was taken at wrong precision.
|
||||||
|
|
||||||
|
- Fix shared subscription message re-dispatches [#9104](https://github.com/emqx/emqx/pull/9104).
|
||||||
|
- When discarding QoS 2 inflight messages, there were excessive logs
|
||||||
|
- For wildcard deliveries, the re-dispatch used the wrong topic (the publishing topic,
|
||||||
|
but not the subscribing topic), caused messages to be lost when dispatching.
|
||||||
|
|
||||||
|
- Upgrade http client `gun` from 1.3.7 to [1.3.9](https://github.com/emqx/gun/tree/1.3.9)
|
||||||
|
Prior to this fix, long-lived HTTPS connections for HTTP auth or webhook integrations
|
||||||
|
may stall indefinitely, causing massive timeouts for HTTP requests.
|
|
@ -0,0 +1,28 @@
|
||||||
|
# v5.0.9
|
||||||
|
|
||||||
|
## 增强
|
||||||
|
|
||||||
|
- 为 `authz_http` 和 `authz_mongo` 增加了 `cert_common_name` 和 `cert_subject` 两个占位符 [#8973](https://github.com/emqx/emqx/pull/8973)。
|
||||||
|
|
||||||
|
- 统一使用 Erlang 虚拟机的时间,而不是系统时间,可以避免系统时间修改后导致的延迟发布不准确问题 [#9060](https://github.com/emqx/emqx/pull/9060)。
|
||||||
|
|
||||||
|
- 更严格的 flapping 检测,认证失败等也会进行计数 [#9136](https://github.com/emqx/emqx/pull/9136)。
|
||||||
|
|
||||||
|
## 修复
|
||||||
|
|
||||||
|
- 遗嘱消息发布前进行 ACL 检查 [#8930](https://github.com/emqx/emqx/pull/8930)。
|
||||||
|
|
||||||
|
- 在集群环境下,当有节点还没有完全初始化好配置时,`GET /listeners` 可能会返回 HTTP 500 的错误 [#9002](https://github.com/emqx/emqx/pull/9002)。
|
||||||
|
|
||||||
|
- 认证和鉴权的占位符替换中,如果没有找到匹配的值,使用空字符串代替,而不是抛出一异常 [#8963](https://github.com/emqx/emqx/pull/8963)。
|
||||||
|
|
||||||
|
- 慢订阅统计中时间单位用错的问题 [#8986](https://github.com/emqx/emqx/pull/8986)。
|
||||||
|
当统计类型(`stats_type`)是 `internal` 或者 `response` 时,起始时间戳的精度使用错误。
|
||||||
|
|
||||||
|
- 共享订阅消息重新派发 [#9104](https://github.com/emqx/emqx/pull/9104)。
|
||||||
|
- 当 QoS 2 的 inflight 消息被丢弃时,产生了大量的 warning 日志,修复后不再打印。
|
||||||
|
- 通配符订阅的共享订阅消息在重新派发时,使用了消息发布时的主题,而不是订阅的通配符主题选择
|
||||||
|
订阅组中的其他成员,导致转发失败。
|
||||||
|
|
||||||
|
- HTTP 客户端 (`gun`) 从 1.3.7 升级到 [1.3.9](https://github.com/emqx/gun/tree/1.3.9)。
|
||||||
|
此次修复前,HTTP 认证和 webhook 等使用 HTTPS 客户端长连接的后端可能会进入一个无限等待状态,导致大量超时发生。
|
Loading…
Reference in New Issue