Releases: eclipse-hono/hono
Releases · eclipse-hono/hono
2.6.0
New Features
- The protocol adapters now have experimental support for doing OCSP based client certificate revocation
checks.
Fixes & Enhancements
- The Command Router code has been split up into a base module and an Infinispan based implementation. This
is in preparation of a Redis based implementation which is to be added in one of the upcoming minor versions. - Updated to latest Quarkus LTS version (3.8).
- Updated to jjwt 0.12.5 which allowed us to replace a lot of manually crafted code for creating a JWK Set based
on vert.x JWK with generic jjwt code. - Updated CoAP adapter to use Eclipse Californium 3.11.0.
- Also push JDBC Registry native executable image to Docker Hub.
Deprecations
- According to the MongoDB Software Lifecycle Schedule support
for MongoDB 5.0 will end Oct 2024.
Until that date the MongoDB based Device Registry will be tested with MongoDB 5.0, 6.0 and 7.0 in the CI workflows.
However, support for MongoDB 5.0 in Hono has been deprecated and will be removed in a future version altogether.
Users are encouraged to migrate to MongoDB 6.0 or later.
2.5.1
Fixes & Enhancements
- Updated Quarkus to 3.2.12 which includes fixes for
- Also push JDBC Registry native executable image to Docker Hub.
2.5.0
New Features
- A more generic format for storing the OpenTelemetry trace context information in an AMQP 1.0 message can now be
configured, writing the corresponding properties in the message application properties. This is for example relevant
when using AMQP 1.0 messaging in connection with Eclipse Ditto, resulting in combined traces of Hono and Ditto.
Please refer to the${prefix}.useLegacyTraceContextFormat
connection property documentation in the
Hono Client Configuration Guide for additional information. - The JDBC based Device Registry implementation now has limited support for filter criteria when searching devices.
Please refer to the Device Registry User Guide for details. - The Device Registry Management API's search Devices operation now supports restricting the result set to gateway or
edge devices only using the newly addedisGateway
query parameter.
Fixes & Enhancements
- When running in a Kubernetes cluster with nodes using cgroups v2, the
hono.command_internal.*
Kafka topics were not
being cleaned up. This has been fixed. Note that the solution requires the Hono protocol adapter pods to have
a service account with an assigned RBAC role that allows to performget
on thepods
resource. - When using Pub/Sub messaging, there were potentially issues concerning the AMQP connection between protocol adapter
and command router, leading for example to timeouts when MQTT devices subscribed/unsubscribed to the command topic.
This has been fixed. - The integration tests now use Apache Kafka 3.5.0 in Raft mode which no longer requires running a separate Apache Zookeeper
instance and thus simplifies test setup and configuration. - The command line client was still trying to connect to the insecure ports of the Sandbox. This has been changed so that
the client now uses the TLS endpoints and requires the user to specify a trust store for validating the server certificate. - All components now use Quarkus 3.2.9.Final.
- The CoAP adapter now uses Californium 3.10.0.
Deprecations
- According to the MongoDB Software Lifecycle Schedule support
for MongoDB 4.4 will end Feb 2024.
Until that date the MongoDB based Device Registry will be tested with MongoDB 4.4, 5.0, 6.0 and 7.0 in the CI workflows.
However, support for MongoDB 4.4 in Hono has been deprecated and will be removed in a future version altogether.
Users are encouraged to migrate to MongoDB 6.0 or later.
2.4.0
New features
- Hono now supports using Google Pub/Sub as the messaging infrastructure. The Admin Guide and the API documentation have
been amended with corresponding information on how to configure Hono and applications for using Pub/Sub. - Hono's MQTT and HTTP adapters now support using JSON Web Tokens (JWT) for authentication. In particular, the adapters
allow devices that have been connected to Google's IoT Core endpoints to connect to Hono instead. The User Guides have
been amended with corresponding information regarding configuration and usage. - The CoAP adapter now allows clients to retrieve the CoAP adapter's current time by means of including a query parameter
and/or request option. - The HTTP protocol adapter now supports authenticating devices using the JWT based authentication scheme employed by
Google IoT Core. - The command router now has experimental support for routing commands received via Google Pub/Sub to connected devices.
- The authentication identifier being created for devices that are using client certificate based auto-provisioning can now
be specified as a pattern based on fields from the certificate's subject DN.
Fixes & Enhancements
- The JDBC based device registry now supports searching for tenants and devices including paging. However, sorting is not
implemented (yet) and the number of filter predicates is (currently) limited to one. - The MQTT adapter failed to close a connection with a client after the JWT used by the client for authentication had expired.
This has been fixed. - Hono could not be built using Maven 3.9.0 and newer. This has been fixed.
2.3.0
New features
- Hono services and adapters could be started locally (not in containers) for development/test purposes.
- The MQTT adapter now has experimental support for authenticating devices using the JWT based authentication scheme
employed by Google IoT Core. - The protocol adapters now have experimental support for using Google Pub/Sub as the messaging infrastructure.
Support is currently limited to publishing downstream events and telemetry messages to Pub/Sub. - The JDBC based registry now supports the Device Registry Management API's search Tenants and search Devices
operations. However, sorting and filtering is not yet implemented.
Fixes & Enhancements
- The MQTT adapter did forward command messages for devices behind a gateway when the gateway subscription was
targeting the gateway itself with topic namecommand//[<gateway-id>]/req/#
. This has been fixed.
For a subscription with such a topic name, only commands for the gateway itself are forwarded, not commands for
devices, that the gateway acts on behalf of. - The LoRaWAN adapter now transforms all devEUIs hex encoded and upper case. All LoRaWAN devices should therefore be
registered upper case and hex encoded.
2.2.0
New features
- All Hono components now support reading ECC based keys from PEM files that contain the Base64
encoded DER-encoding of an ECPrivateKey as described in
RFC 5915, Section 4. - The build process now supports creating container images for the
arm64
platform. Please refer to the
Developer Guide for details. - The LoraWAN protocol adapter has been extended with support for Chirpstack V4 provider.
- Hono components now support producing JSON formatted log messages. Please refer to the
Admin Guide for details. - Hono components can now be configured to use the OTEL Jaeger Remote Sampler extension which allows
the sampling strategy to be retrieved from a Jaeger back-end dynamically during runtime.
Please refer to the Admin Guide for details.
Fixes & Enhancements
- Documentation for versions up to 1.11 is removed as outdated.
- Optimized handling of MQTT and AMQP protocol adapter shutdown. The purpose is removal of redundant
operations for devices which maintain a permanent connection during the restarting of adapter
instances. This prevents delays and possible errors due the higher rate of invocations of the
unregister Command Consumer operation on the Command Router service.
When shutting down, the adapters no longer explicitly unregister Command Consumers and no longer send
disconnectedTtdEvents. Instead, the Command Router now sends the connectedTtdEvent and
disconnectedTtdEvent on behalf of the protocol adapters.
The Command Router now also sends a disconnectedTtdEvent when a command is received that is
targeted at a device that got disconnected (and didn't reconnect) when a protocol adapter was
shut down. This happens only once - during the processing of the first command.
The Command Router configuration now also requires hono.messaging configuration if AMQP 1.0
based messaging infrastructure is being used. - The Mongo DB based device registry is now continuously tested to work with Mongo DB 5.0.
2.1.1
Fixes & Enhancements
- A vulnerability in the CoAP adapter has been fixed which could have been exploited by malicious devices causing a
denial of service. - The MQTT adapter's user guide has been improved to be more specific about the topic names being used for publishing
commands to gateway devices.
2.0.3
Fixes & Enhancements
- A vulnerability in the CoAP adapter has been fixed which could have been exploited by malicious devices causing a
denial of service. - The MQTT adapter's user guide has been improved to be more specific about the topic names being used for publishing
commands to gateway devices.
2.1.0
New features
- The tracing configuration has been extended to now also support a rate-limiting sampler. See the Monitoring & Tracing guide for details.
- Add new metric for tracking the total number of Tenants in Hono.
- The Auth server component now provides an HTTP endpoint for retrieving the keys that applications should use for
validating the signature of tokens issued by the Auth server. The keys are being transferred by means of a
JSON Web Key set as defined by RFC 7517. The Device Registry and
Command Router components will use this endpoint to periodically download the keys if no key material has been configured
explicitly. - The handling of messages that have no payload and/or no content type has been harmonized across the protocol adapters.
Adapters now uniformly accept messages from devices that have no payload if the device explicitly sets a non-empty content
type on the message. Messages with a non-empty payload can be uploaded without specifying a content type. In the messages
being forwarded to downstream consumers, the adapters will either use the devices's default content type, if defined, or
otherwise fall back toapplication/octet-stream
in such cases. - A Linux x86_64 executable of the command line client has been added to the downloads page.
Fixes & Enhancements
- The CoAP adapter did not properly consider the reduced minimum RAM requirements for starting up when running as a
native executable on a SubstrateVM. This could have resulted in the adapter not starting up at all, if configured
with less than ~150MB of RAM. This has been fixed. - The HTTP protocol adapter and Device Registry now support a configuration property for explicitly setting a request's
idle timeout. The timeout is configured with the property idleTimeout. This determines if a request will time out
and be closed if no data is received or sent within the idle timeout period. The idle timeout is in seconds.
A zero value means no timeout is used. - The MQTT adapter skipped command or error (the first one) subscription if both were requested for the same device.
This has been fixed. - On startup, Hono components could get into a state that caused certain Kafka client metrics to not get reported.
This has been fixed. - Default messaging type changed to Kafka. Changed related documentation pages.
- The native executable based Lora adapter container image failed to forward Lora meta information in messages being
sent downstream. This has been fixed. - The Command Router component might not have reached the ready state in case the Kafka broker got restarted during
Command Router startup. This has been fixed. - The mechanism used by the Command Router component to determine the state of protocol adapter instances has been
improved. - The CoAP adapter returned a
500
error code for PUT requests without a device identifier in the URI path. This has
been fixed, now returning a response with a404
error code instead. - The command line client no longer throws an NPE when trying to upload an empty message without a content type to the
AMQP adapter.
2.0.2
Fixes & Enhancements
- The default value for the HTTP protocol adapter
hono.http.idleTimeout
configuration property has been increased
from 60 to 75 seconds. This means HTTP requests with ahono-ttd
value of 60 seconds (which is the tenant
configurationmax-ttd
default) will not cause the idle timeout to be reached. - The mechanism used by the Command Router component to determine the state of protocol adapter instances has been
improved. - The CoAP adapter returned a
500
error code for PUT requests without a device identifier in the URI path. This has
been fixed, now returning a response with a404
error code instead.