- Ensure mountpoints specified at the protocol level are inherited on the
specific listeners. - Fix missing output from
vernemq version
(#1190). - Ensure errors from the parser variable decode are handled correctly and logged
at the debug level instead of causing a crash in the socket process. - Handle list of
sec-websocket-protocol
correctly (#1149) in the websocket
implementation. - Ensure that plumtree application isn't started when metadata plugin SWC is used.
- Fix bug preventing restarting Lua states properly in case of a crashing script.
- Fix warnings due to deprecated lager configuration (#1209).
- Upgrade
lager
to version 3.7.0 (In preparation for OTP 22 support). - Make VerneMQ run on Erlang/OTP 22.
- Add new webhooks CLI register flag
--no_payload=true
which, if enabled, will
remove the MQTT payload from the JSON object send via theauth_on_publish
andauth_on_publish_m5
payloads. The flag can also be set in the config file
usingvmq_webhooks.hookname.no_payload=on
. - Add metric
client_keepalive_expired
which tracks clients that failed to
communicate within the keepalive time. - Expose the
crypto:hash/1
function in LUA, for example to do a 256bit sha3
hash one can callcrypto.hash("sha3_256", data)
. The hashing algorithms
supported are exactly the ones supported by thecrypto:hash/1
function and
may change depending on the Erlang/OTP version used to build Erlang. See the
complete list of supported hashes here:
http://erlang.org/doc/man/crypto.html#Digests%20and%20hash. If passed an
unknown hashing algorithm an error is raised. - Fix prefix handling in the bridge plugin (vmq_bridge).
- Strengthen parameter validation in the
bcrypt.hashpw/2
LUA function in
vmq_diversity
. - Pass arguments correctly to
vmq-admin
when called viasudo
. - Handle rate metric labels correctly in the example grafana dashboard.
- Upgrade cowboy to version 2.6.3 as well as cowlib and ranch to versions 2.7.3
and 1.7.1 respectively. This update also means the PROXY protocol code was
removed and the PROXY support from cowboy is used instead. - Handle retained flag in the bridge plugin (vmq_bridge).
- Ensure systemd doesn't terminate VerneMQ if it is slow to start.
- Implement bridge protocol handling (protocol version 131) for bridges
connecting to VerneMQ such that the retained bit is kept on messages routed to
the bridge (Retained as Publish) and messages coming from the bridge are not
forwarded to the bridge if it has a matching description (No Local). - Fix message store startup consistency checking routine which resulted in
potentially deleting wrong messages in cases where an inconsistency was detected.
This fix also increases message storage performance during startup as well as
during normal operation. However, the nature of the bug and the provided solution
don't enable a simple downgrade path and introduces a backward incompatibility if
a VerneMQ message store containing offline messages has to be downgraded to 1.8.0
or earlier versions. - Upgrade dependency
cuttlefish
to version 2.2.0. - Improve large queue initialization performance by reducing algorithmic
complexity from O(n^2) to O(nlogn) where n is the number of offline messages. - Add the ability to modify the
username
onauth_on_register
andauth_on_register_m5
hooks. Supports bothvmq_diversity
andvmq_webhooks
. - Upgrade the
vmq_diversity
redis drivereredis
to version 1.2.0. - Fix
vmq_diversity
supervisor restart shutdown issue (#1241).