Skip to content

1.11.0

Compare
Choose a tag to compare
@sophokles73 sophokles73 released this 24 Jan 12:58
· 878 commits to master since this release

New Features

  • The Authentication Server now also reports the hono.connections.attempts metric which counts the number of authentication
    attempts made by clients.
  • The JDBC DB based registry now also supports enforcement of registration limits configured at the tenant level.
    In particular, the maximum number of devices and the maximum number of credentials per device can be set in
    a tenant's registration-limits property. Please refer to the User Guide for details.
  • Kafka clients used by a component can now be configured individually instead of all clients of a type using the same
    configuration. The prefixes that are prepended to the configuration properties of the native Kafka client have
    changed. For existing configuration properties prefixed with hono.kafka.commonClientConfig properties, no change is
    needed. Other configurations with specific consumer/producer/admin client properties have to be adapted. Please refer
    to the Hono Kafka Client Configuration Guide for details.
  • The protocol adapters now include a ttl header/property in every message being forwarded, regardless of message
    type. This allows a consumer of a message to easily determine if the message should be processed or considered
    expired already. The device registry supports the definition of default ttl values for the different types of
    messages at both the tenant and device level. Please refer to the Tenant API for details regarding the
    corresponding default property names to use.

Fixes & Enhancements

  • The number of credits that the Mongo DB based registry would flow to a newly connected client could not be set using
    the documented environment variable HONO_CREDENTIALS_SVC_RECEIVERLINKCREDIT. Instead, the initial link credit can be
    configured using environment variable HONO_REGISTRY_AMQP_RECEIVERLINKCREDIT. The Mongo DB based registry's admin guide
    has been updated accordingly.
  • When using Kafka messaging, there could possibly be an exception during startup of the Command Router component,
    meaning the component was potentially only available after a number of startup attempts. This has been fixed.
  • The Quarkus based variant of the Lora protocol adapter did not start up unless the HONO_LORA_COMMANDENABLEDTENANTS
    environment variable had been set. This has been fixed by removing this (unused) variable from the Lora adapter
    altogether.
  • All downstream messages that can be consumed via Hono's north bound APIs now include a creation-time header
    which indicates the point in time at which the message has been created.
  • The error messages returned by protocol adapters when sending commands received via Kafka now include a reasonable
    error description.
  • The tenant's configuration property auto-provisioning-device-id-template is now extended to support more
    subjectDN's attributes namely Organizational Unit Name (OU) and Organization Name (O). For more information
    please refer to the Device Registry Management API.
  • The container images published by the Hono project are now built on top of Java 17 base images provided by the
    Eclipse Temurin project.
  • The Hono container images released with tag 1.10.0 failed to start up when not running as user root because the
    Java process was lacking authority to create a temporary directory in the file system's root folder (/).
    This has been fixed.
  • Command response messages published via Kafka did not contain the tenant_id header. This has been fixed.
  • Hono's components now support configuring the ciphers used in the TLS handshake when connecting to Infinispan servers.
    For the Command Router component remote data grid configuration this can be done by setting the hono.commandRouter.cache.remote.sslCiphers property.
  • When using Kafka messaging, the Hono components will now retry creating the Kafka clients in case the Kafka bootstrap
    server URLs are not yet resolvable. This will prevent unnecessary restarts of the Hono components during initial
    deployment.
  • The native image variant of the Command Router component failed to connect to an Infinispan server using SASL
    SCRAM. This has been fixed.
  • The lora adapter supports unconfirmed uplink data for the firefly provider.
  • The poll timeout used by the Kafka consumer clients in the Hono components can now be configured individually.
    Please refer to the Hono Kafka Client Configuration Guide for details.

Deprecations

  • The Spring Boot based variant of the protocol adapters has been deprecated and marked for removal in Hono 2.0.0.
  • The Kura 3 protocol adapter has been deprecated and marked for removal in Hono 2.0.0. Support for Kura version 4 and
    later is still available by means of Hono's standard MQTT adapter.

API Changes

  • The hono.kafka.defaultClientIdPrefix configuration property needs to be removed from existing configurations.
    Configuring parts of the created Kafka client identifiers should usually not be needed any more. To still set a custom
    part, the client.id property value may be used instead. It is adopted as prefix for created client identifiers.
  • A new API for notifications among Hono components has been introduced. For Hono deployments using an AMQP messaging
    network, it has to be made sure that addresses with the notification/ prefix are configured to use multicast.
    See the tests/src/test/resources/qpid/qdrouterd-with-broker.json file for an example Qpid Dispatch Router
    configuration.