Website build Hono-Website-Declarative-Pipeline-196
Signed-off-by: Hono Bot <hono-bot@eclipse.org>
diff --git a/docs/1.6/admin-guide/amqp-adapter-config/index.html b/docs/1.6/admin-guide/amqp-adapter-config/index.html
index 20d67c2..a9e425d 100644
--- a/docs/1.6/admin-guide/amqp-adapter-config/index.html
+++ b/docs/1.6/admin-guide/amqp-adapter-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>AMQP Adapter Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/amqp-adapter-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/amqp-adapter-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/amqp-adapter-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/amqp-adapter-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/amqp-adapter-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/amqp-adapter-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/amqp-adapter-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/amqp-adapter-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/amqp-adapter-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/amqp-adapter-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/amqp-adapter-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,19 +1992,17 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ </ul>
</nav>
</div>
</div>
@@ -1976,241 +2026,192 @@
-<p>The AMQP protocol adapter exposes AMQP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
-
+<p>The AMQP protocol adapter exposes AMQP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
<p>The adapter is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the
corresponding <a href="https://hub.docker.com/r/eclipse/hono-adapter-amqp-vertx/">Docker image</a> created from it.</p>
-
<p>The adapter supports the following standard configuration options:</p>
-
<ul>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#java-vm-options">Common Java VM Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#vert-x-options">Common vert.x Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#protocol-adapter-options">Common Protocol Adapter Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring Options</a></li>
</ul>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the AMQP adapter.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_AMQP_AUTHENTICATION_REQUIRED</code><br><code>--hono.amqp.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
+<td style="text-align:left"><code>HONO_AMQP_AUTHENTICATION_REQUIRED</code><br><code>--hono.amqp.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_BIND_ADDRESS</code><br><code>--hono.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AMQP_BIND_ADDRESS</code><br><code>--hono.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_CERT_PATH</code><br><code>--hono.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_AMQP_CERT_PATH</code><br><code>--hono.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_DEFAULTS_ENABLED</code><br><code>--hono.amqp.defaultsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
+<td style="text-align:left"><code>HONO_AMQP_DEFAULTS_ENABLED</code><br><code>--hono.amqp.defaultsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_IDLE_TIMEOUT</code><br><code>--hono.amqp.idleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>60000</code></td>
-<td align="left">The time interval (milliseconds) to wait for incoming traffic from a device before the connection should be considered stale and thus be closed. Setting this property to <code>0</code> prevents the adapter from detecting and closing stale connections.</td>
+<td style="text-align:left"><code>HONO_AMQP_IDLE_TIMEOUT</code><br><code>--hono.amqp.idleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>60000</code></td>
+<td style="text-align:left">The time interval (milliseconds) to wait for incoming traffic from a device before the connection should be considered stale and thus be closed. Setting this property to <code>0</code> prevents the adapter from detecting and closing stale connections.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.amqp.sendMessageToDeviceTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The time interval (milliseconds) to wait for a device to acknowledge receiving a (command) message before the AMQP link used for sending the message will be closed. Setting this property to <code>0</code> means the adapter waits indefinitely for a device to acknowledge receiving the message.</td>
+<td style="text-align:left"><code>HONO_AMQP_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.amqp.sendMessageToDeviceTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The time interval (milliseconds) to wait for a device to acknowledge receiving a (command) message before the AMQP link used for sending the message will be closed. Setting this property to <code>0</code> means the adapter waits indefinitely for a device to acknowledge receiving the message.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_INSECURE_PORT</code><br><code>--hono.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left"><code>5672</code></td>
-<td align="left">The port number that the protocol adapter should listen on for insecure connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AMQP_INSECURE_PORT</code><br><code>--hono.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5672</code></td>
+<td style="text-align:left">The port number that the protocol adapter should listen on for insecure connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_KEY_PATH</code><br><code>--hono.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_AMQP_KEY_PATH</code><br><code>--hono.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_KEY_STORE_PATH</code><br><code>--hono.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_AMQP_KEY_PATH</code> and <code>HONO_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_AMQP_KEY_STORE_PATH</code><br><code>--hono.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_AMQP_KEY_PATH</code> and <code>HONO_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_SNI</code><br><code>--hono.amqp.sni</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format, <code>HONO_AMQP_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_AMQP_SNI</code><br><code>--hono.amqp.sni</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format, <code>HONO_AMQP_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_MAX_CONNECTIONS</code><br><code>--hono.amqp.maxConnections</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
+<td style="text-align:left"><code>HONO_AMQP_MAX_CONNECTIONS</code><br><code>--hono.amqp.maxConnections</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_MAX_FRAME_SIZE</code><br><code>--hono.amqp.maxFrameSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>16384</code></td>
-<td align="left">The maximum size (in bytes) of a single AMQP frame that the adapter should accept from the device. When a device sends a bigger frame, the connection will be closed.</td>
+<td style="text-align:left"><code>HONO_AMQP_MAX_FRAME_SIZE</code><br><code>--hono.amqp.maxFrameSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>16384</code></td>
+<td style="text-align:left">The maximum size (in bytes) of a single AMQP frame that the adapter should accept from the device. When a device sends a bigger frame, the connection will be closed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_MAX_PAYLOAD_SIZE</code><br><code>--hono.amqp.maxPayloadSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>2048</code></td>
-<td align="left">The maximum allowed size of an incoming AMQP message in bytes. When a client sends a message with a larger payload, the message is discarded and the link to the client is closed.</td>
+<td style="text-align:left"><code>HONO_AMQP_MAX_PAYLOAD_SIZE</code><br><code>--hono.amqp.maxPayloadSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>2048</code></td>
+<td style="text-align:left">The maximum allowed size of an incoming AMQP message in bytes. When a client sends a message with a larger payload, the message is discarded and the link to the client is closed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_MAX_SESSION_FRAMES</code><br><code>--hono.amqp.maxSessionFrames</code></td>
-<td align="center">no</td>
-<td align="left"><code>30</code></td>
-<td align="left">The maximum number of AMQP transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session.</td>
+<td style="text-align:left"><code>HONO_AMQP_MAX_SESSION_FRAMES</code><br><code>--hono.amqp.maxSessionFrames</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>30</code></td>
+<td style="text-align:left">The maximum number of AMQP transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSSL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSSL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_PORT</code><br><code>--hono.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AMQP_PORT</code><br><code>--hono.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AMQP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.amqp.tenantIdleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>0ms</code></td>
-<td align="left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
+<td style="text-align:left"><code>HONO_AMQP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.amqp.tenantIdleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0ms</code></td>
+<td style="text-align:left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default values do not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The AMQP protocol adapter can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The AMQP protocol adapter will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The protocol adapter needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>either setting the <code>HONO_AMQP_KEY_STORE_PATH</code> and the <code>HONO_AMQP_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_AMQP_KEY_PATH</code> and <code>HONO_AMQP_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the protocol adapter will bind a TLS secured socket to the default secure port 5671. The port number can also be set explicitly using the <code>HONO_AMQP_PORT</code> variable.</p>
-
<p>The <code>HONO_AMQP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_AMQP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default adapter port (5672) by simply setting <code>HONO_AMQP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The protocol adapter issues a warning on the console if <code>HONO_AMQP_INSECURE_PORT</code> is set to the default secure port (5671) used by the adapter for secure connections.</p>
-
<p>The <code>HONO_AMQP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>The protocol adapter may be configured to open both a secure and a non-secure port at the same time simply by configuring both ports as described above. For this to work, both ports must be configured to use different port numbers, otherwise startup will fail.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The protocol adapter will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
<footer class="footline">
@@ -3324,19 +3325,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/amqp-network-config/index.html b/docs/1.6/admin-guide/amqp-network-config/index.html
index 90c8878..f616ecf 100644
--- a/docs/1.6/admin-guide/amqp-network-config/index.html
+++ b/docs/1.6/admin-guide/amqp-network-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>AMQP 1.0 Messaging Network Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/amqp-network-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/amqp-network-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/amqp-network-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/amqp-network-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/amqp-network-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/amqp-network-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/amqp-network-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/amqp-network-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/amqp-network-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/amqp-network-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/amqp-network-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,13 +1992,10 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#dispatch-router-configuration">Dispatch Router Configuration</a></li>
-<li><a href="#artemis-broker-configuration">Artemis Broker Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#dispatch-router-configuration">Dispatch Router Configuration</a></li>
+ <li><a href="#artemis-broker-configuration">Artemis Broker Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1971,19 +2020,12 @@
<p>The <em>Qpid Dispatch Router</em>, together with the <em>Apache Artemis</em> message broker, serves as the default <em>AMQP 1.0 Messaging Network</em> that is used in Hono’s example deployment as described in the <a href="/hono/docs/1.6/deployment/">Deployment Guides</a>.</p>
-
<p>The Dispatch Router component exposes service endpoints implementing the <em>north bound</em> part of Hono’s <a href="/hono/docs/1.6/api/telemetry/">Telemetry</a>, <a href="/hono/docs/1.6/api/event/">Event</a> and <a href="/hono/docs/1.6/api/command-and-control/">Command & Control</a> APIs which are used by applications to interact with devices.</p>
-
<h2 id="dispatch-router-configuration">Dispatch Router Configuration</h2>
-
<p>The Dispatch Router is part of the <a href="https://qpid.apache.org">Apache Qpid project</a>. Hono uses Dispatch Router by means of the <a href="https://enmasse.io">EnMasse</a> project’s <a href="https://quay.io/repository/enmasse/qdrouterd-base">Dispatch Router Docker image</a> created from the Qpid project source code.</p>
-
<p>The Dispatch Router can be configured by means of configuration files. Hono includes an example configuration in the <code>deploy/src/main/config/qpid</code> folder which is used by the example deployment scripts. Please refer to the <a href="https://qpid.apache.org/components/dispatch-router/index.html">Dispatch Router documentation</a> for details regarding the configuration file format and options.</p>
-
<h2 id="artemis-broker-configuration">Artemis Broker Configuration</h2>
-
<p>The Artemis Broker is part of the <a href="https://activemq.apache.org">Apache ActiveMQ project</a>. Hono uses Artemis by means of the <a href="https://enmasse.io">EnMasse</a> project’s <a href="https://hub.docker.com/r/enmasseproject/activemq-artemis">Artemis Docker image</a> created from the Artemis project source code.</p>
-
<p>The Artemis Broker can be configured by means of configuration files. Hono includes an example configuration in the <code>deploy/src/main/config/artemis</code> folder which is used by the example deployment scripts. Please refer to the <a href="https://activemq.apache.org/components/artemis/documentation/">Artemis documentation</a> for details regarding the configuration file format and options.</p>
<footer class="footline">
@@ -3097,19 +3139,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844313"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844313"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844313"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844313"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844313"></script>
+ <script src="/hono/docs/js/learn.js?1617844313"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844313"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844313" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844313"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/auth-server-config/index.html b/docs/1.6/admin-guide/auth-server-config/index.html
index 10c5fba..3b73ee2 100644
--- a/docs/1.6/admin-guide/auth-server-config/index.html
+++ b/docs/1.6/admin-guide/auth-server-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Auth Server Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757957"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757957"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/auth-server-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/auth-server-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/auth-server-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/auth-server-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/auth-server-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/auth-server-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/auth-server-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/auth-server-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/auth-server-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/auth-server-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/auth-server-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,20 +1992,18 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1977,226 +2027,175 @@
-<p>The Auth Server component exposes a service endpoint implementing Eclipse Hono™’s <a href="/hono/docs/1.6/api/authentication/">Authentication</a> API. Other services use this component for authenticating clients and retrieving a token asserting the client’s identity and corresponding authorities.</p>
-
+<p>The Auth Server component exposes a service endpoint implementing Eclipse Hono™’s <a href="/hono/docs/1.6/api/authentication/">Authentication</a> API. Other services use this component for authenticating clients and retrieving a token asserting the client’s identity and corresponding authorities.</p>
<p>This component serves as a default implementation of the <em>Authentication</em> API only. On startup, it reads in all identities and their authorities from a JSON file from the file system. All data is then kept in memory and there are no remote service APIs for managing the identities and their authorities.</p>
-
<p>The Auth Server is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the corresponding <a href="https://hub.docker.com/r/eclipse/hono-service-auth/">Docker image</a> created from it.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>In addition to the following options, this component supports the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<p>The server can be configured by means of environment variables or corresponding command line options.
The following table provides an overview of the configuration variables and corresponding command line options that the server supports:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_BIND_ADDRESS</code><br><code>--hono.auth.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_BIND_ADDRESS</code><br><code>--hono.auth.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_CERT_PATH</code><br><code>--hono.auth.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AUTH_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_AUTH_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_CERT_PATH</code><br><code>--hono.auth.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_AUTH_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_AUTH_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_INSECURE_PORT</code><br><code>--hono.auth.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_INSECURE_PORT</code><br><code>--hono.auth.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.auth.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.auth.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.auth.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_AUTH_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.auth.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_AUTH_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_KEY_PATH</code><br><code>--hono.auth.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. Note that the private key is not protected by a password. You should therefore make sure that the key file can only be read by the user that the server process is running under. This option must be used in conjunction with <code>HONO_AUTH_CERT_PATH</code>.<br>Alternatively, the <code>HONO_AUTH_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_KEY_PATH</code><br><code>--hono.auth.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. Note that the private key is not protected by a password. You should therefore make sure that the key file can only be read by the user that the server process is running under. This option must be used in conjunction with <code>HONO_AUTH_CERT_PATH</code>.<br>Alternatively, the <code>HONO_AUTH_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.auth.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.auth.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_KEY_STORE_PATH</code><br><code>--hono.auth.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_AUTH_AMQP_KEY_PATH</code> and <code>HONO_AUTH_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_KEY_STORE_PATH</code><br><code>--hono.auth.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_AUTH_AMQP_KEY_PATH</code> and <code>HONO_AUTH_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.auth.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.auth.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_PORT</code><br><code>--hono.auth.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_PORT</code><br><code>--hono.auth.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.auth.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.auth.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_TRUST_STORE_PASSWORD</code><br><code>--hono.auth.amqp.trustStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the trust store.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_TRUST_STORE_PASSWORD</code><br><code>--hono.auth.amqp.trustStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the trust store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_AMQP_TRUST_STORE_PATH</code><br><code>--hono.auth.amqp.trustStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the CA certificates the service uses for authenticating clients. The key store format can be either <code>JKS</code>, <code>PKCS12</code> or <code>PEM</code> indicated by a <code>.jks</code>, <code>.p12</code> or <code>.pem</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_AUTH_AMQP_TRUST_STORE_PATH</code><br><code>--hono.auth.amqp.trustStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the CA certificates the service uses for authenticating clients. The key store format can be either <code>JKS</code>, <code>PKCS12</code> or <code>PEM</code> indicated by a <code>.jks</code>, <code>.p12</code> or <code>.pem</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SVC_PERMISSIONS_PATH</code><br><code>--hono.auth.svc.permissionsPath</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The path to the JSON file defining the identities and corresponding authorities on Hono’s endpoint resources. For backwards compatibility with previous releases, the path may contain a <code>file://</code> prefix.</td>
+<td style="text-align:left"><code>HONO_AUTH_SVC_PERMISSIONS_PATH</code><br><code>--hono.auth.svc.permissionsPath</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The path to the JSON file defining the identities and corresponding authorities on Hono’s endpoint resources. For backwards compatibility with previous releases, the path may contain a <code>file://</code> prefix.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SVC_SIGNING_KEY_PATH</code><br><code>--hono.auth.svc.signing.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for signing tokens asserting an authenticated client’s identity and authorities. When using this variable, other services that need to validate the tokens issued by this service need to be configured with the corresponding certificate/public key. Alternatively, a symmetric key can be used for signing (and validating) by setting the <code>HONO_AUTH_SVC_SIGNING_SHARED_SECRET</code> variable. If none of these variables is set, the server falls back to the key indicated by the <code>HONO_AUTH_AMQP_KEY_PATH</code> variable. If that variable is also not set, startup of the server fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_SVC_SIGNING_KEY_PATH</code><br><code>--hono.auth.svc.signing.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for signing tokens asserting an authenticated client’s identity and authorities. When using this variable, other services that need to validate the tokens issued by this service need to be configured with the corresponding certificate/public key. Alternatively, a symmetric key can be used for signing (and validating) by setting the <code>HONO_AUTH_SVC_SIGNING_SHARED_SECRET</code> variable. If none of these variables is set, the server falls back to the key indicated by the <code>HONO_AUTH_AMQP_KEY_PATH</code> variable. If that variable is also not set, startup of the server fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SVC_SIGNING_SHARED_SECRET</code><br><code>--hono.auth.svc.signing.sharedSecret</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">A string to derive a symmetric key from that is used for signing tokens asserting an authenticated client’s identity and authorities. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the signing key using this variable, other services that need to validate the tokens issued by this service need to be configured with the same key. Alternatively, an asymmetric key pair can be used for signing (and validating) by setting the <code>HONO_AUTH_SVC_SIGNING_KEY_PATH</code> variable. If none of these variables is set, startup of the server fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_SVC_SIGNING_SHARED_SECRET</code><br><code>--hono.auth.svc.signing.sharedSecret</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A string to derive a symmetric key from that is used for signing tokens asserting an authenticated client’s identity and authorities. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the signing key using this variable, other services that need to validate the tokens issued by this service need to be configured with the same key. Alternatively, an asymmetric key pair can be used for signing (and validating) by setting the <code>HONO_AUTH_SVC_SIGNING_KEY_PATH</code> variable. If none of these variables is set, startup of the server fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SVC_SIGNING_TOKEN_EXPIRATION</code><br><code>--hono.auth.svc.signing.tokenExpiration</code></td>
-<td align="center">no</td>
-<td align="left">600</td>
-<td align="left">The number of seconds after which the tokens created by this service for asserting an authenticated client’s identity should be considered invalid. Other Hono components will close AMQP connections with clients after this period in order to force the client to authenticate again and create a new token. In closed environments it should be save to set this value to a much higher value, e.g. several hours.</td>
+<td style="text-align:left"><code>HONO_AUTH_SVC_SIGNING_TOKEN_EXPIRATION</code><br><code>--hono.auth.svc.signing.tokenExpiration</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">600</td>
+<td style="text-align:left">The number of seconds after which the tokens created by this service for asserting an authenticated client’s identity should be considered invalid. Other Hono components will close AMQP connections with clients after this period in order to force the client to authenticate again and create a new token. In closed environments it should be save to set this value to a much higher value, e.g. several hours.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SVC_SUPPORTED_SASL_MECHANISMS</code><br><code>--hono.auth.svc.supportedSaslMechanisms</code></td>
-<td align="center">no</td>
-<td align="left"><code>EXTERNAL, PLAIN</code></td>
-<td align="left">A (comma separated) list of the supported SASL mechanisms to be advertised to clients. This option may be set to specify only one of <code>EXTERNAL</code> or <code>PLAIN</code>, or to use a different order.</td>
+<td style="text-align:left"><code>HONO_AUTH_SVC_SUPPORTED_SASL_MECHANISMS</code><br><code>--hono.auth.svc.supportedSaslMechanisms</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>EXTERNAL, PLAIN</code></td>
+<td style="text-align:left">A (comma separated) list of the supported SASL mechanisms to be advertised to clients. This option may be set to specify only one of <code>EXTERNAL</code> or <code>PLAIN</code>, or to use a different order.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Auth Server can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The server will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The server needs to be configured with a private key, a certificate holding the public key and a trust store in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for setting the private key and certificate:</p>
-
<ol>
<li>Setting the <code>HONO_AUTH_AMQP_KEY_STORE_PATH</code> and the <code>HONO_AUTH_AMQP_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_AUTH_AMQP_KEY_PATH</code> and <code>HONO_AUTH_AMQP_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>In order to set the trust store, the <code>HONO_AUTH_AMQP_TRUST_STORE_PATH</code> variable needs to be set to a key store containing the trusted root CA certificates. The <code>HONO_AUTH_AMQP_TRUST_STORE_PASSWORD</code> variable needs to be set if the key store requires a pass phrase for reading its contents.</p>
-
<p>When starting up, the server will bind a TLS secured socket to the default secure AMQP port 5671. The port number can also be set explicitly using the <code>HONO_AUTH_AMQP_PORT</code> variable.</p>
-
<p>The <code>HONO_AUTH_AMQP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_AUTH_AMQP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default AMQP port (5672) by simply setting <code>HONO_AUTH_AMQP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The server issues a warning on the console if <code>HONO_AUTH_AMQP_INSECURE_PORT</code> is set to the default secure AMQP port (5671).</p>
-
<p>The <code>HONO_AUTH_AMQP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>In test setups and some production scenarios Hono server may be configured to open one secure <strong>and</strong> one insecure port at the same time.</p>
-
<p>This is achieved by configuring both ports correctly (see above). The server will fail to start if both ports are configured to use the same port number.</p>
-
<p>Since the secure port may need different visibility in the network setup compared to the secure port, it has its own binding address <code>HONO_AUTH_AMQP_INSECURE_PORT_BIND_ADDRESS</code>.
This can be used to narrow the visibility of the insecure port to a local network e.g., while the secure port may be visible worldwide.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The Auth Server will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
<footer class="footline">
@@ -3310,19 +3309,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/coap-adapter-config/index.html b/docs/1.6/admin-guide/coap-adapter-config/index.html
index c8442fb..6000ddb 100644
--- a/docs/1.6/admin-guide/coap-adapter-config/index.html
+++ b/docs/1.6/admin-guide/coap-adapter-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>CoAP Adapter Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/coap-adapter-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/coap-adapter-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/coap-adapter-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/coap-adapter-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/coap-adapter-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/coap-adapter-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/coap-adapter-config/">1.3</option>
@@ -1750,6 +1788,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/coap-adapter-config/">dev</option>
@@ -1806,6 +1846,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1862,20 +1908,18 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#authentication">Authentication</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#authentication">Authentication</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1899,286 +1943,231 @@
-<p>The CoAP protocol adapter exposes CoAP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
-
-<p>The adapter is implemented as a Spring Boot application using <a href="https://www.eclipse.org/californium">Eclipse Californium™</a> for implementing
+<p>The CoAP protocol adapter exposes CoAP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
+<p>The adapter is implemented as a Spring Boot application using <a href="https://www.eclipse.org/californium">Eclipse Californium™</a> for implementing
the CoAP protocol handling. It can be run either directly from the command line or by means of starting the corresponding
<a href="https://hub.docker.com/r/eclipse/hono-adapter-coap-vertx/">Docker image</a> created from it.</p>
-
<p>The adapter supports the following standard configuration options:</p>
-
<ul>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#java-vm-options">Common Java VM Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#vert-x-options">Common vert.x Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#protocol-adapter-options">Common Protocol Adapter Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring Options</a></li>
</ul>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the CoAP adapter.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_AUTHENTICATION_REQUIRED</code><br><code>--hono.coap.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that fail to authenticate are not allowed to connect to the adapter.</td>
+<td style="text-align:left"><code>HONO_COAP_AUTHENTICATION_REQUIRED</code><br><code>--hono.coap.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that fail to authenticate are not allowed to connect to the adapter.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_BIND_ADDRESS</code><br><code>--hono.coap.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COAP_BIND_ADDRESS</code><br><code>--hono.coap.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_CERT_PATH</code><br><code>--hono.coap.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COAP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_COAP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_COAP_CERT_PATH</code><br><code>--hono.coap.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COAP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_COAP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_COAP_THREADS</code><br><code>--hono.coap.coapThreads</code></td>
-<td align="center">no</td>
-<td align="left">2</td>
-<td align="left">The number of threads to use for processing CoAP message exchanges at the protocol layer.</td>
+<td style="text-align:left"><code>HONO_COAP_COAP_THREADS</code><br><code>--hono.coap.coapThreads</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">2</td>
+<td style="text-align:left">The number of threads to use for processing CoAP message exchanges at the protocol layer.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_CONNECTOR_THREADS</code><br><code>--hono.coap.connectorThreads</code></td>
-<td align="center">no</td>
-<td align="left">2</td>
-<td align="left">The number of threads to use for receiving/sending UDP packets. The connector will start the given number of threads for each direction, outbound (sending) as well as inbound (receiving).</td>
+<td style="text-align:left"><code>HONO_COAP_CONNECTOR_THREADS</code><br><code>--hono.coap.connectorThreads</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">2</td>
+<td style="text-align:left">The number of threads to use for receiving/sending UDP packets. The connector will start the given number of threads for each direction, outbound (sending) as well as inbound (receiving).</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_DTLS_THREADS</code><br><code>--hono.coap.dtlsThreads</code></td>
-<td align="center">no</td>
-<td align="left">32</td>
-<td align="left">The number of threads to use for processing DTLS message exchanges at the connection layer.</td>
+<td style="text-align:left"><code>HONO_COAP_DTLS_THREADS</code><br><code>--hono.coap.dtlsThreads</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">32</td>
+<td style="text-align:left">The number of threads to use for processing DTLS message exchanges at the connection layer.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_DTLS_RETRANSMISSION_TIMEOUT</code><br><code>--hono.coap.dtlsRetransmissionTimeout</code></td>
-<td align="center">no</td>
-<td align="left">2000</td>
-<td align="left">The timeout in milliseconds for DTLS retransmissions.</td>
+<td style="text-align:left"><code>HONO_COAP_DTLS_RETRANSMISSION_TIMEOUT</code><br><code>--hono.coap.dtlsRetransmissionTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">2000</td>
+<td style="text-align:left">The timeout in milliseconds for DTLS retransmissions.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_DEFAULTS_ENABLED</code><br><code>--hono.coap.defaultsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
+<td style="text-align:left"><code>HONO_COAP_DEFAULTS_ENABLED</code><br><code>--hono.coap.defaultsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_EXCHANGE_LIFETIME</code><br><code>--hono.coap.exchangeLifetime</code></td>
-<td align="center">no</td>
-<td align="left">247000</td>
-<td align="left">The exchange lifetime in milliseconds. According RFC 7252, that value is 247s. Such a large time requires also a huge amount of heap. That time includes a processing time of 100s and retransmissions of CON messages. Therefore a practical value could be much smaller.</td>
+<td style="text-align:left"><code>HONO_COAP_EXCHANGE_LIFETIME</code><br><code>--hono.coap.exchangeLifetime</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">247000</td>
+<td style="text-align:left">The exchange lifetime in milliseconds. According RFC 7252, that value is 247s. Such a large time requires also a huge amount of heap. That time includes a processing time of 100s and retransmissions of CON messages. Therefore a practical value could be much smaller.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_INSECURE_NETWORK_CONFIG</code><br><code>--hono.coap.insecureNetworkConfig</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to a Californium properties file containing network configuration properties that should be used for the insecure CoAP port. If not set, Californium’s default properties will be used.</td>
+<td style="text-align:left"><code>HONO_COAP_INSECURE_NETWORK_CONFIG</code><br><code>--hono.coap.insecureNetworkConfig</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to a Californium properties file containing network configuration properties that should be used for the insecure CoAP port. If not set, Californium’s default properties will be used.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_INSECURE_PORT</code><br><code>--hono.coap.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COAP_INSECURE_PORT</code><br><code>--hono.coap.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.coap.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COAP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.coap.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_INSECURE_PORT_ENABLED</code><br><code>--hono.coap.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_COAP_INSECURE_PORT</code> or the default port number (<code>5683</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COAP_INSECURE_PORT_ENABLED</code><br><code>--hono.coap.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_COAP_INSECURE_PORT</code> or the default port number (<code>5683</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_KEY_PATH</code><br><code>--hono.coap.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COAP_CERT_PATH</code>. Alternatively, the <code>HONO_COAP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_COAP_KEY_PATH</code><br><code>--hono.coap.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COAP_CERT_PATH</code>. Alternatively, the <code>HONO_COAP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_KEY_STORE_PASSWORD</code><br><code>--hono.coap.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_COAP_KEY_STORE_PASSWORD</code><br><code>--hono.coap.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_KEY_STORE_PATH</code><br><code>--hono.coap.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_COAP_KEY_PATH</code> and <code>HONO_COAP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_COAP_KEY_STORE_PATH</code><br><code>--hono.coap.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_COAP_KEY_PATH</code> and <code>HONO_COAP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_MAX_CONNECTIONS</code><br><code>--hono.coap.maxConnections</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The maximum number of concurrent DTLS connections that the protocol adapter should accept. If set to <code>0</code>, the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
+<td style="text-align:left"><code>HONO_COAP_MAX_CONNECTIONS</code><br><code>--hono.coap.maxConnections</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The maximum number of concurrent DTLS connections that the protocol adapter should accept. If set to <code>0</code>, the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_MAX_PAYLOAD_SIZE</code><br><code>--hono.coap.maxPayloadSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>2048</code></td>
-<td align="left">The maximum allowed size of an incoming CoAP request’s body in bytes. Requests with a larger body size are rejected with a 4.13 <code>Request entity too large</code> response.</td>
+<td style="text-align:left"><code>HONO_COAP_MAX_PAYLOAD_SIZE</code><br><code>--hono.coap.maxPayloadSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>2048</code></td>
+<td style="text-align:left">The maximum allowed size of an incoming CoAP request’s body in bytes. Requests with a larger body size are rejected with a 4.13 <code>Request entity too large</code> response.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_MESSAGE_OFFLOADING_ENABLED</code><br><code>--hono.coap.messageOffloadingEnabled</code></td>
-<td align="center">no</td>
-<td align="left">true</td>
-<td align="left">Enables to clear payload and serialized messages kept for deduplication in order to reduce the heap consumption. Experimental.</td>
+<td style="text-align:left"><code>HONO_COAP_MESSAGE_OFFLOADING_ENABLED</code><br><code>--hono.coap.messageOffloadingEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">true</td>
+<td style="text-align:left">Enables to clear payload and serialized messages kept for deduplication in order to reduce the heap consumption. Experimental.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_NETWORK_CONFIG</code><br><code>--hono.coap.networkConfig</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to a Californium properties file containing network configuration properties that should be used for the secure CoAP port. If not set, Californium’s default properties will be used.</td>
+<td style="text-align:left"><code>HONO_COAP_NETWORK_CONFIG</code><br><code>--hono.coap.networkConfig</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to a Californium properties file containing network configuration properties that should be used for the secure CoAP port. If not set, Californium’s default properties will be used.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_PORT</code><br><code>--hono.coap.port</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COAP_PORT</code><br><code>--hono.coap.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.coap.tenantIdleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>0ms</code></td>
-<td align="left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
+<td style="text-align:left"><code>HONO_COAP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.coap.tenantIdleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0ms</code></td>
+<td style="text-align:left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COAP_TIMEOUT_TO_ACK</code><br><code>--hono.coap.timeoutToAck</code></td>
-<td align="center">no</td>
-<td align="left">500</td>
-<td align="left">Timeout in milliseconds to send an ACK for a CoAP CON request. If the response is available before that timeout, a more efficient piggybacked response is used. If the timeout is reached without having received a response, an empty ACK is sent back to the client and the response is sent in a separate CON once it becomes available. Special values: <code>-1</code> means to always piggyback the response in an ACK and never send a separate CON; <code>0</code> means to always send an ACK immediately and include the response in a separate CON.</td>
+<td style="text-align:left"><code>HONO_COAP_TIMEOUT_TO_ACK</code><br><code>--hono.coap.timeoutToAck</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">500</td>
+<td style="text-align:left">Timeout in milliseconds to send an ACK for a CoAP CON request. If the response is available before that timeout, a more efficient piggybacked response is used. If the timeout is reached without having received a response, an empty ACK is sent back to the client and the response is sent in a separate CON once it becomes available. Special values: <code>-1</code> means to always piggyback the response in an ACK and never send a separate CON; <code>0</code> means to always send an ACK immediately and include the response in a separate CON.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value needs to be changed.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The CoAP protocol adapter can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The CoAP protocol adapter will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The protocol adapter opens a DTLS secured port if any of the following criteria are met</p>
-
<ul>
<li>The <code>HONO_COAP_KEY_STORE_PATH</code> and <code>HONO_COAP_KEY_STORE_PASSWORD</code> environment variables are set in order to load a key and certificate from a password protected key store or</li>
<li>the <code>HONO_COAP_KEY_PATH</code> and <code>HONO_COAP_CERT_PATH</code> environment variables are set in order to load a key and certificate from two separate PEM files in PKCS8 format or</li>
<li>the <code>HONO_COAP_PORT</code> environment variable is set to a valid port number.</li>
</ul>
-
<p>When starting up, the protocol adapter will bind a DTLS secured UDP socket to the configured port. If the port is not set explicitly, the default CoAP secure port 5684 is used.</p>
-
<p>The <code>HONO_COAP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only,
i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose
the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-DTLS secured port instead, e.g. for testing purposes.
In any case, the non-secure port needs to be explicitly enabled by</p>
-
<ul>
<li>explicitly setting <code>HONO_COAP_AUTHENTICATION_REQUIRED</code> to <code>false</code> and either
-
<ul>
<li>explicitly setting <code>HONO_COAP_INSECURE_PORT</code> to a valid port number or</li>
<li>implicitly configuring the default insecure CoAP port (5683) by setting <code>HONO_COAP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
-</ul></li>
</ul>
-
+</li>
+</ul>
<p>The protocol adapter issues a warning on the console if <code>HONO_COAP_INSECURE_PORT</code> is set to the default secure CoAP port (5684).</p>
-
<p>The <code>HONO_COAP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only,
i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-DTLS secured port on a local interface only, thus providing easy access from within
the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>The insecure port will only be bound if the <code>HONO_COAP_AUTHENTICATION_REQUIRED</code> variable is set to <code>false</code> because CoAP authenticates clients (devices) as
part of the DTLS handshake. Thus, requiring devices to authenticate effectively rules out setting up a non-DTLS secured port.</div>
</div>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>The protocol adapter may be configured to open both a secure and a non-secure port at the same time simply by configuring both ports as described above. For this to work,
both ports must be configured to use different port numbers, otherwise startup will fail.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The protocol adapter will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
<h2 id="authentication">Authentication</h2>
-
<p>The CoAP protocol is UDP based and as such uses the DTLS protocol to secure the communication between a client (device) and a server (adapter). The CoAP adapter also uses the DTLS handshake
to prove its identity to devices and to authenticate the devices themselves. The DTLS protocol allows for different <em>cipher suites</em> to be
-used for doing so. These suites mainly differ from each other in the type of secret being used for proving the participants’ identity to each other.
+used for doing so. These suites mainly differ from each other in the type of secret being used for proving the participants' identity to each other.
One class of suites is based on a secret that is shared between the client and the server, very much like in a username/password based authentication scheme. This class of suites
is called <em>pre-shared key</em> or PSK-based and is very popular for use cases where the devices are very constrained regarding CPU and memory. Another class of cipher suites is based
on certificates which use asymmetric encryption for proving possession of the secret (the private key). The CoAP adapter supports cipher suites from both classes but only supports
<em>elliptic curve cryptography</em> (ECC) based keys for the latter class of cipher suites.</p>
-
<p>When enabling the secure port without configuring an ECC based key and certificate, the adapter will only use PSK based cipher suites for authentication.
When configuring an ECC based key and certificate, the adapter will also offer certificate based cipher suites to the client to use for authentication.</p>
-
<p>In any case the device’s credentials need to be registered with the device registry. Please refer to the <a href="/hono/docs/1.6/api/credentials/#standard-credential-types">Standard Credential Types</a>
and the <a href="/hono/docs/1.6/api/management/">Device Registry Management API</a> for additional information.</p>
@@ -3293,19 +3282,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/command-router-config/index.html b/docs/1.6/admin-guide/command-router-config/index.html
index 994aa1e..46dbfa1 100644
--- a/docs/1.6/admin-guide/command-router-config/index.html
+++ b/docs/1.6/admin-guide/command-router-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Configuring the Command Router Service :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/command-router-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/command-router-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/command-router-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/command-router-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/command-router-config/">1.5</option>
@@ -1698,6 +1732,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/command-router-config/">dev</option>
@@ -1754,6 +1790,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1810,27 +1852,26 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#command-control-connection-configuration">Command & Control Connection Configuration</a></li>
-<li><a href="#data-grid-connection-configuration">Data Grid Connection Configuration</a>
-<ul>
-<li><a href="#remote-cache">Remote cache</a></li>
-<li><a href="#embedded-cache">Embedded cache</a></li>
-</ul></li>
-<li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#command--control-connection-configuration">Command & Control Connection Configuration</a></li>
+ <li><a href="#data-grid-connection-configuration">Data Grid Connection Configuration</a>
+ <ul>
+ <li><a href="#remote-cache">Remote cache</a></li>
+ <li><a href="#embedded-cache">Embedded cache</a></li>
+ </ul>
+ </li>
+ <li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1854,357 +1895,280 @@
-<p>The Command Router service provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/command-router/">Command Router API</a>.</p>
-
+<p>The Command Router service provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/command-router/">Command Router API</a>.</p>
<p><em>Protocol Adapters</em> use the <em>Command Router API</em> to supply information with which a Command Router service component can route command & control messages to the protocol adapters that the target devices are connected to.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Tech preview</h4>
<div>This component is not considered production ready yet. It is meant as a replacement for the component implementing the <a href="/hono/docs/1.6/api/device-connection/">Device Connection API</a>.
It can be used by configuring the <a href="/hono/docs/1.6/admin-guide/common-config/#command-router-service-connection-configuration">Command Router service connection properties</a>, instead of the Device Connection service connection properties, in the protocol adapter.</div>
</div>
-
<p>The Command Router component provides an implementation of the Command Router API which uses a remote <em>data grid</em> for storing information about device connections. The data grid can be scaled out independently from the Command Router service components to meet the storage demands at hand.</p>
-
<p>The Command Router component is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the corresponding <a href="https://hub.docker.com/r/eclipse/hono-service-command-router/">Docker image</a> created from it.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>In addition to the following options, this component supports the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the Command Router component.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of Verticle instances to deploy. If not set, one Verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of Verticle instances to deploy. If not set, one Verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_BIND_ADDRESS</code><br><code>--hono.commandRouter.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_BIND_ADDRESS</code><br><code>--hono.commandRouter.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code><br><code>--hono.commandRouter.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code><br><code>--hono.commandRouter.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code><br><code>--hono.commandRouter.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code><br><code>--hono.commandRouter.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.commandRouter.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.commandRouter.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.commandRouter.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.commandRouter.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code><br><code>--hono.commandRouter.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code><br><code>--hono.commandRouter.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.commandRouter.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.commandRouter.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code><br><code>--hono.commandRouter.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code> and <code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code><br><code>--hono.commandRouter.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code> and <code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.commandRouter.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.commandRouter.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_PORT</code><br><code>--hono.commandRouter.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_PORT</code><br><code>--hono.commandRouter.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_RECEIVER_LINK_CREDIT</code><br><code>--hono.commandRouter.amqp.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the service’s AMQP endpoint.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_RECEIVER_LINK_CREDIT</code><br><code>--hono.commandRouter.amqp.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the service’s AMQP endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.commandRouter.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.commandRouter.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Command Router component supports configuration of an AMQP based endpoint that can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The server will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The server needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>Setting the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PATH</code> and the <code>HONO_COMMANDROUTER_AMQP_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_COMMANDROUTER_AMQP_KEY_PATH</code> and <code>HONO_COMMANDROUTER_AMQP_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the server will bind a TLS secured socket to the default secure AMQP port 5671. The port number can also be set explicitly using the <code>HONO_COMMANDROUTER_AMQP_PORT</code> variable.</p>
-
<p>The <code>HONO_COMMANDROUTER_AMQP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default AMQP port (5672) by simply setting <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The server issues a warning on the console if <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT</code> is set to the default secure AMQP port (5671).</p>
-
<p>The <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>In test setups and some production scenarios Hono server may be configured to open one secure <strong>and</strong> one insecure port at the same time.</p>
-
<p>This is achieved by configuring both ports correctly (see above). The server will fail to start if both ports are configured to use the same port number.</p>
-
<p>Since the secure port may need different visibility in the network setup compared to the secure port, it has its own binding address <code>HONO_COMMANDROUTER_AMQP_INSECURE_PORT_BIND_ADDRESS</code>.
This can be used to narrow the visibility of the insecure port to a local network e.g., while the secure port may be visible worldwide.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The Command Router component will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
-<h2 id="command-control-connection-configuration">Command & Control Connection Configuration</h2>
-
+<h2 id="command--control-connection-configuration">Command & Control Connection Configuration</h2>
<p>The Command Router component requires a connection to the <em>AMQP 1.0 Messaging Network</em> in order to receive
commands from downstream applications and forward them on a specific link on which the target protocol adapter will receive them.</p>
-
<p>The connection is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
with <code>HONO_COMMAND</code> being used as <code>${PREFIX}</code>. The properties for configuring response caching can be ignored.</p>
-
<h2 id="data-grid-connection-configuration">Data Grid Connection Configuration</h2>
-
<p>The Command Router component requires either an embedded cache or a remote
data grid, using the Infinispan Hotrod protocol to store device information.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the common aspects of the service:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CACHENAME</code><br><code>--hono.commandRouter.cache.common.cacheName</code></td>
-<td align="center">no</td>
-<td align="left"><code>command-router</code></td>
-<td align="left">The name of the cache</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CACHENAME</code><br><code>--hono.commandRouter.cache.common.cacheName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>command-router</code></td>
+<td style="text-align:left">The name of the cache</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CHECKKEY</code><br><code>--hono.commandRouter.cache.common.checkKey</code></td>
-<td align="center">no</td>
-<td align="left"><code>KEY_CONNECTION_CHECK</code></td>
-<td align="left">The key used to check the health of the cache. This is only used in case of a remote cache.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CHECKKEY</code><br><code>--hono.commandRouter.cache.common.checkKey</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>KEY_CONNECTION_CHECK</code></td>
+<td style="text-align:left">The key used to check the health of the cache. This is only used in case of a remote cache.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CHECKVALUE</code><br><code>--hono.commandRouter.cache.common.checkValue</code></td>
-<td align="center">no</td>
-<td align="left"><code>VALUE_CONNECTION_CHECK</code></td>
-<td align="left">The value used to check the health of the cache. This is only used in case of a remote cache.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_COMMON_CHECKVALUE</code><br><code>--hono.commandRouter.cache.common.checkValue</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>VALUE_CONNECTION_CHECK</code></td>
+<td style="text-align:left">The value used to check the health of the cache. This is only used in case of a remote cache.</td>
</tr>
</tbody>
</table>
-
<p>The type of the cache is selected on startup by enabling or disabling the
profile <code>embedded-cache</code>. If the profile is enabled the embedded cache is
used, otherwise the remote cache is being used. The remote cache is the default.</p>
-
<h3 id="remote-cache">Remote cache</h3>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the connection to the data grid:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_SERVERLIST</code><br><code>--hono.commandRouter.cache.remote.serverList</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_SERVERLIST</code><br><code>--hono.commandRouter.cache.remote.serverList</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHSERVERNAME</code><br><code>--hono.commandRouter.cache.remote.authServerName</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHSERVERNAME</code><br><code>--hono.commandRouter.cache.remote.authServerName</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHREALM</code><br><code>--hono.commandRouter.cache.remote.authRealm</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The authentication realm for the SASL handshake when authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHREALM</code><br><code>--hono.commandRouter.cache.remote.authRealm</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The authentication realm for the SASL handshake when authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHUSERNAME</code><br><code>--hono.commandRouter.cache.remote.authUsername</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The username to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHUSERNAME</code><br><code>--hono.commandRouter.cache.remote.authUsername</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username to use for authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHPASSWORD</code><br><code>--hono.commandRouter.cache.remote.authPassword</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The password to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_REMOTE_AUTHPASSWORD</code><br><code>--hono.commandRouter.cache.remote.authPassword</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password to use for authenticating to the server.</td>
</tr>
</tbody>
</table>
-
<p>In general, the service supports all configuration properties of the <a href="https://docs.jboss.org/infinispan/10.1/apidocs/org/infinispan/client/hotrod/configuration/package-summary.html#package.description">Infinispan Hotrod client</a> using <code>hono.commandRouter.cache.remote</code> instead of the <code>infinispan.client.hotrod</code> prefix.</p>
-
<h3 id="embedded-cache">Embedded cache</h3>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the embedded cache:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_COMMANDROUTER_CACHE_EMBEDDED_CONFIGURATIONFILE</code><br><code>--hono.commandRouter.cache.embedded.configurationFile</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The absolute path to an Infinispan configuration file. Also see the <a href="https://docs.jboss.org/infinispan/10.1/configdocs/">Infinispan Configuration Schema</a>.</td>
+<td style="text-align:left"><code>HONO_COMMANDROUTER_CACHE_EMBEDDED_CONFIGURATIONFILE</code><br><code>--hono.commandRouter.cache.embedded.configurationFile</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to an Infinispan configuration file. Also see the <a href="https://docs.jboss.org/infinispan/10.1/configdocs/">Infinispan Configuration Schema</a>.</td>
</tr>
</tbody>
</table>
-
<h2 id="authentication-service-connection-configuration">Authentication Service Connection Configuration</h2>
-
<p>The Command Router component requires a connection to an implementation of Hono’s Authentication API in order to authenticate and authorize client requests.</p>
-
<p>The connection is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_AUTH</code>. Since Hono’s Authentication Service does not allow caching of the responses, the cache properties
can be ignored.</p>
-
<p>In addition to the standard client configuration properties, following properties need to be set for the connection:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the public key that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, the service falls back to the key indicated by the <code>HONO_AUTH_CERT_PATH</code> variable. If that variable is also not set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the public key that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, the service falls back to the key indicated by the <code>HONO_AUTH_CERT_PATH</code> variable. If that variable is also not set, startup of the service fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an asymmetric key pair can be used for validating (and signing) by setting the <code>HONO_AUTH_SIGNING_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an asymmetric key pair can be used for validating (and signing) by setting the <code>HONO_AUTH_SIGNING_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
</tr>
</tbody>
</table>
-
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
<footer class="footline">
@@ -3318,19 +3282,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/common-config/index.html b/docs/1.6/admin-guide/common-config/index.html
index 1416831..0fe8108 100644
--- a/docs/1.6/admin-guide/common-config/index.html
+++ b/docs/1.6/admin-guide/common-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Common Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/common-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/common-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/common-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/common-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/common-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/common-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/common-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/common-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/common-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/common-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/common-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,32 +1992,28 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#java-vm-options">Java VM Options</a></li>
-<li><a href="#vert-x-options">Vert.x Options</a>
-<ul>
-<li><a href="#using-native-transport-on-linux-macos">Using Native Transport on Linux/MacOS</a></li>
-</ul></li>
-<li><a href="#protocol-adapter-options">Protocol Adapter Options</a>
-<ul>
-<li><a href="#amqp-1-0-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</a></li>
-<li><a href="#kafka-based-messaging-configuration">Kafka based Messaging Configuration</a></li>
-<li><a href="#command-control-connection-configuration">Command & Control Connection Configuration</a></li>
-<li><a href="#tenant-service-connection-configuration">Tenant Service Connection Configuration</a></li>
-<li><a href="#device-registration-service-connection-configuration">Device Registration Service Connection Configuration</a></li>
-<li><a href="#credentials-service-connection-configuration">Credentials Service Connection Configuration</a></li>
-<li><a href="#device-connection-service-connection-configuration">Device Connection Service Connection Configuration</a>
-<ul>
-<li><a href="#direct-connection-to-data-grid">Direct Connection to Data Grid</a></li>
-</ul></li>
-<li><a href="#command-router-service-connection-configuration">Command Router Service Connection Configuration</a></li>
-<li><a href="#resource-limits-checker-configuration">Resource Limits Checker Configuration</a></li>
-<li><a href="#connection-event-producer-configuration">Connection Event Producer Configuration</a></li>
-</ul></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#java-vm-options">Java VM Options</a></li>
+ <li><a href="#vertx-options">Vert.x Options</a>
+ <ul>
+ <li><a href="#using-native-transport-on-linuxmacos">Using Native Transport on Linux/MacOS</a></li>
+ </ul>
+ </li>
+ <li><a href="#protocol-adapter-options">Protocol Adapter Options</a>
+ <ul>
+ <li><a href="#amqp-10-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</a></li>
+ <li><a href="#kafka-based-messaging-configuration">Kafka based Messaging Configuration</a></li>
+ <li><a href="#command--control-connection-configuration">Command & Control Connection Configuration</a></li>
+ <li><a href="#tenant-service-connection-configuration">Tenant Service Connection Configuration</a></li>
+ <li><a href="#device-registration-service-connection-configuration">Device Registration Service Connection Configuration</a></li>
+ <li><a href="#credentials-service-connection-configuration">Credentials Service Connection Configuration</a></li>
+ <li><a href="#device-connection-service-connection-configuration">Device Connection Service Connection Configuration</a></li>
+ <li><a href="#command-router-service-connection-configuration">Command Router Service Connection Configuration</a></li>
+ <li><a href="#resource-limits-checker-configuration">Resource Limits Checker Configuration</a></li>
+ <li><a href="#connection-event-producer-configuration">Connection Event Producer Configuration</a></li>
+ </ul>
+ </li>
+ </ul>
</nav>
</div>
</div>
@@ -1991,302 +2039,229 @@
<p>Many Hono components support a common set of configuration options. This section
describes those options.</p>
-
<p>Each component which supports the following options explicitly states so. If
it doesn’t, then these options are not supported by this component.</p>
-
<h2 id="java-vm-options">Java VM Options</h2>
-
<p>The Java VM started in Hono’s components can be configured with arbitrary command line options by means of setting the <code>JDK_JAVA_OPTIONS</code> environment variable.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>JDK_JAVA_OPTIONS</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">Any options that should be passed to the Java VM on the command line, e.g. <code>-Xmx128m</code></td>
+<td style="text-align:left"><code>JDK_JAVA_OPTIONS</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">Any options that should be passed to the Java VM on the command line, e.g. <code>-Xmx128m</code></td>
</tr>
</tbody>
</table>
-
-<h2 id="vert-x-options">Vert.x Options</h2>
-
+<h2 id="vertx-options">Vert.x Options</h2>
<p>The vert.x framework instance used to run Hono’s components on can be configured using the following environment variables or corresponding command line options:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_VERTX_DNS_QUERY_TIMEOUT</code><br><code>--hono.vertx.dnsQueryTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>5000</code></td>
-<td align="left">The amount of time (in milliseconds) after which a DNS query is considered to be failed. Setting this variable to a smaller value may help to reduce the time required to establish connections to the services this adapter depends on. However, setting it to a value that is too small for any DNS query to succeed will effectively prevent any connections to be established at all.</td>
+<td style="text-align:left"><code>HONO_VERTX_DNS_QUERY_TIMEOUT</code><br><code>--hono.vertx.dnsQueryTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5000</code></td>
+<td style="text-align:left">The amount of time (in milliseconds) after which a DNS query is considered to be failed. Setting this variable to a smaller value may help to reduce the time required to establish connections to the services this adapter depends on. However, setting it to a value that is too small for any DNS query to succeed will effectively prevent any connections to be established at all.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_VERTX_MAX_EVENT_LOOP_EXECUTE_TIME</code><br><code>--hono.vertx.maxEventLoopExecuteTime</code></td>
-<td align="center">no</td>
-<td align="left"><code>PT2S</code></td>
-<td align="left">The maximum duration that a task on the event loop may run without being considered to block the event loop. The value needs to be a string that represents an <a href="https://en.wikipedia.org/wiki/ISO_8601#Durations">ISO-8601 Duration</a>.</td>
+<td style="text-align:left"><code>HONO_VERTX_MAX_EVENT_LOOP_EXECUTE_TIME</code><br><code>--hono.vertx.maxEventLoopExecuteTime</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>PT2S</code></td>
+<td style="text-align:left">The maximum duration that a task on the event loop may run without being considered to block the event loop. The value needs to be a string that represents an <a href="https://en.wikipedia.org/wiki/ISO_8601#Durations">ISO-8601 Duration</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_VERTX_PREFER_NATIVE</code><br><code>--hono.vertx.preferNative</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">Enables/disables <em>epoll()</em> support on Linux/MacOS. See the <a href="./#epoll">notes below</a> for an explanation of the benefits of enabling <em>epoll</em>. It is generally safe to set this property to <code>true</code> because Netty will disable native transport if the platform doesn’t support it.</td>
+<td style="text-align:left"><code>HONO_VERTX_PREFER_NATIVE</code><br><code>--hono.vertx.preferNative</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">Enables/disables <em>epoll()</em> support on Linux/MacOS. See the <a href="./#epoll">notes below</a> for an explanation of the benefits of enabling <em>epoll</em>. It is generally safe to set this property to <code>true</code> because Netty will disable native transport if the platform doesn’t support it.</td>
</tr>
</tbody>
</table>
-
<p><a name="epoll"></a></p>
-
-<h3 id="using-native-transport-on-linux-macos">Using Native Transport on Linux/MacOS</h3>
-
+<h3 id="using-native-transport-on-linuxmacos">Using Native Transport on Linux/MacOS</h3>
<p>Using <code>epoll()</code> on Linux/MacOS may provide better performance for applications which
have a high I/O throughput. Especially when the application supports an
asynchronous I/O model. This is true for most Hono components and applications using Hono.</p>
-
<p>The <em>Netty</em> framework supports using <code>epoll()</code> on Linux/MacOS x86_64 based systems.</p>
-
<p>In order to use <em>epoll</em>, the <code>HONO_VERTX_PREFER_NATIVE</code> environment variable needs to be set to <code>true</code> on startup.</p>
-
<h2 id="protocol-adapter-options">Protocol Adapter Options</h2>
-
-<h3 id="amqp-1-0-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</h3>
-
+<h3 id="amqp-10-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</h3>
<p>Protocol adapters require a connection to the <em>AMQP 1.0 Messaging Network</em> in order to forward telemetry data and events received from devices to downstream consumers.</p>
-
<p>The connection to the messaging network is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
with <code>HONO_MESSAGING</code> being used as <code>${PREFIX}</code>. Since there are no responses being received, the properties for configuring response caching can be ignored.</p>
-
<h3 id="kafka-based-messaging-configuration">Kafka based Messaging Configuration</h3>
-
-<p>Alternatively, protocol adapters can be configured to publish messages to an <em>Apache Kafka® cluster</em> instead of
+<p>Alternatively, protocol adapters can be configured to publish messages to an <em>Apache Kafka® cluster</em> instead of
an AMQP Messaging Network.</p>
-
<p>The Kafka client is configured according to <a href="/hono/docs/1.6/admin-guide/hono-kafka-client-configuration/">Hono Kafka Client Configuration</a>.</p>
-
-<h3 id="command-control-connection-configuration">Command & Control Connection Configuration</h3>
-
+<h3 id="command--control-connection-configuration">Command & Control Connection Configuration</h3>
<p>Protocol adapters require an additional connection to the <em>AMQP 1.0 Messaging Network</em> in order to receive
commands from downstream applications and send responses to commands back to applications.</p>
-
<p>The connection is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
with <code>HONO_COMMAND</code> being used as <code>${PREFIX}</code>. The properties for configuring response caching can be ignored.</p>
-
<h3 id="tenant-service-connection-configuration">Tenant Service Connection Configuration</h3>
-
<p>Protocol adapters require a connection to an implementation of Hono’s <a href="/hono/docs/1.6/api/tenant/">Tenant API</a> in order to retrieve information for a tenant.</p>
-
<p>The connection to the Tenant Service is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_TENANT</code> and the additional values for response caching apply.</p>
-
<p>The adapter caches the responses from the service according to the <em>cache directive</em> included in the response.
If the response doesn’t contain a <em>cache directive</em> no data will be cached.</p>
-
<h3 id="device-registration-service-connection-configuration">Device Registration Service Connection Configuration</h3>
-
<p>Protocol adapters require a connection to an implementation of Hono’s <a href="/hono/docs/1.6/api/device-registration/">Device Registration API</a> in order to retrieve registration status assertions for connected devices.</p>
-
<p>The connection to the Device Registration Service is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_REGISTRATION</code>.</p>
-
<p>The adapter caches the responses from the service according to the <em>cache directive</em> included in the response.
If the response doesn’t contain a <em>cache directive</em> no data will be cached.</p>
-
<p>Note that the adapter uses a single cache for all responses from the service regardless of the tenant identifier.
Consequently, the Device Registration Service client configuration’s <em>responseCacheMinSize</em> and <em>responseCacheMaxSize</em> properties
determine the overall number of responses that can be cached.</p>
-
<h3 id="credentials-service-connection-configuration">Credentials Service Connection Configuration</h3>
-
<p>Protocol adapters require a connection to an implementation of Hono’s <a href="/hono/docs/1.6/api/credentials/">Credentials API</a> in order to retrieve credentials stored for devices that needs to be authenticated. During connection establishment, the adapter uses the Credentials API to retrieve the credentials on record for the device and matches that with the credentials provided by a device.</p>
-
<p>The connection to the Credentials Service is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_CREDENTIALS</code>.</p>
-
<p>The adapter caches the responses from the service according to the <em>cache directive</em> included in the response.
If the response doesn’t contain a <em>cache directive</em> no data will be cached.</p>
-
<p>Note that the adapter uses a single cache for all responses from the service regardless of the tenant identifier.
Consequently, the Credentials Service client configuration’s <em>responseCacheMinSize</em> and <em>responseCacheMaxSize</em> properties
determine the overall number of responses that can be cached.</p>
-
<p><a name="device-connection-service-connection-configuration"></a></p>
-
<h3 id="device-connection-service-connection-configuration">Device Connection Service Connection Configuration</h3>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Deprecation</h4>
<div>The Device Connection service is deprecated and will be replaced by the <a href="/hono/docs/1.6/admin-guide/command-router-config/">Command Router service</a>, implementing the <a href="/hono/docs/1.6/api/command-router/">Command Router API</a>.
For now, depending on which of these service components is used, protocol adapters may configure the use of either the Device Connection service or the Command Router service as described <a href="./#command-router-service-connection-configuration">below</a>.</div>
</div>
-
<p>Protocol adapters connect to an implementation of Hono’s <a href="/hono/docs/1.6/api/device-connection/">Device Connection API</a>
in order to determine the gateway that a device is connected via to a protocol adapter. This information is required in order to
forward commands issued by applications to the protocol adapter instance that the gateway is connected to.</p>
-
<p>The connection to the Device Connection service is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_DEVICECONNECTION</code>.</p>
-
<p>Responses from the Device Connection service are never cached, so the properties for configuring the cache are ignored.</p>
-
<h4 id="direct-connection-to-data-grid">Direct Connection to Data Grid</h4>
-
<p>Protocol adapters can alternatively be configured to directly access a data grid for storing and retrieving
device connection information using <a href="https://infinispan.org">Infinispan</a>’s Hotrod protocol.
This has the advantage of saving the network hop to the Device Connection service. However,
this is only beneficial if the Device Connection service implementation itself uses a remote service (like a data grid) for
storing the data.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring
the connection to the data grid:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_SERVER_LIST</code><br><code>--hono.deviceConnection.serverList</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_SERVER_LIST</code><br><code>--hono.deviceConnection.serverList</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AUTH_SERVER_NAME</code><br><code>--hono.deviceConnection.authServerName</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AUTH_SERVER_NAME</code><br><code>--hono.deviceConnection.authServerName</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AUTH_USERNAME</code><br><code>--hono.deviceConnection.authUsername</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The username to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AUTH_USERNAME</code><br><code>--hono.deviceConnection.authUsername</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username to use for authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AUTH_PASSWORD</code><br><code>--hono.deviceConnection.authPassword</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The password to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AUTH_PASSWORD</code><br><code>--hono.deviceConnection.authPassword</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password to use for authenticating to the server.</td>
</tr>
</tbody>
</table>
-
<p>In general, the service supports all configuration properties of the <a href="https://docs.jboss.org/infinispan/10.1/apidocs/org/infinispan/client/hotrod/configuration/package-summary.html#package.description">Infinispan Hotrod client</a> using <code>hono.deviceConnection</code> instead of the <code>infinispan.client.hotrod</code> prefix.</p>
-
<p><a name="command-router-service-connection-configuration"></a></p>
-
<h3 id="command-router-service-connection-configuration">Command Router Service Connection Configuration</h3>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>The Command Router service will replace the Device Connection service.
For now, depending on which of these service components is used, protocol adapters may configure the use of either the Device Connection service as described <a href="./#device-connection-service-connection-configuration">above</a> or the Command Router service.</div>
</div>
-
<p>Protocol adapters connect to an implementation of Hono’s <a href="/hono/docs/1.6/api/command-router/">Command Router API</a>
in order to supply information with which a Command Router service component can route command & control messages to the protocol adapters that the target devices are connected to.</p>
-
<p>The connection to the Command Router service is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_COMMANDROUTER</code>.</p>
-
<p>Responses from the Command Router service are never cached, so the properties for configuring the cache are ignored.</p>
-
<h3 id="resource-limits-checker-configuration">Resource Limits Checker Configuration</h3>
-
<p>The adapter can use metrics collected by a Prometheus server to enforce certain limits set at the tenant level like the overall number of connected devices allowed per tenant.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the checker.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_HOST</code><br><code>--hono.resourceLimits.prometheusBased.host</code></td>
-<td align="center">no</td>
-<td align="left"><code>localhost</code></td>
-<td align="left">The host name or IP address of the Prometheus server to retrieve the metrics data from. This property needs to be set in order to enable the Prometheus based checks.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_HOST</code><br><code>--hono.resourceLimits.prometheusBased.host</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>localhost</code></td>
+<td style="text-align:left">The host name or IP address of the Prometheus server to retrieve the metrics data from. This property needs to be set in order to enable the Prometheus based checks.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_PORT</code><br><code>--hono.resourceLimits.prometheusBased.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>9090</code></td>
-<td align="left">The port of the Prometheus server to retrieve metrics data from.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_PORT</code><br><code>--hono.resourceLimits.prometheusBased.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>9090</code></td>
+<td style="text-align:left">The port of the Prometheus server to retrieve metrics data from.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHEMINSIZE</code><br><code>--hono.resourceLimits.prometheusBased.cacheMinSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>20</code></td>
-<td align="left">The minimum size of the cache to store the metrics data retrieved from the Prometheus server. The cache is used for storing the current amount of data exchanged with devices of tenants.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHEMINSIZE</code><br><code>--hono.resourceLimits.prometheusBased.cacheMinSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>20</code></td>
+<td style="text-align:left">The minimum size of the cache to store the metrics data retrieved from the Prometheus server. The cache is used for storing the current amount of data exchanged with devices of tenants.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHEMAXSIZE</code><br><code>--hono.resourceLimits.prometheusBased.cacheMaxSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The maximum size of the cache to store the metrics data retrieved from the Prometheus server.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHEMAXSIZE</code><br><code>--hono.resourceLimits.prometheusBased.cacheMaxSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The maximum size of the cache to store the metrics data retrieved from the Prometheus server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHETIMEOUT</code><br><code>--hono.resourceLimits.prometheusBased.cacheTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>15</code></td>
-<td align="left">The number of seconds after which the cached metrics data should be considered invalid.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CACHETIMEOUT</code><br><code>--hono.resourceLimits.prometheusBased.cacheTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>15</code></td>
+<td style="text-align:left">The number of seconds after which the cached metrics data should be considered invalid.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_QUERYTIMEOUT</code><br><code>--hono.resourceLimits.prometheusBased.queryTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>500</code></td>
-<td align="left">The number of milliseconds after which a request to a Prometheus server is closed. Setting zero or a negative value disables the timeout.</td>
+<td style="text-align:left"><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_QUERYTIMEOUT</code><br><code>--hono.resourceLimits.prometheusBased.queryTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>500</code></td>
+<td style="text-align:left">The number of milliseconds after which a request to a Prometheus server is closed. Setting zero or a negative value disables the timeout.</td>
</tr>
</tbody>
</table>
-
<p>In addition to the properties listed above, the resource limit checker also supports the properties listed below as documented in the
<a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>. These properties might be useful if a reverse proxy in front of
the Prometheus server requires the client to use TLS and/or provide credentials for authentication.</p>
-
<ul>
<li><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_CREDENTIALSPATH</code></li>
<li><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_HOSTNAMEVERIFICATIONREQUIRED</code></li>
@@ -2300,41 +2275,34 @@
<li><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_TRUSTSTOREPASSWORD</code></li>
<li><code>HONO_RESOURCELIMITS_PROMETHEUSBASED_USERNAME</code></li>
</ul>
-
<h3 id="connection-event-producer-configuration">Connection Event Producer Configuration</h3>
-
<p>Some of the protocol adapters report the establishment and termination of a connection with a device by means of a
<a href="/hono/docs/1.6/concepts/connection-events/">Connection Event Producer</a>.</p>
-
<p>The producer being used by the adapter can be configured as follows:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_CONNECTIONEVENTS_PRODUCER</code><br><code>--hono.connectionEvents.producer</code></td>
-<td align="center">no</td>
-<td align="left"><code>logging</code></td>
-<td align="left">The type of connection event producer to use for reporting the establishment/termination of device connections. Supported values are<br><code>none</code> - No information is reported at all.<br><code>logging</code> - All information is reported at <em>INFO</em> level via the logging framework.<br><code>events</code> - All information is being sent downstream as <a href="/hono/docs/1.6/api/event/#connection-event">Connection Events</a>.</td>
+<td style="text-align:left"><code>HONO_CONNECTIONEVENTS_PRODUCER</code><br><code>--hono.connectionEvents.producer</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>logging</code></td>
+<td style="text-align:left">The type of connection event producer to use for reporting the establishment/termination of device connections. Supported values are<br><code>none</code> - No information is reported at all.<br><code>logging</code> - All information is reported at <em>INFO</em> level via the logging framework.<br><code>events</code> - All information is being sent downstream as <a href="/hono/docs/1.6/api/event/#connection-event">Connection Events</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CONNECTIONEVENTS_LOGLEVEL</code><br><code>--hono.connectionEvents.logLevel</code></td>
-<td align="center">no</td>
-<td align="left"><code>info</code></td>
-<td align="left">The level to log connection information at. Supported values are <code>debug</code> and <code>info</code>.</td>
+<td style="text-align:left"><code>HONO_CONNECTIONEVENTS_LOGLEVEL</code><br><code>--hono.connectionEvents.logLevel</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>info</code></td>
+<td style="text-align:left">The level to log connection information at. Supported values are <code>debug</code> and <code>info</code>.</td>
</tr>
</tbody>
</table>
-
<p>The <code>events</code> based connection event producer sets the TTL of event messages that it emits to the <em>max TTL</em> <a href="/hono/docs/1.6/api/tenant/#resource-limits-configuration-format">configured at the tenant level</a>.</p>
<footer class="footline">
@@ -3445,19 +3413,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/device-connection-config/index.html b/docs/1.6/admin-guide/device-connection-config/index.html
index 4b369b5..d886bd7 100644
--- a/docs/1.6/admin-guide/device-connection-config/index.html
+++ b/docs/1.6/admin-guide/device-connection-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Configuring the Device Connection Service :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/device-connection-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/device-connection-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/device-connection-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/device-connection-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/device-connection-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/device-connection-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/device-connection-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/device-connection-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/device-connection-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/device-connection-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/device-connection-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,26 +1992,25 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#data-grid-connection-configuration">Data Grid Connection Configuration</a>
-<ul>
-<li><a href="#remote-cache">Remote cache</a></li>
-<li><a href="#embedded-cache">Embedded cache</a></li>
-</ul></li>
-<li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#data-grid-connection-configuration">Data Grid Connection Configuration</a>
+ <ul>
+ <li><a href="#remote-cache">Remote cache</a></li>
+ <li><a href="#embedded-cache">Embedded cache</a></li>
+ </ul>
+ </li>
+ <li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1983,349 +2034,275 @@
-<p>The Device Connection service provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-connection/">Device Connection API</a>.</p>
-
+<p>The Device Connection service provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-connection/">Device Connection API</a>.</p>
<p>Protocol adapters use this API to store and retrieve information about the gateway that a device is using to connect to Hono’s protocol adapters. This information is necessary for routing commands to the particular protocol adapter instance that the gateway used by the device is connected to.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Deprecation</h4>
<div>The Device Connection service is deprecated and will be replaced by the <a href="/hono/docs/1.6/admin-guide/command-router-config/">Command Router service</a>, implementing the <a href="/hono/docs/1.6/api/command-router/">Command Router API</a>.
For now, either the Device Connection service or the Command Router service may be used by protocol adapters.</div>
</div>
-
<p>The Device Connection component provides a production grade implementation of the Device Connection API which uses a remote <em>data grid</em> for storing information about device connections. The data grid can be scaled out independently from the Device Connection service components to meet the storage demands at hand.</p>
-
<p>The Device Connection component is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the corresponding <a href="https://hub.docker.com/r/eclipse/hono-service-device-connection/">Docker image</a> created from it.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>In addition to the following options, this component supports the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the Device Connection component.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of Verticle instances to deploy. If not set, one Verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of Verticle instances to deploy. If not set, one Verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_BIND_ADDRESS</code><br><code>--hono.deviceConnection.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_BIND_ADDRESS</code><br><code>--hono.deviceConnection.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code><br><code>--hono.deviceConnection.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code><br><code>--hono.deviceConnection.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code><br><code>--hono.deviceConnection.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code><br><code>--hono.deviceConnection.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.deviceConnection.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.deviceConnection.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.deviceConnection.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.deviceConnection.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code><br><code>--hono.deviceConnection.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code><br><code>--hono.deviceConnection.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.deviceConnection.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.deviceConnection.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code><br><code>--hono.deviceConnection.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code> and <code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code><br><code>--hono.deviceConnection.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code> and <code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.deviceConnection.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.deviceConnection.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_PORT</code><br><code>--hono.deviceConnection.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_PORT</code><br><code>--hono.deviceConnection.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_RECEIVER_LINK_CREDIT</code><br><code>--hono.deviceConnection.amqp.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the service’s AMQP endpoint.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_RECEIVER_LINK_CREDIT</code><br><code>--hono.deviceConnection.amqp.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the service’s AMQP endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.deviceConnection.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.deviceConnection.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Device Connection component supports configuration of an AMQP based endpoint that can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The server will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The server needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>Setting the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PATH</code> and the <code>HONO_DEVICECONNECTION_AMQP_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_DEVICECONNECTION_AMQP_KEY_PATH</code> and <code>HONO_DEVICECONNECTION_AMQP_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the server will bind a TLS secured socket to the default secure AMQP port 5671. The port number can also be set explicitly using the <code>HONO_DEVICECONNECTION_AMQP_PORT</code> variable.</p>
-
<p>The <code>HONO_DEVICECONNECTION_AMQP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default AMQP port (5672) by simply setting <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The server issues a warning on the console if <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT</code> is set to the default secure AMQP port (5671).</p>
-
<p>The <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>In test setups and some production scenarios Hono server may be configured to open one secure <strong>and</strong> one insecure port at the same time.</p>
-
<p>This is achieved by configuring both ports correctly (see above). The server will fail to start if both ports are configured to use the same port number.</p>
-
<p>Since the secure port may need different visibility in the network setup compared to the secure port, it has its own binding address <code>HONO_DEVICECONNECTION_AMQP_INSECURE_PORT_BIND_ADDRESS</code>.
This can be used to narrow the visibility of the insecure port to a local network e.g., while the secure port may be visible worldwide.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The Device Connection component will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
<h2 id="data-grid-connection-configuration">Data Grid Connection Configuration</h2>
-
<p>The Device Connection component requires either an embedded cache or a remote
data grid, using the Infinispan Hotrod protocol to store device information.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the common aspects of the service:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_COMMON_CACHENAME</code><br><code>--hono.deviceConnection.common.cacheName</code></td>
-<td align="center">no</td>
-<td align="left"><code>device-connection</code></td>
-<td align="left">The name of the cache</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_COMMON_CACHENAME</code><br><code>--hono.deviceConnection.common.cacheName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>device-connection</code></td>
+<td style="text-align:left">The name of the cache</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_COMMON_CHECKKEY</code><br><code>--hono.deviceConnection.common.checkKey</code></td>
-<td align="center">no</td>
-<td align="left"><code>KEY_CONNECTION_CHECK</code></td>
-<td align="left">The key used to check the health of the cache. This is only used in case of a remote cache.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_COMMON_CHECKKEY</code><br><code>--hono.deviceConnection.common.checkKey</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>KEY_CONNECTION_CHECK</code></td>
+<td style="text-align:left">The key used to check the health of the cache. This is only used in case of a remote cache.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_COMMON_CHECKVALUE</code><br><code>--hono.deviceConnection.common.checkValue</code></td>
-<td align="center">no</td>
-<td align="left"><code>VALUE_CONNECTION_CHECK</code></td>
-<td align="left">The value used to check the health of the cache. This is only used in case of a remote cache.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_COMMON_CHECKVALUE</code><br><code>--hono.deviceConnection.common.checkValue</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>VALUE_CONNECTION_CHECK</code></td>
+<td style="text-align:left">The value used to check the health of the cache. This is only used in case of a remote cache.</td>
</tr>
</tbody>
</table>
-
<p>The type of the cache is selected on startup by enabling or disabling the
profile <code>embedded-cache</code>. If the profile is enabled the embedded cache is
used, otherwise the remote cache is being used. The remote cache is the default.</p>
-
<h3 id="remote-cache">Remote cache</h3>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the connection to the data grid:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_REMOTE_SERVERLIST</code><br><code>--hono.deviceConnection.remote.serverList</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_REMOTE_SERVERLIST</code><br><code>--hono.deviceConnection.remote.serverList</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A list of remote servers in the form: <code>host1[:port][;host2[:port]]....</code>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHSERVERNAME</code><br><code>--hono.deviceConnection.remote.authServerName</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHSERVERNAME</code><br><code>--hono.deviceConnection.remote.authServerName</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The server name to indicate in the SASL handshake when authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHREALM</code><br><code>--hono.deviceConnection.remote.authRealm</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The authentication realm for the SASL handshake when authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHREALM</code><br><code>--hono.deviceConnection.remote.authRealm</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The authentication realm for the SASL handshake when authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHUSERNAME</code><br><code>--hono.deviceConnection.remote.authUsername</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The username to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHUSERNAME</code><br><code>--hono.deviceConnection.remote.authUsername</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username to use for authenticating to the server.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHPASSWORD</code><br><code>--hono.deviceConnection.remote.authPassword</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The password to use for authenticating to the server.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_REMOTE_AUTHPASSWORD</code><br><code>--hono.deviceConnection.remote.authPassword</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password to use for authenticating to the server.</td>
</tr>
</tbody>
</table>
-
<p>In general, the service supports all configuration properties of the <a href="https://docs.jboss.org/infinispan/10.1/apidocs/org/infinispan/client/hotrod/configuration/package-summary.html#package.description">Infinispan Hotrod client</a> using <code>hono.deviceConnection.remote</code> instead of the <code>infinispan.client.hotrod</code> prefix.</p>
-
<h3 id="embedded-cache">Embedded cache</h3>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the embedded cache:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_DEVICECONNECTION_EMBEDDED_CONFIGURATIONFILE</code><br><code>--hono.deviceConnection.embedded.configurationFile</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The absolute path to an Infinispan configuration file. Also see the <a href="https://docs.jboss.org/infinispan/10.1/configdocs/">Infinispan Configuration Schema</a>.</td>
+<td style="text-align:left"><code>HONO_DEVICECONNECTION_EMBEDDED_CONFIGURATIONFILE</code><br><code>--hono.deviceConnection.embedded.configurationFile</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to an Infinispan configuration file. Also see the <a href="https://docs.jboss.org/infinispan/10.1/configdocs/">Infinispan Configuration Schema</a>.</td>
</tr>
</tbody>
</table>
-
<h2 id="authentication-service-connection-configuration">Authentication Service Connection Configuration</h2>
-
<p>The Device Connection component requires a connection to an implementation of Hono’s Authentication API in order to authenticate and authorize client requests.</p>
-
<p>The connection is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_AUTH</code>. Since Hono’s Authentication Service does not allow caching of the responses, the cache properties
can be ignored.</p>
-
<p>In addition to the standard client configuration properties, following properties need to be set for the connection:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the public key that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, the service falls back to the key indicated by the <code>HONO_AUTH_CERT_PATH</code> variable. If that variable is also not set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the public key that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, the service falls back to the key indicated by the <code>HONO_AUTH_CERT_PATH</code> variable. If that variable is also not set, startup of the service fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an asymmetric key pair can be used for validating (and signing) by setting the <code>HONO_AUTH_SIGNING_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an asymmetric key pair can be used for validating (and signing) by setting the <code>HONO_AUTH_SIGNING_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
</tr>
</tbody>
</table>
-
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
<footer class="footline">
@@ -3439,19 +3416,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/device-registry-config/index.html b/docs/1.6/admin-guide/device-registry-config/index.html
index b083e5f..2378054 100644
--- a/docs/1.6/admin-guide/device-registry-config/index.html
+++ b/docs/1.6/admin-guide/device-registry-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Device Registry Configurations :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757959" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757959" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757959" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757959" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757959"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757959"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757959"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757959"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/device-registry-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/device-registry-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/device-registry-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/device-registry-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/device-registry-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/device-registry-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/device-registry-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/device-registry-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/device-registry-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/device-registry-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/device-registry-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1939,7 +1991,7 @@
<div class="progress">
<div class="wrapper">
-
+<nav id="TableOfContents"></nav>
</div>
</div>
@@ -1962,7 +2014,7 @@
-<p>The configuration of Eclipse Hono™s Device Registry implementations for the
+<p>The configuration of Eclipse Hono™s Device Registry implementations for the
<a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">File Based Device Registry</a>
and for the
<a href="/hono/docs/1.6/admin-guide/mongodb-device-registry-config/">MongoDB Based Device Registry</a>.</p>
@@ -3075,19 +3127,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757960"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757960"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757960"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757960"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757960"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757960"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757960"></script>
- <script src="/hono/docs/js/learn.js?1617757960"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757960"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757960" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757960"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/file-based-device-registry-config/index.html b/docs/1.6/admin-guide/file-based-device-registry-config/index.html
index 1c71aff..838c507 100644
--- a/docs/1.6/admin-guide/file-based-device-registry-config/index.html
+++ b/docs/1.6/admin-guide/file-based-device-registry-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>File Based Device Registry Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/file-based-device-registry-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/file-based-device-registry-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/file-based-device-registry-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/file-based-device-registry-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/file-based-device-registry-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/file-based-device-registry-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/file-based-device-registry-config/">1.3</option>
@@ -1750,6 +1788,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/file-based-device-registry-config/">dev</option>
@@ -1806,6 +1846,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1862,25 +1908,23 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-<li><a href="#device-identities-file-format">Device Identities File Format</a></li>
-<li><a href="#credentials-file-format">Credentials File Format</a></li>
-<li><a href="#tenants-file-format">Tenants File Format</a></li>
-<li><a href="#configuring-gateway-devices">Configuring Gateway Devices</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ <li><a href="#device-identities-file-format">Device Identities File Format</a></li>
+ <li><a href="#credentials-file-format">Credentials File Format</a></li>
+ <li><a href="#tenants-file-format">Tenants File Format</a></li>
+ <li><a href="#configuring-gateway-devices">Configuring Gateway Devices</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1904,607 +1948,495 @@
-<p>The File based Device Registry component provides an exemplary implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-registration/">Device Registration</a>, <a href="/hono/docs/1.6/api/credentials/">Credentials</a>, <a href="/hono/docs/1.6/api/tenant/">Tenant</a> and <a href="/hono/docs/1.6/api/device-connection/">Device Connection</a> APIs.</p>
-
+<p>The File based Device Registry component provides an exemplary implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-registration/">Device Registration</a>, <a href="/hono/docs/1.6/api/credentials/">Credentials</a>, <a href="/hono/docs/1.6/api/tenant/">Tenant</a> and <a href="/hono/docs/1.6/api/device-connection/">Device Connection</a> APIs.</p>
<p>Protocol adapters use these APIs to determine a device’s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it.</p>
-
<p>There is no particular technical reason to implement these three APIs in one component, so for production scenarios there might be up to three different components each implementing one of the API’s.</p>
-
<p>The Device Registry component also exposes <a href="/hono/docs/1.6/api/management/">HTTP based resources</a> for managing tenants and the registration information and credentials of devices.</p>
-
<p>The Device Registry is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the corresponding <a href="https://hub.docker.com/r/eclipse/hono-service-device-registry-file/">Docker image</a> created from it.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>In addition to the following options, this component supports the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the Device Registry.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_TYPE</code><br><code>--hono.app.type</code></td>
-<td align="center">no</td>
-<td align="left"><code>file</code></td>
-<td align="left">The device registry implementation to use. This may be either <code>file</code> or <code>dummy</code>. In the case of <code>dummy</code> a dummy implementation will be used which will consider all devices queried for as valid devices, having the access credentials <code>hono-secret</code>. Of course this shouldn’t be used for productive use.</td>
+<td style="text-align:left"><code>HONO_APP_TYPE</code><br><code>--hono.app.type</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>file</code></td>
+<td style="text-align:left">The device registry implementation to use. This may be either <code>file</code> or <code>dummy</code>. In the case of <code>dummy</code> a dummy implementation will be used which will consider all devices queried for as valid devices, having the access credentials <code>hono-secret</code>. Of course this shouldn’t be used for productive use.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_CACHE_MAX_AGE</code><br><code>--hono.credentials.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_CACHE_MAX_AGE</code><br><code>--hono.credentials.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_FILENAME</code><br><code>--hono.credentials.svc.filename</code></td>
-<td align="center">no</td>
-<td align="left"><code>/var/lib/hono/device-registry/</code><br><code>credentials.json</code></td>
-<td align="left">The path to the file where the server stores credentials of devices. Hono tries to read credentials from this file during start-up and writes out all identities to this file periodically if property <code>HONO_CREDENTIALS_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#credentials-file-format">Credentials File Format</a> for details regarding the file’s format.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_FILENAME</code><br><code>--hono.credentials.svc.filename</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>/var/lib/hono/device-registry/</code><br><code>credentials.json</code></td>
+<td style="text-align:left">The path to the file where the server stores credentials of devices. Hono tries to read credentials from this file during start-up and writes out all identities to this file periodically if property <code>HONO_CREDENTIALS_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#credentials-file-format">Credentials File Format</a> for details regarding the file’s format.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_HASH_ALGORITHMS_WHITELIST</code><br><code>--hono.credentials.svc.hashAlgorithmsWhitelist</code></td>
-<td align="center">no</td>
-<td align="left"><code>empty</code></td>
-<td align="left">An array of supported hashing algorithms to be used with the <code>hashed-password</code> type of credentials. When not set, all values will be accepted.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_HASH_ALGORITHMS_WHITELIST</code><br><code>--hono.credentials.svc.hashAlgorithmsWhitelist</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>empty</code></td>
+<td style="text-align:left">An array of supported hashing algorithms to be used with the <code>hashed-password</code> type of credentials. When not set, all values will be accepted.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code><br><code>--hono.credentials.svc.maxBcryptCostFactor</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code><br><code>--hono.credentials.svc.maxBcryptCostFactor</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MAX_BCRYPT_ITERATIONS</code><br><code>--hono.credentials.svc.maxBcryptIterations</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">DEPRECATED Please use <code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code> instead.<br>The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MAX_BCRYPT_ITERATIONS</code><br><code>--hono.credentials.svc.maxBcryptIterations</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">DEPRECATED Please use <code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code> instead.<br>The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MODIFICATION_ENABLED</code><br><code>--hono.credentials.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the credentials contained in the registry cannot be updated nor removed.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MODIFICATION_ENABLED</code><br><code>--hono.credentials.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the credentials contained in the registry cannot be updated nor removed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.credentials.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Credentials endpoint.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.credentials.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Credentials endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_SAVE_TO_FILE</code><br><code>--hono.credentials.svc.saveToFile</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will periodically write out the registered credentials to the file specified by the <code>HONO_CREDENTIALS_SVC_FILENAME</code> property.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_SAVE_TO_FILE</code><br><code>--hono.credentials.svc.saveToFile</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will periodically write out the registered credentials to the file specified by the <code>HONO_CREDENTIALS_SVC_FILENAME</code> property.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_STARTEMPTY</code><br><code>--hono.credentials.svc.startEmpty</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will not try to load credentials from the file specified by the <code>HONO_CREDENTIALS_SVC_FILENAME</code> property during startup.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_STARTEMPTY</code><br><code>--hono.credentials.svc.startEmpty</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will not try to load credentials from the file specified by the <code>HONO_CREDENTIALS_SVC_FILENAME</code> property during startup.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_DEVICE_CONNECTION_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.deviceConnection.svc.maxDevicesPerTenant</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of devices per tenant for which connection related data is stored. It is an error to set this property to a value <= 0.</td>
+<td style="text-align:left"><code>HONO_DEVICE_CONNECTION_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.deviceConnection.svc.maxDevicesPerTenant</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of devices per tenant for which connection related data is stored. It is an error to set this property to a value <= 0.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code><br><code>--hono.registry.http.tenantIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
-<td align="left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code><br><code>--hono.registry.http.tenantIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code><br><code>--hono.registry.http.deviceIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
-<td align="left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code><br><code>--hono.registry.http.deviceIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default HTTP port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default HTTP port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>8443</code></td>
-<td align="left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>8443</code></td>
+<td style="text-align:left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_TENANT_ID_PATTERN</code><br><code>--hono.registry.rest.tenantIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
-<td align="left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_TENANT_ID_PATTERN</code><br><code>--hono.registry.rest.tenantIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_DEVICE_ID_PATTERN</code><br><code>--hono.registry.rest.deviceIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
-<td align="left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_DEVICE_ID_PATTERN</code><br><code>--hono.registry.rest.deviceIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_BIND_ADDRESS</code><br><code>--hono.registry.rest.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_BIND_ADDRESS</code><br><code>--hono.registry.rest.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_CERT_PATH</code><br><code>--hono.registry.rest.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_REST_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_REST_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_CERT_PATH</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_CERT_PATH</code><br><code>--hono.registry.rest.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_REST_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_REST_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_CERT_PATH</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_INSECURE_PORT</code><br><code>--hono.registry.rest.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_INSECURE_PORT</code><br><code>--hono.registry.rest.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.rest.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.rest.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.rest.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_REST_INSECURE_PORT</code> or the default HTTP port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.rest.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_REST_INSECURE_PORT</code> or the default HTTP port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_KEY_PATH</code><br><code>--hono.registry.rest.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_REST_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_REST_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_PATH</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_KEY_PATH</code><br><code>--hono.registry.rest.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_REST_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_REST_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_PATH</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_KEY_STORE_PASSWORD</code><br><code>--hono.registry.rest.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_KEY_STORE_PASSWORD</code><br><code>--hono.registry.rest.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_KEY_STORE_PATH</code><br><code>--hono.registry.rest.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_REST_KEY_PATH</code> and <code>HONO_REGISTRY_REST_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_KEY_STORE_PATH</code><br><code>--hono.registry.rest.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_REST_KEY_PATH</code> and <code>HONO_REGISTRY_REST_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_REST_PORT</code><br><code>--hono.registry.rest.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>8443</code></td>
-<td align="left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_PORT</code> instead.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_REST_PORT</code><br><code>--hono.registry.rest.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>8443</code></td>
+<td style="text-align:left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.<br><strong>Deprecated</strong> Use <code>HONO_REGISTRY_HTTP_PORT</code> instead.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_CACHE_MAX_AGE</code><br><code>--hono.registry.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_CACHE_MAX_AGE</code><br><code>--hono.registry.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_FILENAME</code><br><code>--hono.registry.svc.filename</code></td>
-<td align="center">no</td>
-<td align="left"><code>/var/lib/hono/device-registry/</code><br><code>device-identities.json</code></td>
-<td align="left">The path to the file where the server stores identities of registered devices. Hono tries to read device identities from this file during start-up and writes out all identities to this file periodically if property <code>HONO_REGISTRY_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#device-identities-file-format">Device Identities File Format</a> for details regarding the file’s format.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_FILENAME</code><br><code>--hono.registry.svc.filename</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>/var/lib/hono/device-registry/</code><br><code>device-identities.json</code></td>
+<td style="text-align:left">The path to the file where the server stores identities of registered devices. Hono tries to read device identities from this file during start-up and writes out all identities to this file periodically if property <code>HONO_REGISTRY_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#device-identities-file-format">Device Identities File Format</a> for details regarding the file’s format.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.registry.svc.maxDevicesPerTenant</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of devices that can be registered for each tenant. It is an error to set this property to a value <= 0.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.registry.svc.maxDevicesPerTenant</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of devices that can be registered for each tenant. It is an error to set this property to a value <= 0.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_MODIFICATION_ENABLED</code><br><code>--hono.registry.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the device information contained in the registry cannot be updated nor removed from the registry.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_MODIFICATION_ENABLED</code><br><code>--hono.registry.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the device information contained in the registry cannot be updated nor removed from the registry.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.registry.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Device Registration endpoint.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.registry.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Device Registration endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_SAVE_TO_FILE</code><br><code>--hono.registry.svc.saveToFile</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will periodically write out the registered device information to the file specified by the <code>HONO_REGISTRY_SVC_FILENAME</code> property.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_SAVE_TO_FILE</code><br><code>--hono.registry.svc.saveToFile</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will periodically write out the registered device information to the file specified by the <code>HONO_REGISTRY_SVC_FILENAME</code> property.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_SIGNING_KEY_PATH</code><br><code>--hono.registry.svc.signing.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for signing tokens asserting a device’s registration status. When using this variable, other services that need to validate the tokens issued by this service need to be configured with the corresponding certificate/public key. Alternatively, a symmetric key can be used for signing (and validating) by setting the <code>HONO_REGISTRY_SVC_SIGNING_SHARED_SECRET</code> variable. If none of these variables is set, the server falls back to the key indicated by the <code>HONO_REGISTRY_AMP_KEY_PATH</code> variable. If that variable is also not set, startup of the server fails.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_SIGNING_KEY_PATH</code><br><code>--hono.registry.svc.signing.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for signing tokens asserting a device’s registration status. When using this variable, other services that need to validate the tokens issued by this service need to be configured with the corresponding certificate/public key. Alternatively, a symmetric key can be used for signing (and validating) by setting the <code>HONO_REGISTRY_SVC_SIGNING_SHARED_SECRET</code> variable. If none of these variables is set, the server falls back to the key indicated by the <code>HONO_REGISTRY_AMP_KEY_PATH</code> variable. If that variable is also not set, startup of the server fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_SIGNING_SHARED_SECRET</code><br><code>--hono.registry.svc.signing.sharedSecret</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">A string to derive a symmetric key from that is used for signing tokens asserting a device’s registration status. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the signing key using this variable, other services that need to validate the tokens issued by this service need to be configured with the same key. Alternatively, an asymmetric key pair can be used for signing (and validating) by setting the <code>HONO_REGISTRY_SVC_SIGNING_KEY_PATH</code> variable. If none of these variables is set, startup of the server fails.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_SIGNING_SHARED_SECRET</code><br><code>--hono.registry.svc.signing.sharedSecret</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A string to derive a symmetric key from that is used for signing tokens asserting a device’s registration status. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the signing key using this variable, other services that need to validate the tokens issued by this service need to be configured with the same key. Alternatively, an asymmetric key pair can be used for signing (and validating) by setting the <code>HONO_REGISTRY_SVC_SIGNING_KEY_PATH</code> variable. If none of these variables is set, startup of the server fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_SIGNING_TOKEN_EXPIRATION</code><br><code>--hono.registry.svc.signing.tokenExpiration</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">The expiration period to use for the tokens asserting the registration status of devices.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_SIGNING_TOKEN_EXPIRATION</code><br><code>--hono.registry.svc.signing.tokenExpiration</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">The expiration period to use for the tokens asserting the registration status of devices.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_STARTEMPTY</code><br><code>--hono.registry.svc.startEmpty</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will not try to load device identities from the file specified by the <code>HONO_REGISTRY_SVC_FILENAME</code> property during startup.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_STARTEMPTY</code><br><code>--hono.registry.svc.startEmpty</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will not try to load device identities from the file specified by the <code>HONO_REGISTRY_SVC_FILENAME</code> property during startup.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_CACHE_MAX_AGE</code><br><code>--hono.tenant.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_CACHE_MAX_AGE</code><br><code>--hono.tenant.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_FILENAME</code><br><code>--hono.tenant.svc.filename</code></td>
-<td align="center">no</td>
-<td align="left"><code>/var/lib/hono/device-registry/</code><br><code>tenants.json</code></td>
-<td align="left">The path to the file where the server stores tenants. Hono tries to read tenants from this file during start-up and writes out all identities to this file periodically if property <code>HONO_TENANT_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#tenants-file-format">Tenants File Format</a> for details regarding the file’s format.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_FILENAME</code><br><code>--hono.tenant.svc.filename</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>/var/lib/hono/device-registry/</code><br><code>tenants.json</code></td>
+<td style="text-align:left">The path to the file where the server stores tenants. Hono tries to read tenants from this file during start-up and writes out all identities to this file periodically if property <code>HONO_TENANT_SVC_SAVE_TO_FILE</code> is set to <code>true</code>.<br>Please refer to <a href="#tenants-file-format">Tenants File Format</a> for details regarding the file’s format.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_MODIFICATION_ENABLED</code><br><code>--hono.tenant.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the tenants contained in the registry cannot be updated nor removed.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_MODIFICATION_ENABLED</code><br><code>--hono.tenant.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the tenants contained in the registry cannot be updated nor removed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.tenant.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Tenant endpoint.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.tenant.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Tenant endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_SAVE_TO_FILE</code><br><code>--hono.tenant.svc.saveToFile</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will periodically write out the registered tenants to the file specified by the <code>HONO_TENANTS_SVC_TENANT_FILENAME</code> property.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_SAVE_TO_FILE</code><br><code>--hono.tenant.svc.saveToFile</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will periodically write out the registered tenants to the file specified by the <code>HONO_TENANTS_SVC_TENANT_FILENAME</code> property.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_STARTEMPTY</code><br><code>--hono.tenant.svc.startEmpty</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">When set to <code>true</code> the server will not try to load tenants from the file specified by the <code>HONO_TENANT_SVC_FILENAME</code> property during startup.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_STARTEMPTY</code><br><code>--hono.tenant.svc.startEmpty</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">When set to <code>true</code> the server will not try to load tenants from the file specified by the <code>HONO_TENANT_SVC_FILENAME</code> property during startup.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The file based Device Registry supports configuration of both an AMQP based endpoint exposing the Tenant, Device Registration and Credentials
APIs as well as an HTTP based endpoint providing resources for managing tenants, registration information and credentials as defined by the
<a href="/hono/docs/1.6/api/management/">Registry Management API</a>. Both endpoints can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The registry will fail to start if none of the ports is configured properly.</p>
-
<p>The following sections apply to configuring both the AMQP and the HTTP endpoint. The environment variables to use for configuring
the HTTP endpoint are the same as the ones for the AMQP endpoint, substituting <code>_AMQP_</code> with <code>_HTTP_</code>, e.g. <code>HONO_REGISTRY_HTTP_KEY_PATH</code>
instead of <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The server needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>Setting the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> and the <code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code> variables in order to load the
key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> variables in order to load the key and certificate
from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the server will bind a TLS secured socket to the default secure port (<code>5671</code> for AMQP and <code>8443</code> for HTTP).
The port number can also be set explicitly using the <code>HONO_REGISTRY_AMQP_PORT</code> variable.</p>
-
<p>The <code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on.
By default, the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this
variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally
to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead,
e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default port (<code>5672</code> for AMQP and <code>8080</code> for HTTP) to be used by setting <code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code>
to <code>true</code>.</li>
</ul>
-
<p>The server issues a warning on the console if one of the insecure ports is set to the corresponding default secure port.</p>
-
<p>The <code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on.
By default, the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used
to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring
encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally
to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>In test setups and some production scenarios Hono server may be configured to open one secure <strong>and</strong> one insecure port at the same time.</p>
-
<p>This is achieved by configuring both ports correctly (see above). The server will fail to start if both ports are configured to use the same port number.</p>
-
<p>Since the secure port may need different visibility in the network setup compared to the secure port, it has its own binding address
<code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code>.
This can be used to narrow the visibility of the insecure port to a local network e.g., while the secure port may be visible worldwide.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The Device Registry will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
<h2 id="authentication-service-connection-configuration">Authentication Service Connection Configuration</h2>
-
<p>The Device Registry requires a connection to an implementation of Hono’s Authentication API in order to authenticate and authorize client requests.</p>
-
<p>The connection is configured according to <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client Configuration</a>
where the <code>${PREFIX}</code> is set to <code>HONO_AUTH</code>. Since Hono’s Authentication Service does not allow caching of the responses, the cache properties
can be ignored.</p>
-
<p>In addition to the standard client configuration properties, following properties may be set for the connection:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the an X.509 certificate that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_CERT_PATH</code><br><code>--hono.auth.validation.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the an X.509 certificate that the service should use for validating tokens issued by the Authentication service. Alternatively, a symmetric key can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_SHARED_SECRET</code> variable. If none of these variables is set, startup of the service fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an X.509 certificate can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
+<td style="text-align:left"><code>HONO_AUTH_VALIDATION_SHARED_SECRET</code><br><code>--hono.auth.validation.sharedSecret</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">A string to derive a symmetric key from which is used for validating tokens issued by the Authentication service. The key is derived from the string by using the bytes of the String’s UTF8 encoding. When setting the validation key using this variable, the Authentication service <strong>must</strong> be configured with the same key. Alternatively, an X.509 certificate can be used for validating tokens by setting the <code>HONO_AUTH_VALIDATION_CERT_PATH</code> variable. If none of these variables is set, startup of the service fails.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_AUTH_SUPPORTED_SASL_MECHANISMS</code><br><code>--hono.auth.supportedSaslMechanisms</code></td>
-<td align="center">no</td>
-<td align="left"><code>EXTERNAL, PLAIN</code></td>
-<td align="left">A (comma separated) list of the SASL mechanisms that the device registry should offer to clients for authentication. This option may be set to specify only one of <code>EXTERNAL</code> or <code>PLAIN</code>, or to use a different order.</td>
+<td style="text-align:left"><code>HONO_AUTH_SUPPORTED_SASL_MECHANISMS</code><br><code>--hono.auth.supportedSaslMechanisms</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>EXTERNAL, PLAIN</code></td>
+<td style="text-align:left">A (comma separated) list of the SASL mechanisms that the device registry should offer to clients for authentication. This option may be set to specify only one of <code>EXTERNAL</code> or <code>PLAIN</code>, or to use a different order.</td>
</tr>
</tbody>
</table>
-
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
-
<h2 id="device-identities-file-format">Device Identities File Format</h2>
-
<p>The Device Registry supports persisting the device identities and their registration information to a JSON file in the local file system.
The <em>Getting started Guide</em> includes an example configuration which illustrates the file format used. The configuration file’s location is <code>/deploy/src/main/deploy/example-device-identities.json</code>.</p>
-
<h2 id="credentials-file-format">Credentials File Format</h2>
-
-<p>The Device Registry supports persisting the devices’ credentials to a JSON file in the local file system.
+<p>The Device Registry supports persisting the devices' credentials to a JSON file in the local file system.
The <em>Getting started Guide</em> includes an example configuration which illustrates the file format used. The configuration file’s location is <code>/deploy/src/main/deploy/example-credentials.json</code>.</p>
-
<h2 id="tenants-file-format">Tenants File Format</h2>
-
<p>The Device Registry supports persisting tenants to a JSON file in the local file system.
The configuration file’s location is <code>/deploy/src/main/deploy/example-tenants.json</code>.</p>
-
<h2 id="configuring-gateway-devices">Configuring Gateway Devices</h2>
-
<p>The Device Registry supports devices to <em>act on behalf of</em> other devices. This is particularly useful for cases where a device does not connect directly to a Hono protocol adapter but is connected to a <em>gateway</em> component that is usually specific to the device’s communication protocol. It is the gateway component which then connects to a Hono protocol adapter and publishes data on behalf of the device(s). Examples of such a set up include devices using <a href="https://www.sigfox.com">SigFox</a> or <a href="https://lora-alliance.org/">LoRa</a> for communication.</p>
-
<p>In these cases the protocol adapter will authenticate the gateway component instead of the device for which it wants to publish data. In order to verify that the gateway is <em>authorized</em> to publish data on behalf of the particular device, the protocol adapter should include the gateway’s device identifier (as determined during the authentication process) in its invocation of the Device Registration API’s <em>assert Device Registration</em> operation.</p>
-
-<p>The Device Registry will then do the following:
-1. Verify that the device exists and is enabled.
-2. Verify that the gateway exists and is enabled.
-3. Verify that the device’s registration information contains a property called <code>via</code> and that its value is either the gateway’s device identifier or a JSON array which contains the gateway’s device identifier as one of its values.</p>
-
+<p>The Device Registry will then do the following:</p>
+<ol>
+<li>Verify that the device exists and is enabled.</li>
+<li>Verify that the gateway exists and is enabled.</li>
+<li>Verify that the device’s registration information contains a property called <code>via</code> and that its value is either the gateway’s device identifier or a JSON array which contains the gateway’s device identifier as one of its values.</li>
+</ol>
<p>Only if all conditions are met, the Device Registry returns an assertion of the device’s registration status. The protocol adapter can then forward the published data to the AMQP Messaging Network in the same way as for any device that connects directly to the adapter.</p>
-
<p>The example configuration file (located at <code>/deploy/src/main/deploy/example-device-identities.json</code>) includes a device and a corresponding gateway configured in this way.</p>
<footer class="footline">
@@ -3618,19 +3550,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/hono-client-configuration/index.html b/docs/1.6/admin-guide/hono-client-configuration/index.html
index d7643ed..6d67fe5 100644
--- a/docs/1.6/admin-guide/hono-client-configuration/index.html
+++ b/docs/1.6/admin-guide/hono-client-configuration/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Hono Client Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/hono-client-configuration/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/hono-client-configuration/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/hono-client-configuration/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/hono-client-configuration/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/hono-client-configuration/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/hono-client-configuration/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/hono-client-configuration/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/hono-client-configuration/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/hono-client-configuration/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,15 +1992,12 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#connection-properties">Connection Properties</a></li>
-<li><a href="#response-caching">Response Caching</a></li>
-<li><a href="#using-tls">Using TLS</a></li>
-<li><a href="#address-rewriting">Address rewriting</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#connection-properties">Connection Properties</a></li>
+ <li><a href="#response-caching">Response Caching</a></li>
+ <li><a href="#using-tls">Using TLS</a></li>
+ <li><a href="#address-rewriting">Address rewriting</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1973,261 +2022,221 @@
<p>The <code>org.eclipse.hono.client.HonoConnection</code> factory can be used to create AMQP 1.0 connections to Hono’s service components.</p>
-
<p>The factory uses environment variables and/or command line options to configure the connection to the service and the caching of
responses to service invocations. All variables used for configuring the connection factory for a particular service share a
common <em>prefix</em>. This way, multiple sets of variables can be used to configure multiple factories for connecting to different
service endpoints without interfering with each other. For example, the set of variables for configuring the connection factory
for the Device Registration service may use the common prefix <code>HONO_REGISTRATION</code> whereas the set for configuring the factory
for the Credentials service may use <code>HONO_CREDENTIALS</code>.</p>
-
<h2 id="connection-properties">Connection Properties</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring
the AMQP connection to the service.
Note that the variables map to the properties of classes <code>org.eclipse.hono.config.ClientConfigProperties</code>
and <code>org.eclipse.client.RequestResponseClientConfigProperties</code> which can be used to programmatically configure a client.</p>
-
<p>The variable names contain <code>${PREFIX}</code> as a placeholder for the particular <em>common prefix</em> being used. The <code>${prefix}</code> placeholder
used in the command line option name is the same as <code>${PREFIX}</code>, using all lower case characters and <code>.</code> instead of <code>_</code> as the
delimiter, e.g. the variable prefix <code>HONO_CREDENTIALS</code> corresponds to the command line option prefix <code>hono.credentials</code>).</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>${PREFIX}_AMQPHOSTNAME</code><br><code>--${prefix}.amqpHostname</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name to use as the <em>hostname</em> in the client’s AMQP <em>open</em> frame during connection establishment. This variable can be used to indicate the <em>virtual host</em> to connect to on the server.</td>
+<td style="text-align:left"><code>${PREFIX}_AMQPHOSTNAME</code><br><code>--${prefix}.amqpHostname</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name to use as the <em>hostname</em> in the client’s AMQP <em>open</em> frame during connection establishment. This variable can be used to indicate the <em>virtual host</em> to connect to on the server.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_CERTPATH</code><br><code>--${prefix}.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the client should use for authenticating to the server. This variable must be used in conjunction with <code>${PREFIX}_KEY_PATH</code>.<br>Alternatively, the <code>${PREFIX}_KEYSTOREPATH</code> variable can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>${PREFIX}_CERTPATH</code><br><code>--${prefix}.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the client should use for authenticating to the server. This variable must be used in conjunction with <code>${PREFIX}_KEY_PATH</code>.<br>Alternatively, the <code>${PREFIX}_KEYSTOREPATH</code> variable can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_CONNECTTIMEOUT</code><br><code>--${prefix}.connectTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>5000</code></td>
-<td align="left">The maximum amount of time (milliseconds) that the client should wait for the AMQP connection to be opened. This includes the time for TCP/TLS connection establishment, SASL handshake and exchange of the AMQP <em>open</em> frame. This property can be used to tune the time period to wait according to the network latency involved with the connection between the client and the service.</td>
+<td style="text-align:left"><code>${PREFIX}_CONNECTTIMEOUT</code><br><code>--${prefix}.connectTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5000</code></td>
+<td style="text-align:left">The maximum amount of time (milliseconds) that the client should wait for the AMQP connection to be opened. This includes the time for TCP/TLS connection establishment, SASL handshake and exchange of the AMQP <em>open</em> frame. This property can be used to tune the time period to wait according to the network latency involved with the connection between the client and the service.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_CREDENTIALSPATH</code><br><code>--${prefix}.credentialsPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to a properties file that contains a <em>username</em> and a <em>password</em> property to use for authenticating to the service.<br>This variable is an alternative to using <code>${PREFIX}_USERNAME</code> and <code>${PREFIX}_PASSWORD</code> which has the advantage of not needing to expose the secret (password) in the client process’ environment.</td>
+<td style="text-align:left"><code>${PREFIX}_CREDENTIALSPATH</code><br><code>--${prefix}.credentialsPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to a properties file that contains a <em>username</em> and a <em>password</em> property to use for authenticating to the service.<br>This variable is an alternative to using <code>${PREFIX}_USERNAME</code> and <code>${PREFIX}_PASSWORD</code> which has the advantage of not needing to expose the secret (password) in the client process' environment.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_FLOWLATENCY</code><br><code>--${prefix}.flowLatency</code></td>
-<td align="center">no</td>
-<td align="left"><code>20</code></td>
-<td align="left">The maximum amount of time (milliseconds) that the client should wait for <em>credits</em> after a link to the service has been established.</td>
+<td style="text-align:left"><code>${PREFIX}_FLOWLATENCY</code><br><code>--${prefix}.flowLatency</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>20</code></td>
+<td style="text-align:left">The maximum amount of time (milliseconds) that the client should wait for <em>credits</em> after a link to the service has been established.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_HOST</code><br><code>--${prefix}.host</code></td>
-<td align="center">no</td>
-<td align="left"><code>localhost</code></td>
-<td align="left">The IP address or name of the host to connect to. <strong>NB</strong> This needs to be set to an address that can be resolved within the network the client runs on. When running as a Docker container, use Docker’s <code>--network</code> command line option to attach the local container to the Docker network that the service is running on.</td>
+<td style="text-align:left"><code>${PREFIX}_HOST</code><br><code>--${prefix}.host</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>localhost</code></td>
+<td style="text-align:left">The IP address or name of the host to connect to. <strong>NB</strong> This needs to be set to an address that can be resolved within the network the client runs on. When running as a Docker container, use Docker’s <code>--network</code> command line option to attach the local container to the Docker network that the service is running on.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_HOSTNAMEVERIFICATIONREQUIRED</code><br><code>--${prefix}.hostnameVerificationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">A flag indicating whether the value of the <code>${PREFIX}_HOST</code> variable must match the <em>distinguished name</em> or any of the <em>alternative names</em> asserted by the server’s certificate when connecting using TLS.</td>
+<td style="text-align:left"><code>${PREFIX}_HOSTNAMEVERIFICATIONREQUIRED</code><br><code>--${prefix}.hostnameVerificationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">A flag indicating whether the value of the <code>${PREFIX}_HOST</code> variable must match the <em>distinguished name</em> or any of the <em>alternative names</em> asserted by the server’s certificate when connecting using TLS.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_IDLETIMEOUT</code><br><code>--${prefix}.idleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>16000</code></td>
-<td align="left">Sets the amount of time in milliseconds after which a connection will be closed when no frames have been received from the remote peer. This property is also used to configure a heartbeat mechanism, checking that the connection is still alive. The corresponding heartbeat interval will be set to <em>idleTimeout/2</em> ms.</td>
+<td style="text-align:left"><code>${PREFIX}_IDLETIMEOUT</code><br><code>--${prefix}.idleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>16000</code></td>
+<td style="text-align:left">Sets the amount of time in milliseconds after which a connection will be closed when no frames have been received from the remote peer. This property is also used to configure a heartbeat mechanism, checking that the connection is still alive. The corresponding heartbeat interval will be set to <em>idleTimeout/2</em> ms.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_INITIALCREDITS</code><br><code>--${prefix}.initialCredits</code></td>
-<td align="center">no</td>
-<td align="left"><code>200</code></td>
-<td align="left">The number of <em>credits</em> that a consuming client will initially issue to the service (sender) after link creation. This value effectively limits the number of messages that can be <em>in flight</em> unsettled.</td>
+<td style="text-align:left"><code>${PREFIX}_INITIALCREDITS</code><br><code>--${prefix}.initialCredits</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>200</code></td>
+<td style="text-align:left">The number of <em>credits</em> that a consuming client will initially issue to the service (sender) after link creation. This value effectively limits the number of messages that can be <em>in flight</em> unsettled.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_KEYPATH</code><br><code>--${prefix}.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the client should use for authenticating to the server. Note that the private key is not protected by a password. You should therefore make sure that the key file can only be read by the user that the client process is running under. This variable must be used in conjunction with <code>${PREFIX}_CERTPATH</code>. Alternatively, the <code>${PREFIX}_KEYSTOREPATH</code> variable can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>${PREFIX}_KEYPATH</code><br><code>--${prefix}.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the client should use for authenticating to the server. Note that the private key is not protected by a password. You should therefore make sure that the key file can only be read by the user that the client process is running under. This variable must be used in conjunction with <code>${PREFIX}_CERTPATH</code>. Alternatively, the <code>${PREFIX}_KEYSTOREPATH</code> variable can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_KEYSTOREPASSWORD</code><br><code>--${prefix}.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>${PREFIX}_KEYSTOREPASSWORD</code><br><code>--${prefix}.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_KEYSTOREPATH</code><br><code>--${prefix}.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the client should use for authenticating to the server. Either this variable or the <code>${PREFIX}_KEYPATH</code> and <code>${PREFIX}_CERTPATH</code> variables need to be set in order to enable <em>SASL External</em> based authentication to the server. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>${PREFIX}_KEYSTOREPATH</code><br><code>--${prefix}.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the client should use for authenticating to the server. Either this variable or the <code>${PREFIX}_KEYPATH</code> and <code>${PREFIX}_CERTPATH</code> variables need to be set in order to enable <em>SASL External</em> based authentication to the server. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_LINKESTABLISMENTTIMEOUT</code><br><code>--${prefix}.linkEstablishmentTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The maximum amount of time (milliseconds) that the client should wait for the service’s <em>attach</em> frame during link establishment. This property can be used to tune the time period to wait according to the network latency involved with the communication link between the client and the service.</td>
+<td style="text-align:left"><code>${PREFIX}_LINKESTABLISMENTTIMEOUT</code><br><code>--${prefix}.linkEstablishmentTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The maximum amount of time (milliseconds) that the client should wait for the service’s <em>attach</em> frame during link establishment. This property can be used to tune the time period to wait according to the network latency involved with the communication link between the client and the service.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_MAXFRAMESIZE</code><br><code>--${prefix}.maxFrameSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>-1</code></td>
-<td align="left">The maximum size (in bytes) of a single AMQP frame that the client should accept from the peer. When a peer sends a bigger frame, the connection will be closed. The default value of <code>-1</code> indicates that no limit is to be imposed.</td>
+<td style="text-align:left"><code>${PREFIX}_MAXFRAMESIZE</code><br><code>--${prefix}.maxFrameSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>-1</code></td>
+<td style="text-align:left">The maximum size (in bytes) of a single AMQP frame that the client should accept from the peer. When a peer sends a bigger frame, the connection will be closed. The default value of <code>-1</code> indicates that no limit is to be imposed.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_MAXMESSAGESIZE</code><br><code>--${prefix}.maxMessageSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>-1</code></td>
-<td align="left">The maximum size of messages (in bytes) that the client should accept from a peer. The default value of <code>-1</code> indicates that messages of any size should be accepted.</td>
+<td style="text-align:left"><code>${PREFIX}_MAXMESSAGESIZE</code><br><code>--${prefix}.maxMessageSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>-1</code></td>
+<td style="text-align:left">The maximum size of messages (in bytes) that the client should accept from a peer. The default value of <code>-1</code> indicates that messages of any size should be accepted.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_MINMESSAGESIZE</code><br><code>--${prefix}.minMessageSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The minimum <em>max-message-size</em> (in bytes) that the client requires a peer to accept. The default value of <code>0</code> indicates that no minimum size is required. Sender link establishment will fail, if the <em>max-message-size</em> conveyed by the peer in its <em>attach</em> frame is smaller than this property’s value.</td>
+<td style="text-align:left"><code>${PREFIX}_MINMESSAGESIZE</code><br><code>--${prefix}.minMessageSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The minimum <em>max-message-size</em> (in bytes) that the client requires a peer to accept. The default value of <code>0</code> indicates that no minimum size is required. Sender link establishment will fail, if the <em>max-message-size</em> conveyed by the peer in its <em>attach</em> frame is smaller than this property’s value.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_MAXSESSIONFRAMES</code><br><code>--${prefix}.maxSessionFrames</code></td>
-<td align="center">no</td>
-<td align="left"><code>-1</code></td>
-<td align="left">The maximum number of AMQP transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. The default value of <code>-1</code> indicates that no limit is to be imposed.</td>
+<td style="text-align:left"><code>${PREFIX}_MAXSESSIONFRAMES</code><br><code>--${prefix}.maxSessionFrames</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>-1</code></td>
+<td style="text-align:left">The maximum number of AMQP transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. The default value of <code>-1</code> indicates that no limit is to be imposed.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_NAME</code><br><code>--${prefix}.name</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name to use as the <em>container-id</em> in the client’s AMQP <em>open</em> frame during connection establishment.</td>
+<td style="text-align:left"><code>${PREFIX}_NAME</code><br><code>--${prefix}.name</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name to use as the <em>container-id</em> in the client’s AMQP <em>open</em> frame during connection establishment.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_PASSWORD</code><br><code>--${prefix}.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password to use for authenticating to the service.</td>
+<td style="text-align:left"><code>${PREFIX}_PASSWORD</code><br><code>--${prefix}.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password to use for authenticating to the service.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_PORT</code><br><code>--${prefix}.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The port that the service is listening on.</td>
+<td style="text-align:left"><code>${PREFIX}_PORT</code><br><code>--${prefix}.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The port that the service is listening on.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_SENDMESSAGETIMEOUT</code><br><code>--${prefix}.sendMessageTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The maximum number of milliseconds to wait for a delivery update after an event or command message was sent before the send operation is failed. Setting this value to a higher value increases the chance of successful service invocation in situations where network latency is high.</td>
+<td style="text-align:left"><code>${PREFIX}_SENDMESSAGETIMEOUT</code><br><code>--${prefix}.sendMessageTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The maximum number of milliseconds to wait for a delivery update after an event or command message was sent before the send operation is failed. Setting this value to a higher value increases the chance of successful service invocation in situations where network latency is high.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RECONNECTATTEMPTS</code><br><code>--${prefix}.reconnectAttempts</code></td>
-<td align="center">no</td>
-<td align="left"><code>-1</code></td>
-<td align="left">The number of attempts (in addition to the original connection attempt) that the client should make in order to establish an AMQP connection with the peer before giving up. The default value of this property is -1 which means that the client will try forever.</td>
+<td style="text-align:left"><code>${PREFIX}_RECONNECTATTEMPTS</code><br><code>--${prefix}.reconnectAttempts</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>-1</code></td>
+<td style="text-align:left">The number of attempts (in addition to the original connection attempt) that the client should make in order to establish an AMQP connection with the peer before giving up. The default value of this property is -1 which means that the client will try forever.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RECONNECTDELAYINCREMENT</code><br><code>--${prefix}.reconnectDelayIncrement</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The factor (milliseconds) used in the exponential backoff algorithm for determining the delay before trying to re-establish an AMQP connection with the peer. The delay after an initial, failed connection attempt will be the value of the <code>${PREFIX}_RECONNECTMINDELAY</code> variable. Each subsequent connection attempt will use a random delay between the minimum delay and the value determined by exponentially increasing the delay by the <code>${PREFIX}_RECONNECTDELAYINCREMENT</code> factor. The overall limit of the delay time is defined by the <code>${PREFIX}_RECONNECTMAXDELAY</code> variable.</td>
+<td style="text-align:left"><code>${PREFIX}_RECONNECTDELAYINCREMENT</code><br><code>--${prefix}.reconnectDelayIncrement</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The factor (milliseconds) used in the exponential backoff algorithm for determining the delay before trying to re-establish an AMQP connection with the peer. The delay after an initial, failed connection attempt will be the value of the <code>${PREFIX}_RECONNECTMINDELAY</code> variable. Each subsequent connection attempt will use a random delay between the minimum delay and the value determined by exponentially increasing the delay by the <code>${PREFIX}_RECONNECTDELAYINCREMENT</code> factor. The overall limit of the delay time is defined by the <code>${PREFIX}_RECONNECTMAXDELAY</code> variable.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RECONNECTMAXDELAY</code><br><code>--${prefix}.reconnectMaxDelay</code></td>
-<td align="center">no</td>
-<td align="left"><code>7000</code></td>
-<td align="left">The maximum number of milliseconds to wait before trying to re-establish an AMQP connection with the peer.</td>
+<td style="text-align:left"><code>${PREFIX}_RECONNECTMAXDELAY</code><br><code>--${prefix}.reconnectMaxDelay</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>7000</code></td>
+<td style="text-align:left">The maximum number of milliseconds to wait before trying to re-establish an AMQP connection with the peer.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RECONNECTMINDELAY</code><br><code>--${prefix}.reconnectMinDelay</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The minimum number of milliseconds to wait before trying to re-establish an AMQP connection with the peer.</td>
+<td style="text-align:left"><code>${PREFIX}_RECONNECTMINDELAY</code><br><code>--${prefix}.reconnectMinDelay</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The minimum number of milliseconds to wait before trying to re-establish an AMQP connection with the peer.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_REQUESTTIMEOUT</code><br><code>--${prefix}.requestTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>200</code></td>
-<td align="left">The maximum number of milliseconds to wait for a response before a service invocation is failed. Setting this value to a higher value increases the chance of successful service invocation in situations where network latency is high.</td>
+<td style="text-align:left"><code>${PREFIX}_REQUESTTIMEOUT</code><br><code>--${prefix}.requestTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>200</code></td>
+<td style="text-align:left">The maximum number of milliseconds to wait for a response before a service invocation is failed. Setting this value to a higher value increases the chance of successful service invocation in situations where network latency is high.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_SECUREPROTOCOLS</code><br><code>--${prefix}.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>${PREFIX}_SECUREPROTOCOLS</code><br><code>--${prefix}.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_TLSENABLED</code><br><code>--${prefix}.tlsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the connection to the peer will be encrypted using TLS and the peer’s identity will be verified using the JVM’s configured standard trust store.<br>This variable only needs to be set to enable TLS explicitly if no specific trust store is configured using the <code>${PREFIX}_TRUSTSTOREPATH</code> variable.</td>
+<td style="text-align:left"><code>${PREFIX}_TLSENABLED</code><br><code>--${prefix}.tlsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the connection to the peer will be encrypted using TLS and the peer’s identity will be verified using the JVM’s configured standard trust store.<br>This variable only needs to be set to enable TLS explicitly if no specific trust store is configured using the <code>${PREFIX}_TRUSTSTOREPATH</code> variable.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_TRUSTSTOREPATH</code><br><code>--${prefix}.trustStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the CA certificates the client uses for authenticating to the service. This property <strong>must</strong> be set if the service has been configured to support TLS. The key store format can be either <code>JKS</code>, <code>PKCS12</code> or <code>PEM</code> indicated by a <code>.jks</code>, <code>.p12</code> or <code>.pem</code> file suffix respectively.</td>
+<td style="text-align:left"><code>${PREFIX}_TRUSTSTOREPATH</code><br><code>--${prefix}.trustStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the CA certificates the client uses for authenticating to the service. This property <strong>must</strong> be set if the service has been configured to support TLS. The key store format can be either <code>JKS</code>, <code>PKCS12</code> or <code>PEM</code> indicated by a <code>.jks</code>, <code>.p12</code> or <code>.pem</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_TRUSTSTOREPASSWORD</code><br><code>--${prefix}.trustStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the trust store.</td>
+<td style="text-align:left"><code>${PREFIX}_TRUSTSTOREPASSWORD</code><br><code>--${prefix}.trustStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the trust store.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_USERNAME</code><br><code>--${prefix}.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The username to use for authenticating to the service. This property (and the corresponding <em>password</em>) needs to be set in order to enable <em>SASL Plain</em> based authentication to the service.</td>
+<td style="text-align:left"><code>${PREFIX}_USERNAME</code><br><code>--${prefix}.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username to use for authenticating to the service. This property (and the corresponding <em>password</em>) needs to be set in order to enable <em>SASL Plain</em> based authentication to the service.</td>
</tr>
</tbody>
</table>
-
<h2 id="response-caching">Response Caching</h2>
-
<p>The clients created by a Hono client factory support the caching of responses received in response to service invocations. Caching can greatly improve performance by preventing costly invocations of remote service operations. However, it usually only makes sense for resources that do not change too frequently. The Hono client follows the <a href="https://tools.ietf.org/html/rfc2616#section-13.4">approach to caching used in HTTP 1.1</a>. In particular, it supports <a href="https://tools.ietf.org/html/rfc2616#section-14.9"><em>cache directives</em></a> that a service includes in the response messages it sends back to the Hono client.</p>
-
<p>In order to enable caching, the <code>org.eclipse.hono.client.impl.HonoClientImpl</code> factory class needs to be configured with a cache manager using the <em>setCacheManager</em> method. Any specific client created by the factory will then cache responses to service invocations based on the following rules:</p>
-
<ol>
<li>If the response contains a <code>no-cache</code> directive, the response is not cached at all.</li>
<li>Otherwise, if the response contains a <code>max-age</code> directive, the response is cached for the number of seconds determined
@@ -2236,86 +2245,68 @@
of the codes defined in <a href="https://tools.ietf.org/html/rfc2616#section-13.4">RFC 2616, Section 13.4 Response Cacheability</a>,
the response is put to the cache using the default timeout defined by the <code>${PREFIX}_RESPONSECACHEDEFAULTTIMEOUT</code> variable as the maximum age.</li>
</ol>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the Hono client’s caching behavior.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>${PREFIX}_RESPONSECACHEMINSIZE</code><br><code>--${prefix}.responseCacheMinSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>20</code></td>
-<td align="left">The minimum number of responses that can be cached.</td>
+<td style="text-align:left"><code>${PREFIX}_RESPONSECACHEMINSIZE</code><br><code>--${prefix}.responseCacheMinSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>20</code></td>
+<td style="text-align:left">The minimum number of responses that can be cached.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RESPONSECACHEMAXSIZE</code><br><code>--${prefix}.responseCacheMaxSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The maximum number of responses that can be cached. It is up to the particular cache implementation, how to deal with new cache entries once this limit has been reached.</td>
+<td style="text-align:left"><code>${PREFIX}_RESPONSECACHEMAXSIZE</code><br><code>--${prefix}.responseCacheMaxSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The maximum number of responses that can be cached. It is up to the particular cache implementation, how to deal with new cache entries once this limit has been reached.</td>
</tr>
-
<tr>
-<td align="left"><code>${PREFIX}_RESPONSECACHEDEFAULTTIMEOUT</code><br><code>--${prefix}.responseCacheDefaultTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>600</code></td>
-<td align="left">The default number of seconds after which cached responses should be considered invalid. The value of this property serves as an upper boundary to the value conveyed in a <code>max-age</code> cache directive and is capped at <code>86400</code>, which corresponds to 24 hours.</td>
+<td style="text-align:left"><code>${PREFIX}_RESPONSECACHEDEFAULTTIMEOUT</code><br><code>--${prefix}.responseCacheDefaultTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>600</code></td>
+<td style="text-align:left">The default number of seconds after which cached responses should be considered invalid. The value of this property serves as an upper boundary to the value conveyed in a <code>max-age</code> cache directive and is capped at <code>86400</code>, which corresponds to 24 hours.</td>
</tr>
</tbody>
</table>
-
<h2 id="using-tls">Using TLS</h2>
-
<p>The factory can be configured to use TLS for</p>
-
<ul>
<li>authenticating the server during connection establishment and</li>
<li>(optionally) authenticating to the server using a client certificate (if the server supports this)</li>
</ul>
-
<p>In order to authenticate the server by means of the server’s certificate, the factory needs to be configured with a <em>trust anchor</em> containing the <em>certificate authorities</em> that the client trusts. The trust anchor can be configured explicitly by means of the <code>${PREFIX}_TRUSTSTOREPATH</code> and <code>${PREFIX}_TRUSTSTOREPASSWORD</code> variables. This is most useful in cases where the server’s certificate has not been signed by one of the public root CAs that are contained in the JRE’s standard trust store. However, if the server does use a certificate signed by such a public CA, then it is sufficient to set the <code>${PREFIX}_TLSENABLED</code> variable to <code>true</code> in order for the client to support TLS when connecting to the server.</p>
-
<p>The client can also be configured to authenticate to the server by means of an X.509 client certificate if the server is configured to support this. The <code>${PREFIX}_CERTPATH</code> and <code>${PREFIX}_KEYPATH</code> variables can be used to set the paths to PEM files containing the certificate and private key. Alternatively, the <code>${PREFIX}_KEYSTOREPATH</code> and <code>${PREFIX}_KEYSTOREPASSWORD</code> variables can be used to set the path and password of a key store which contains both the certificate as well as the private key.</p>
-
<p>The factory supports TLS 1.2 only by default for negotiating TLS sessions with servers. Additional protocols can be enabled by setting the <code>${PREFIX}_SECUREPROTOCOLS</code> variable to a comma separated list of protocol names as defined in the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a>. However, great care should be taken when enabling older protocols because most of them are vulnerable to attacks.</p>
-
<h2 id="address-rewriting">Address rewriting</h2>
-
<p>In some multi-tenant messaging environments external can have their addresses internally mapped to enforce consistent namespaces. For example, the addresses can be prefixed by the virtual host the client uses to connect or some other internal identifier. So address like <code>telemetry/DEFAULT_TENANT</code> would be internally represented as <code>test-vhost/telemetry/DEFAULT_TENANT</code> for example.</p>
-
<p>To successfully address those external clients, infrastructure Hono components need to apply the same mapping rules. The client factory can be configured to automatically rewrite addresses when opening links to the AMQP network. The <code>${PREFIX}_ADDRESSREWRITERULE</code> variable contains rewrite rule for addresses based on the regular expressions.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>${PREFIX}_ADDRESSREWRITERULE</code><br><code>--${prefix}.addressRewriteRule</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The address rewrite rule in the <code>"$PATTERN $REPLACEMENT"</code> format.</td>
+<td style="text-align:left"><code>${PREFIX}_ADDRESSREWRITERULE</code><br><code>--${prefix}.addressRewriteRule</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The address rewrite rule in the <code>"$PATTERN $REPLACEMENT"</code> format.</td>
</tr>
</tbody>
</table>
-
<p>The rule is defined in the <code>"$PATTERN $REPLACEMENT"</code> format, where the pattern and replacement use the standard <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">Java regular expression</a> syntax. The pattern should match the address or otherwise the original address will be used.</p>
-
<p>For example, setting <code>HONO_ADDRESSREWRITERULE</code> to <code>([a-z_]+)/([\\w-]+) test-vhost/$1/$2</code> would result in adding the <code>test-vhost/</code> prefix to all addresses used by the client.</p>
<footer class="footline">
@@ -3429,19 +3420,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844311"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844311"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844311"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844311"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844311"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844311"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844311"></script>
+ <script src="/hono/docs/js/learn.js?1617844311"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844311"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844311" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844311"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/hono-kafka-client-configuration/index.html b/docs/1.6/admin-guide/hono-kafka-client-configuration/index.html
index a885fb8..7a55ce0 100644
--- a/docs/1.6/admin-guide/hono-kafka-client-configuration/index.html
+++ b/docs/1.6/admin-guide/hono-kafka-client-configuration/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Hono Kafka Client Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/hono-kafka-client-configuration/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/hono-kafka-client-configuration/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/hono-kafka-client-configuration/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/hono-kafka-client-configuration/" selected>1.6</option>
@@ -1672,6 +1704,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/hono-kafka-client-configuration/">dev</option>
@@ -1728,6 +1762,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1784,24 +1824,24 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#producer-configuration-properties">Producer Configuration Properties</a>
-<ul>
-<li><a href="#using-tls">Using TLS</a></li>
-</ul></li>
-<li><a href="#consumer-configuration-properties">Consumer Configuration Properties</a>
-<ul>
-<li><a href="#using-tls-1">Using TLS</a></li>
-</ul></li>
-<li><a href="#admin-client-configuration-properties">Admin Client Configuration Properties</a>
-<ul>
-<li><a href="#using-tls-2">Using TLS</a></li>
-</ul></li>
-<li><a href="#common-configuration-properties">Common Configuration Properties</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#producer-configuration-properties">Producer Configuration Properties</a>
+ <ul>
+ <li><a href="#using-tls">Using TLS</a></li>
+ </ul>
+ </li>
+ <li><a href="#consumer-configuration-properties">Consumer Configuration Properties</a>
+ <ul>
+ <li><a href="#using-tls-1">Using TLS</a></li>
+ </ul>
+ </li>
+ <li><a href="#admin-client-configuration-properties">Admin Client Configuration Properties</a>
+ <ul>
+ <li><a href="#using-tls-2">Using TLS</a></li>
+ </ul>
+ </li>
+ <li><a href="#common-configuration-properties">Common Configuration Properties</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1825,175 +1865,134 @@
-
-
<p>Protocol adapters can be configured to use Kafka for the messaging. The Kafka client used there can be configured with
environment variables and/or command line options.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Tech preview</h4>
<div>The support of Kafka as a messaging system is currently a preview and not yet ready for production.
The implementation as well as it’s APIs may change with the next version.</div>
</div>
-
<h2 id="producer-configuration-properties">Producer Configuration Properties</h2>
-
<p>The <code>org.eclipse.hono.client.kafka.CachingKafkaProducerFactory</code> factory can be used to create Kafka producers for Hono’s Kafka based APIs.
The producers created by the factory are configured with instances of the class <code>org.eclipse.hono.client.kafka.KafkaProducerConfigProperties</code>
which can be used to programmatically configure a producer.</p>
-
<p>The configuration needs to be provided in the form <code>HONO_KAFKA_PRODUCERCONFIG_${PROPERTY}</code> as an environment variable or
as a command line option in the form <code>hono.kafka.producerConfig.${property}</code>, where <code>${PROPERTY}</code> respectively
<code>${property}</code> is any of the Kafka client’s <a href="https://kafka.apache.org/documentation/#producerconfigs">producer properties</a>.
The provided configuration is passed directly to the Kafka producer without Hono parsing or validating it.</p>
-
<p>The following properties can <em>not</em> be set using this mechanism because the protocol adapters use fixed values instead
in order to implement the message delivery semantics defined by Hono’s Telemetry and Event APIs.</p>
-
<table>
<thead>
<tr>
-<th align="left">Kafka Producer Config Property</th>
-<th align="left">Fixed Value</th>
+<th style="text-align:left">Kafka Producer Config Property</th>
+<th style="text-align:left">Fixed Value</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>key.serializer</code></td>
-<td align="left"><code>org.apache.kafka.common.serialization.StringSerializer</code></td>
+<td style="text-align:left"><code>key.serializer</code></td>
+<td style="text-align:left"><code>org.apache.kafka.common.serialization.StringSerializer</code></td>
</tr>
-
<tr>
-<td align="left"><code>value.serializer</code></td>
-<td align="left"><code>io.vertx.kafka.client.serialization.BufferSerializer</code></td>
+<td style="text-align:left"><code>value.serializer</code></td>
+<td style="text-align:left"><code>io.vertx.kafka.client.serialization.BufferSerializer</code></td>
</tr>
-
<tr>
-<td align="left"><code>enable.idempotence</code></td>
-<td align="left"><code>true</code></td>
+<td style="text-align:left"><code>enable.idempotence</code></td>
+<td style="text-align:left"><code>true</code></td>
</tr>
</tbody>
</table>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Enable Kafka based Messaging</h4>
<div>The Kafka client requires the property <code>bootstrap.servers</code> to be provided. This variable is the minimal configuration
required to enable Kafka based messaging.</div>
</div>
-
<h3 id="using-tls">Using TLS</h3>
-
<p>The factory can be configured to use TLS for</p>
-
<ul>
<li>authenticating the brokers in the Kafka cluster during connection establishment and</li>
<li>(optionally) authenticating to the broker using a client certificate</li>
</ul>
-
<p>To use this, a Kafka Producer configuration as described in
<a href="https://kafka.apache.org/documentation/#security_configclients">Kafka documentation - section “Security”</a> needs to be provided.
The properties must be prefixed with <code>HONO_KAFKA_PRODUCERCONFIG_</code> and <code>hono.kafka.producerConfig.</code> respectively as shown in
<a href="#producer-configuration-properties">Producer Configuration Properties</a>.
The complete reference of available properties and the possible values is available in
<a href="https://kafka.apache.org/documentation/#producerconfigs">Kafka documentation - section “Producer Configs”</a>.</p>
-
<h2 id="consumer-configuration-properties">Consumer Configuration Properties</h2>
-
<p>Consumers for Hono’s Kafka based APIs are configured with instances of the class <code>org.eclipse.hono.client.kafka.consumer.KafkaConsumerConfigProperties</code>
which can be used to programmatically configure a consumer.</p>
-
<p>The configuration needs to be provided in the form <code>HONO_KAFKA_CONSUMERCONFIG_${PROPERTY}</code> as an environment variable or
as a command line option in the form <code>hono.kafka.consumerConfig.${property}</code>, where <code>${PROPERTY}</code> respectively
<code>${property}</code> is any of the Kafka client’s <a href="https://kafka.apache.org/documentation/#consumerconfigs">consumer properties</a>.
The provided configuration is passed directly to the Kafka consumer without Hono parsing or validating it.</p>
-
<p>The following properties can <em>not</em> be set using this mechanism because the protocol adapters use fixed values instead.</p>
-
<table>
<thead>
<tr>
-<th align="left">Kafka Consumer Config Property</th>
-<th align="left">Fixed Value</th>
+<th style="text-align:left">Kafka Consumer Config Property</th>
+<th style="text-align:left">Fixed Value</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>key.deserializer</code></td>
-<td align="left"><code>org.apache.kafka.common.serialization.StringDeserializer</code></td>
+<td style="text-align:left"><code>key.deserializer</code></td>
+<td style="text-align:left"><code>org.apache.kafka.common.serialization.StringDeserializer</code></td>
</tr>
-
<tr>
-<td align="left"><code>value.deserializer</code></td>
-<td align="left"><code>io.vertx.kafka.client.serialization.BufferDeserializer</code></td>
+<td style="text-align:left"><code>value.deserializer</code></td>
+<td style="text-align:left"><code>io.vertx.kafka.client.serialization.BufferDeserializer</code></td>
</tr>
</tbody>
</table>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Enable Kafka based Messaging</h4>
<div>The Kafka client requires the property <code>bootstrap.servers</code> to be provided. This variable is the minimal configuration
required to enable Kafka based messaging.</div>
</div>
-
<h3 id="using-tls-1">Using TLS</h3>
-
<p>The factory can be configured to use TLS for</p>
-
<ul>
<li>authenticating the brokers in the Kafka cluster during connection establishment and</li>
<li>(optionally) authenticating to the broker using a client certificate</li>
</ul>
-
<p>To use this, a Kafka Consumer configuration as described in
<a href="https://kafka.apache.org/documentation/#security_configclients">Kafka documentation - section “Security”</a> needs to be provided.
The properties must be prefixed with <code>HONO_KAFKA_CONSUMERCONFIG_</code> and <code>hono.kafka.consumerConfig.</code> respectively as shown in
<a href="#consumer-configuration-properties">Consumer Configuration Properties</a>.
The complete reference of available properties and the possible values is available in
<a href="https://kafka.apache.org/documentation/#consumerconfigs">Kafka documentation - section “Consumer Configs”</a>.</p>
-
<h2 id="admin-client-configuration-properties">Admin Client Configuration Properties</h2>
-
<p>Admin clients for Hono’s Kafka based APIs are configured with instances of the class <code>org.eclipse.hono.client.kafka.KafkaAdminClientConfigProperties</code>
which can be used to programmatically configure an admin client.</p>
-
<p>The configuration needs to be provided in the form <code>HONO_KAFKA_ADMINCLIENTCONFIG_${PROPERTY}</code> as an environment variable or
as a command line option in the form <code>hono.kafka.adminClientConfig.${property}</code>, where <code>${PROPERTY}</code> respectively
<code>${property}</code> is any of the Kafka client’s <a href="https://kafka.apache.org/documentation/#adminclientconfigs">admin client properties</a>.
The provided configuration is passed directly to the Kafka admin client without Hono parsing or validating it.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Enable Kafka based Messaging</h4>
<div>The Kafka client requires the property <code>bootstrap.servers</code> to be provided. This variable is the minimal configuration
required to enable Kafka based messaging.</div>
</div>
-
<h3 id="using-tls-2">Using TLS</h3>
-
<p>The factory can be configured to use TLS for</p>
-
<ul>
<li>authenticating the brokers in the Kafka cluster during connection establishment and</li>
<li>(optionally) authenticating to the broker using a client certificate</li>
</ul>
-
<p>To use this, a Kafka admin client configuration as described in
<a href="https://kafka.apache.org/documentation/#security_configclients">Kafka documentation - section “Security”</a> needs to be provided.
The properties must be prefixed with <code>HONO_KAFKA_ADMINCLIENTCONFIG_</code> and <code>hono.kafka.adminClientConfig.</code> respectively as shown in
<a href="#admin-client-configuration-properties">Admin Client Configuration Properties</a>.
The complete reference of available properties and the possible values is available in
<a href="https://kafka.apache.org/documentation/#adminclientconfigs">Kafka documentation - section “Admin Configs”</a>.</p>
-
<h2 id="common-configuration-properties">Common Configuration Properties</h2>
-
<p>Configuration properties that are common to all the client types described above can be put in a common configuration section.
This will avoid having to define duplicate configuration properties for the different client types.</p>
-
<p>Relevant properties are <code>bootstrap.servers</code> and the properties related to the TLS configuration (see chapters above).</p>
-
<p>The properties must be prefixed with <code>HONO_KAFKA_COMMONCLIENTCONFIG_</code> and <code>hono.kafka.commonClientConfig.</code> respectively.</p>
-
<p>A property with the same name defined in the configuration of one of the specific client types above will have precedence
over the common property.</p>
@@ -3109,19 +3108,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/http-adapter-config/index.html b/docs/1.6/admin-guide/http-adapter-config/index.html
index c3b70c5..b4b562d 100644
--- a/docs/1.6/admin-guide/http-adapter-config/index.html
+++ b/docs/1.6/admin-guide/http-adapter-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>HTTP Adapter Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/http-adapter-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/http-adapter-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/http-adapter-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/http-adapter-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/http-adapter-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/http-adapter-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/http-adapter-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/http-adapter-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/http-adapter-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/http-adapter-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/http-adapter-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,19 +1992,17 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ </ul>
</nav>
</div>
</div>
@@ -1976,213 +2026,168 @@
-<p>The HTTP protocol adapter exposes HTTP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
-
+<p>The HTTP protocol adapter exposes HTTP based endpoints for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
<p>The adapter is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the
corresponding <a href="https://hub.docker.com/r/eclipse/hono-adapter-http-vertx/">Docker image</a> created from it.</p>
-
<p>The adapter supports the following standard configuration options:</p>
-
<ul>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#java-vm-options">Common Java VM Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#vert-x-options">Common vert.x Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#protocol-adapter-options">Common Protocol Adapter Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring Options</a></li>
</ul>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the HTTP adapter.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.http.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
+<td style="text-align:left"><code>HONO_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.http.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_BIND_ADDRESS</code><br><code>--hono.http.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_HTTP_BIND_ADDRESS</code><br><code>--hono.http.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_CERT_PATH</code><br><code>--hono.http.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_HTTP_CERT_PATH</code><br><code>--hono.http.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_DEFAULTS_ENABLED</code><br><code>--hono.http.defaultsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
+<td style="text-align:left"><code>HONO_HTTP_DEFAULTS_ENABLED</code><br><code>--hono.http.defaultsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_INSECURE_PORT</code><br><code>--hono.http.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_HTTP_INSECURE_PORT</code><br><code>--hono.http.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.http.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.http.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.http.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_HTTP_INSECURE_PORT</code> or the default port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.http.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_HTTP_INSECURE_PORT</code> or the default port number (<code>8080</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_KEY_PATH</code><br><code>--hono.http.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_HTTP_KEY_PATH</code><br><code>--hono.http.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.http.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.http.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_KEY_STORE_PATH</code><br><code>--hono.http.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_HTTP_KEY_PATH</code> and <code>HONO_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_HTTP_KEY_STORE_PATH</code><br><code>--hono.http.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_HTTP_KEY_PATH</code> and <code>HONO_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_SNI</code><br><code>--hono.http.sni</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_HTTP_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_HTTP_SNI</code><br><code>--hono.http.sni</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_HTTP_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_NATIVE_TLS_REQUIRED</code><br><code>--hono.http.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_HTTP_NATIVE_TLS_REQUIRED</code><br><code>--hono.http.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_MAX_PAYLOAD_SIZE</code><br><code>--hono.http.maxPayloadSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>2048</code></td>
-<td align="left">The maximum allowed size of an incoming HTTP request’s body in bytes. Requests with a larger body size are rejected with a 413 <code>Request entity too large</code> response.</td>
+<td style="text-align:left"><code>HONO_HTTP_MAX_PAYLOAD_SIZE</code><br><code>--hono.http.maxPayloadSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>2048</code></td>
+<td style="text-align:left">The maximum allowed size of an incoming HTTP request’s body in bytes. Requests with a larger body size are rejected with a 413 <code>Request entity too large</code> response.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_PORT</code><br><code>--hono.http.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>8443</code></td>
-<td align="left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_HTTP_PORT</code><br><code>--hono.http.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>8443</code></td>
+<td style="text-align:left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_REALM</code><br><code>--hono.http.realm</code></td>
-<td align="center">no</td>
-<td align="left"><code>Hono</code></td>
-<td align="left">The name of the <em>realm</em> that unauthenticated devices are prompted to provide credentials for. The realm is used in the <em>WWW-Authenticate</em> header returned to devices in response to unauthenticated requests.</td>
+<td style="text-align:left"><code>HONO_HTTP_REALM</code><br><code>--hono.http.realm</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>Hono</code></td>
+<td style="text-align:left">The name of the <em>realm</em> that unauthenticated devices are prompted to provide credentials for. The realm is used in the <em>WWW-Authenticate</em> header returned to devices in response to unauthenticated requests.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_SECURE_PROTOCOLS</code><br><code>--hono.http.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_HTTP_SECURE_PROTOCOLS</code><br><code>--hono.http.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HTTP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.http.tenantIdleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>0ms</code></td>
-<td align="left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
+<td style="text-align:left"><code>HONO_HTTP_TENANT_IDLE_TIMEOUT</code><br><code>--hono.http.tenantIdleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0ms</code></td>
+<td style="text-align:left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The HTTP protocol adapter can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The HTTP protocol adapter will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The protocol adapter needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>Setting the <code>HONO_HTTP_KEY_STORE_PATH</code> and the <code>HONO_HTTP_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_HTTP_KEY_PATH</code> and <code>HONO_HTTP_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the protocol adapter will bind a TLS secured socket to the default secure port 8443. The port number can also be set explicitly using the <code>HONO_HTTP_PORT</code> variable.</p>
-
<p>The <code>HONO_HTTP_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_HTTP_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default port (8080) by simply setting <code>HONO_HTTP_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The protocol adapter issues a warning on the console if <code>HONO_HTTP_INSECURE_PORT</code> is set to the default secure HTTP port (8443).</p>
-
<p>The <code>HONO_HTTP_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>The protocol adapter may be configured to open both a secure and a non-secure port at the same time simply by configuring both ports as described above. For this to work, both ports must be configured to use different port numbers, otherwise startup will fail.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The protocol adapter will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
<footer class="footline">
@@ -3296,19 +3301,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/index.html b/docs/1.6/admin-guide/index.html
index 09df973..4da21d1 100644
--- a/docs/1.6/admin-guide/index.html
+++ b/docs/1.6/admin-guide/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Admin Guide :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844312" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844312" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844312" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844312" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757957"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844312"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757957"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844312"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844312"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844312"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1945,11 +1997,8 @@
-
-
-<h1 id="admin-guide">Admin Guide</h1>
-
-<p>Learn how to operate Eclipse Hono™ and look up the configuration options of its components.</p>
+ <h1 id="admin-guide">Admin Guide</h1>
+<p>Learn how to operate Eclipse Hono™ and look up the configuration options of its components.</p>
@@ -3064,19 +3113,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844313"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844313"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844313"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844313"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844313"></script>
+ <script src="/hono/docs/js/learn.js?1617844313"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844313"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844313" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844313"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/index.xml b/docs/1.6/admin-guide/index.xml
index dd81276..f28e7b7 100644
--- a/docs/1.6/admin-guide/index.xml
+++ b/docs/1.6/admin-guide/index.xml
@@ -1,15 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Admin Guide on Eclipse Hono&trade; Vers.: 1.6</title>
<link>https://www.eclipse.org/hono/docs/1.6/admin-guide/</link>
<description>Recent content in Admin Guide on Eclipse Hono&trade; Vers.: 1.6</description>
<generator>Hugo -- gohugo.io</generator>
- <language>en-us</language>
-
- <atom:link href="https://www.eclipse.org/hono/docs/1.6/admin-guide/index.xml" rel="self" type="application/rss+xml" />
-
-
+ <language>en-us</language><atom:link href="https://www.eclipse.org/hono/docs/1.6/admin-guide/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Common Configuration</title>
<link>https://www.eclipse.org/hono/docs/1.6/admin-guide/common-config/</link>
@@ -26,7 +22,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/auth-server-config/</guid>
- <description><p>The Auth Server component exposes a service endpoint implementing Eclipse Hono&trade;&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/authentication/">Authentication</a> API. Other services use this component for authenticating clients and retrieving a token asserting the client&rsquo;s identity and corresponding authorities.</p></description>
+ <description><p>The Auth Server component exposes a service endpoint implementing Eclipse Hono™&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/authentication/">Authentication</a> API. Other services use this component for authenticating clients and retrieving a token asserting the client&rsquo;s identity and corresponding authorities.</p></description>
</item>
<item>
@@ -35,7 +31,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/mongodb-device-registry-config/</guid>
- <description>The MongoDB based Device Registry component provides an implementation of Eclipse Hono&trade;&rsquo;s Device Registration, Credentials and Tenant APIs. Protocol adapters use these APIs to determine a device&rsquo;s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it. In addition to the above, this Device Registry also provides an implementation of Device Registry Management APIs for managing tenants, registration information and credentials of devices.</description>
+ <description>The MongoDB based Device Registry component provides an implementation of Eclipse Hono™&rsquo;s Device Registration, Credentials and Tenant APIs. Protocol adapters use these APIs to determine a device&rsquo;s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it. In addition to the above, this Device Registry also provides an implementation of Device Registry Management APIs for managing tenants, registration information and credentials of devices.</description>
</item>
<item>
@@ -44,7 +40,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/jdbc-device-registry-config/</guid>
- <description>The JDBC based Device Registry components provides an implementation of Eclipse Hono™&rsquo;s Device Registration, Credentials and Tenant APIs. Protocol adapters use these APIs to determine a device&rsquo;s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it. In addition to the above, this Device Registry also provides an implementation of Device Registry Management APIs for managing tenants, registration information and credentials of devices.</description>
+ <description>The JDBC based Device Registry components provides an implementation of Eclipse Hono™'s Device Registration, Credentials and Tenant APIs. Protocol adapters use these APIs to determine a device&rsquo;s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it. In addition to the above, this Device Registry also provides an implementation of Device Registry Management APIs for managing tenants, registration information and credentials of devices.</description>
</item>
<item>
@@ -53,8 +49,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/file-based-device-registry-config/</guid>
- <description><p>The File based Device Registry component provides an exemplary implementation of Eclipse Hono&trade;&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-registration/">Device Registration</a>, <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/credentials/">Credentials</a>, <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/tenant/">Tenant</a> and <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-connection/">Device Connection</a> APIs.</p>
-
+ <description><p>The File based Device Registry component provides an exemplary implementation of Eclipse Hono™&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-registration/">Device Registration</a>, <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/credentials/">Credentials</a>, <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/tenant/">Tenant</a> and <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-connection/">Device Connection</a> APIs.</p>
<p>Protocol adapters use these APIs to determine a device&rsquo;s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it.</p></description>
</item>
@@ -64,8 +59,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/command-router-config/</guid>
- <description><p>The Command Router service provides an implementation of Eclipse Hono&trade;&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/command-router/">Command Router API</a>.</p>
-
+ <description><p>The Command Router service provides an implementation of Eclipse Hono™&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/command-router/">Command Router API</a>.</p>
<p><em>Protocol Adapters</em> use the <em>Command Router API</em> to supply information with which a Command Router service component can route command &amp; control messages to the protocol adapters that the target devices are connected to.</p></description>
</item>
@@ -75,8 +69,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/device-connection-config/</guid>
- <description><p>The Device Connection service provides an implementation of Eclipse Hono&trade;&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-connection/">Device Connection API</a>.</p>
-
+ <description><p>The Device Connection service provides an implementation of Eclipse Hono™&rsquo;s <a href="https://www.eclipse.org/hono/docs/hono/docs/1.6/api/device-connection/">Device Connection API</a>.</p>
<p>Protocol adapters use this API to store and retrieve information about the gateway that a device is using to connect to Hono&rsquo;s protocol adapters. This information is necessary for routing commands to the particular protocol adapter instance that the gateway used by the device is connected to.</p></description>
</item>
@@ -86,7 +79,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/http-adapter-config/</guid>
- <description><p>The HTTP protocol adapter exposes HTTP based endpoints for Eclipse Hono&trade;&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
+ <description><p>The HTTP protocol adapter exposes HTTP based endpoints for Eclipse Hono™&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
</item>
<item>
@@ -95,7 +88,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/mqtt-adapter-config/</guid>
- <description><p>The MQTT protocol adapter exposes an MQTT topic hierarchy for Eclipse Hono&trade;&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
+ <description><p>The MQTT protocol adapter exposes an MQTT topic hierarchy for Eclipse Hono™&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
</item>
<item>
@@ -104,7 +97,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/amqp-adapter-config/</guid>
- <description><p>The AMQP protocol adapter exposes AMQP based endpoints for Eclipse Hono&trade;&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
+ <description><p>The AMQP protocol adapter exposes AMQP based endpoints for Eclipse Hono™&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
</item>
<item>
@@ -113,7 +106,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/coap-adapter-config/</guid>
- <description><p>The CoAP protocol adapter exposes CoAP based endpoints for Eclipse Hono&trade;&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
+ <description><p>The CoAP protocol adapter exposes CoAP based endpoints for Eclipse Hono™&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
</item>
<item>
@@ -122,7 +115,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/kura-adapter-config/</guid>
- <description><p>The Kura protocol adapter exposes an MQTT topic hierarchy allowing Eclipse Kura&trade; based gateways to access Eclipse Hono&trade;&rsquo;s
+ <description><p>The Kura protocol adapter exposes an MQTT topic hierarchy allowing Eclipse Kura™ based gateways to access Eclipse Hono™&rsquo;s
south bound Telemetry, Event and Command &amp; Control APIs.</p></description>
</item>
@@ -160,7 +153,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/secure_communication/</guid>
- <description><p>The individual components of an Eclipse Hono&trade; installation, e.g. the protocol adapters, <em>AMQP Messaging Network</em>, <em>Hono Auth</em> etc., and the clients attaching to Hono in order to send and receive data all communicate with each other using AMQP 1.0 over TCP. The Hono components and the clients will usually not be located on the same local network but will probably communicate over public networking infrastructure. For most use cases it is therefore desirable, if not necessary, to provide for confidentiality of the data being transferred between these components. This section describes how Hono supports confidentiality by means of <em>Transport Layer Security</em> (TLS) and how to configure it.</p></description>
+ <description><p>The individual components of an Eclipse Hono™ installation, e.g. the protocol adapters, <em>AMQP Messaging Network</em>, <em>Hono Auth</em> etc., and the clients attaching to Hono in order to send and receive data all communicate with each other using AMQP 1.0 over TCP. The Hono components and the clients will usually not be located on the same local network but will probably communicate over public networking infrastructure. For most use cases it is therefore desirable, if not necessary, to provide for confidentiality of the data being transferred between these components. This section describes how Hono supports confidentiality by means of <em>Transport Layer Security</em> (TLS) and how to configure it.</p></description>
</item>
<item>
@@ -169,7 +162,7 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/monitoring-tracing-config/</guid>
- <description><p>The individual components of an Eclipse Hono&trade; installation need to work together in order to provide their functionality to devices and applications. Under normal circumstances these interactions work flawlessly. However, due to the nature of distributed systems, any one (or more) of the components may crash or become otherwise unavailable due to arbitrary reasons. This page describes how Hono supports operations teams by providing insights into the individual service components and their interactions with each other by means of reporting metrics and tracing the processing of individual messages through the system.</p></description>
+ <description><p>The individual components of an Eclipse Hono™ installation need to work together in order to provide their functionality to devices and applications. Under normal circumstances these interactions work flawlessly. However, due to the nature of distributed systems, any one (or more) of the components may crash or become otherwise unavailable due to arbitrary reasons. This page describes how Hono supports operations teams by providing insights into the individual service components and their interactions with each other by means of reporting metrics and tracing the processing of individual messages through the system.</p></description>
</item>
<item>
@@ -178,8 +171,8 @@
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://www.eclipse.org/hono/docs/1.6/admin-guide/device-registry-config/</guid>
- <description>The configuration of Eclipse Hono&trade;s Device Registry implementations for the File Based Device Registry and for the MongoDB Based Device Registry.</description>
+ <description>The configuration of Eclipse Hono™s Device Registry implementations for the File Based Device Registry and for the MongoDB Based Device Registry.</description>
</item>
</channel>
-</rss>
\ No newline at end of file
+</rss>
diff --git a/docs/1.6/admin-guide/jdbc-device-registry-config/index.html b/docs/1.6/admin-guide/jdbc-device-registry-config/index.html
index ce2ba52..5851333 100644
--- a/docs/1.6/admin-guide/jdbc-device-registry-config/index.html
+++ b/docs/1.6/admin-guide/jdbc-device-registry-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>JDBC Based Device Registry Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/jdbc-device-registry-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/jdbc-device-registry-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/jdbc-device-registry-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/jdbc-device-registry-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/jdbc-device-registry-config/">1.5</option>
@@ -1698,6 +1732,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/jdbc-device-registry-config/">dev</option>
@@ -1754,6 +1790,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1810,15 +1852,12 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a></li>
-<li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a></li>
+ <li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1842,447 +1881,376 @@
-
-
-<p>The JDBC based Device Registry components provides an implementation of Eclipse Hono™’s
+<p>The JDBC based Device Registry components provides an implementation of Eclipse Hono™'s
<a href="/hono/docs/1.6/api/device-registration/">Device Registration</a>, <a href="/hono/docs/1.6/api/credentials/">Credentials</a>
and <a href="/hono/docs/1.6/api/tenant/">Tenant</a> APIs. Protocol adapters use these APIs to determine a device’s registration
status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before
accepting any data for processing from it. In addition to the above, this Device Registry also provides an
implementation of <a href="/hono/docs/1.6/api/management/">Device Registry Management APIs</a> for managing tenants,
registration information and credentials of devices.</p>
-
<p>The application is implemented as a Spring Boot application, and it uses a JDBC compliant database to persist data. In
provides the following features:</p>
-
<ul>
<li>Run only the registration and credentials service, or run including the tenant service.</li>
<li>By default, supports H2 and PostgreSQL</li>
<li>Supports different JDBC connections for read-only and read-write operations, to support read-only replicas</li>
</ul>
-
<p><strong>Note:</strong> The provided container images contains only the H2 and PostgreSQL configuration and JDBC driver. While it is
possible to use other JDBC compliant databases, database specific configuration and JDBC driver have to be provided
by the user.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for
configuring the JDBC based Device Registry. In addition to the following options, this component also supports
the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<p>The configuration uses the section <code>ADAPTER</code> for configurations of the <em>protocol adapter facing</em> services, and the
section <code>MANAGEMENT</code> for <em>management facing</em> services. As adapters only require read-only operations, this can be
used to direct adapters to services instances, which are backed by read-only replicas. Which can improve performance
and availability.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_URL</code> <br> <code>--hono.registry.jdbc.adapter.url</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The JDBC URL to the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_URL</code> <br> <code>--hono.registry.jdbc.adapter.url</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The JDBC URL to the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_DRIVERCLASS</code> <br> <code>--hono.registry.jdbc.adapter.driverClass</code></td>
-<td align="center">no</td>
-<td align="left">The default driver registered for the JDBC URL.</td>
-<td align="left">The class name of the JDBC driver.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_DRIVERCLASS</code> <br> <code>--hono.registry.jdbc.adapter.driverClass</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">The default driver registered for the JDBC URL.</td>
+<td style="text-align:left">The class name of the JDBC driver.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_USERNAME</code> <br> <code>--hono.registry.jdbc.adapter.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The username used to access the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_USERNAME</code> <br> <code>--hono.registry.jdbc.adapter.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_PASSWORD</code> <br> <code>--hono.registry.jdbc.adapter.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password used to access the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_PASSWORD</code> <br> <code>--hono.registry.jdbc.adapter.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_MAXIMUMPOOLSIZE</code> <br> <code>--hono.registry.jdbc.adapter.maximumPoolSize</code></td>
-<td align="center">no</td>
-<td align="left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
-<td align="left">The maximum size of the connection pool.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_MAXIMUMPOOLSIZE</code> <br> <code>--hono.registry.jdbc.adapter.maximumPoolSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
+<td style="text-align:left">The maximum size of the connection pool.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_ADAPTER_TABLENAME</code> <br> <code>--hono.registry.jdbc.adapter.tableName</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_ADAPTER_TABLENAME</code> <br> <code>--hono.registry.jdbc.adapter.tableName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_URL</code> <br> <code>--hono.registry.jdbc.management.url</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The JDBC URL to the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_URL</code> <br> <code>--hono.registry.jdbc.management.url</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The JDBC URL to the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_DRIVERCLASS</code> <br> <code>--hono.registry.jdbc.management.driverClass</code></td>
-<td align="center">no</td>
-<td align="left">The default driver registered for the JDBC URL.</td>
-<td align="left">The class name of the JDBC driver.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_DRIVERCLASS</code> <br> <code>--hono.registry.jdbc.management.driverClass</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">The default driver registered for the JDBC URL.</td>
+<td style="text-align:left">The class name of the JDBC driver.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_USERNAME</code> <br> <code>--hono.registry.jdbc.management.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The username used to access the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_USERNAME</code> <br> <code>--hono.registry.jdbc.management.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_PASSWORD</code> <br> <code>--hono.registry.jdbc.management.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password used to access the database.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_PASSWORD</code> <br> <code>--hono.registry.jdbc.management.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_MAXIMUMPOOLSIZE</code> <br> <code>--hono.registry.jdbc.management.maximumPoolSize</code></td>
-<td align="center">no</td>
-<td align="left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
-<td align="left">The maximum size of the connection pool.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_MAXIMUMPOOLSIZE</code> <br> <code>--hono.registry.jdbc.management.maximumPoolSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
+<td style="text-align:left">The maximum size of the connection pool.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_TABLENAME</code> <br> <code>--hono.registry.jdbc.management</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_JDBC_MANAGEMENT_TABLENAME</code> <br> <code>--hono.registry.jdbc.management</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_TASKEXECUTORQUEUESIZE</code> <br> <code>--hono.registry.svc.taskExecutorQueueSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>1024</code></td>
-<td align="left">The size of the executor queue for hashing passwords.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_TASKEXECUTORQUEUESIZE</code> <br> <code>--hono.registry.svc.taskExecutorQueueSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1024</code></td>
+<td style="text-align:left">The size of the executor queue for hashing passwords.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_CREDENTIALSTTL</code> <br> <code>--hono.registry.svc.credentialsTtl</code></td>
-<td align="center">no</td>
-<td align="left"><code>1m</code></td>
-<td align="left">The TTL for credentials responses.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_CREDENTIALSTTL</code> <br> <code>--hono.registry.svc.credentialsTtl</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1m</code></td>
+<td style="text-align:left">The TTL for credentials responses.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_REGISTRATIONTTL</code> <br> <code>--hono.registry.svc.registrationTtl</code></td>
-<td align="center">no</td>
-<td align="left"><code>1m</code></td>
-<td align="left">The TTL for registrations responses.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_REGISTRATIONTTL</code> <br> <code>--hono.registry.svc.registrationTtl</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1m</code></td>
+<td style="text-align:left">The TTL for registrations responses.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_MAXBCRYPTITERATIONS</code> <br> <code>--hono.registry.svc.maxBcryptIterations</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">The maximum number of allowed bcrypt iterations.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_MAXBCRYPTITERATIONS</code> <br> <code>--hono.registry.svc.maxBcryptIterations</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">The maximum number of allowed bcrypt iterations.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_URL</code> <br> <code>--hono.tenant.jdbc.adapter.url</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The JDBC URL to the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_URL</code> <br> <code>--hono.tenant.jdbc.adapter.url</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The JDBC URL to the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_DRIVERCLASS</code> <br> <code>--hono.tenant.jdbc.adapter.driverClass</code></td>
-<td align="center">no</td>
-<td align="left">The default driver registered for the JDBC URL.</td>
-<td align="left">The class name of the JDBC driver.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_DRIVERCLASS</code> <br> <code>--hono.tenant.jdbc.adapter.driverClass</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">The default driver registered for the JDBC URL.</td>
+<td style="text-align:left">The class name of the JDBC driver.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_USERNAME</code> <br> <code>--hono.tenant.jdbc.adapter.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The username used to access the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_USERNAME</code> <br> <code>--hono.tenant.jdbc.adapter.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_PASSWORD</code> <br> <code>--hono.tenant.jdbc.adapter.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password used to access the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_PASSWORD</code> <br> <code>--hono.tenant.jdbc.adapter.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_MAXIMUMPOOLSIZE</code> <br> <code>--hono.tenant.jdbc.adapter.maximumPoolSize</code></td>
-<td align="center">no</td>
-<td align="left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
-<td align="left">The maximum size of the connection pool.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_MAXIMUMPOOLSIZE</code> <br> <code>--hono.tenant.jdbc.adapter.maximumPoolSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
+<td style="text-align:left">The maximum size of the connection pool.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_ADAPTER_TABLENAME</code> <br> <code>--hono.tenant.jdbc.adapter.tableName</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_ADAPTER_TABLENAME</code> <br> <code>--hono.tenant.jdbc.adapter.tableName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_URL</code> <br> <code>--hono.tenant.jdbc.management.url</code></td>
-<td align="center">yes</td>
-<td align="left">-</td>
-<td align="left">The JDBC URL to the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_URL</code> <br> <code>--hono.tenant.jdbc.management.url</code></td>
+<td style="text-align:center">yes</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The JDBC URL to the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_DRIVERCLASS</code> <br> <code>--hono.tenant.jdbc.management.driverClass</code></td>
-<td align="center">no</td>
-<td align="left">The default driver registered for the JDBC URL.</td>
-<td align="left">The class name of the JDBC driver.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_DRIVERCLASS</code> <br> <code>--hono.tenant.jdbc.management.driverClass</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">The default driver registered for the JDBC URL.</td>
+<td style="text-align:left">The class name of the JDBC driver.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_USERNAME</code> <br> <code>--hono.tenant.jdbc.management.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The username used to access the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_USERNAME</code> <br> <code>--hono.tenant.jdbc.management.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The username used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_PASSWORD</code> <br> <code>--hono.tenant.jdbc.management.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password used to access the database.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_PASSWORD</code> <br> <code>--hono.tenant.jdbc.management.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password used to access the database.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_MAXIMUMPOOLSIZE</code> <br> <code>--hono.tenant.jdbc.management.maximumPoolSize</code></td>
-<td align="center">no</td>
-<td align="left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
-<td align="left">The maximum size of the connection pool.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_MAXIMUMPOOLSIZE</code> <br> <code>--hono.tenant.jdbc.management.maximumPoolSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">Depends on the connection pool implementation. <code>15</code> for C3P0.</td>
+<td style="text-align:left">The maximum size of the connection pool.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_JDBC_MANAGEMENT_TABLENAME</code> <br> <code>--hono.tenant.jdbc.management.tableName</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
+<td style="text-align:left"><code>HONO_TENANT_JDBC_MANAGEMENT_TABLENAME</code> <br> <code>--hono.tenant.jdbc.management.tableName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name of the table the datastore uses. If the datastore requires multiple tables, this is the prefix.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_TENANTTTL</code> <br> <code>--hono.tenant.service.tenantTtl</code></td>
-<td align="center">no</td>
-<td align="left"><code>1m</code></td>
-<td align="left">The TTL for tenant responses.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_TENANTTTL</code> <br> <code>--hono.tenant.service.tenantTtl</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1m</code></td>
+<td style="text-align:left">The TTL for tenant responses.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.registry.http.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the HTTP endpoint of the Device Registry requires clients to authenticate when connecting to the Device Registry. The JDBC based Device Registry currently supports basic authentication and the user credentials are to be stored in the database. <br>For more information on how to manage users please refer to <a href="https://vertx.io/docs/vertx-auth-jdbc/java/">JDBC Auth Provider</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.registry.http.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the HTTP endpoint of the Device Registry requires clients to authenticate when connecting to the Device Registry. The JDBC based Device Registry currently supports basic authentication and the user credentials are to be stored in the database. <br>For more information on how to manage users please refer to <a href="https://vertx.io/docs/vertx-auth-jdbc/java/">JDBC Auth Provider</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_REGEX</code><br><code>--hono.registry.http.deviceIdRegex</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_]+$</code></td>
-<td align="left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_REGEX</code><br><code>--hono.registry.http.deviceIdRegex</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_TENANT_ID_REGEX</code><br><code>--hono.registry.http.tenantIdRegex</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_.]+$</code></td>
-<td align="left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_TENANT_ID_REGEX</code><br><code>--hono.registry.http.tenantIdRegex</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_.]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Device Registry supports configuration of both, an AMQP based endpoint and an HTTP based endpoint proving RESTful
resources for managing registration information and credentials. Both endpoints can be configured to listen for
connections on:</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
-<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/#port-configuration">Port Configuration</a> for
+<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">Port Configuration</a> for
more information.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>The environment variables to use for configuring the REST endpoint are the same as the ones for the AMQP endpoint,
substituting <code>_AMQP_</code> with <code>_HTTP_</code>.</div>
</div>
-
<h2 id="authentication-service-connection-configuration">Authentication Service Connection Configuration</h2>
-
-<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/#authentication-service-connection-configuration">Authentication Service Connection Configuration</a>
+<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">Authentication Service Connection Configuration</a>
for more information.</p>
-
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure
the reporting of metrics.</p>
@@ -3398,19 +3366,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/kura-adapter-config/index.html b/docs/1.6/admin-guide/kura-adapter-config/index.html
index e787d1d..3ccaf15 100644
--- a/docs/1.6/admin-guide/kura-adapter-config/index.html
+++ b/docs/1.6/admin-guide/kura-adapter-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Kura Adapter Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/kura-adapter-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/kura-adapter-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/kura-adapter-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/kura-adapter-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/kura-adapter-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/kura-adapter-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/kura-adapter-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/kura-adapter-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/kura-adapter-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/kura-adapter-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/kura-adapter-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,19 +1992,17 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ </ul>
</nav>
</div>
</div>
@@ -1976,242 +2026,193 @@
-<p>The Kura protocol adapter exposes an MQTT topic hierarchy allowing Eclipse Kura™ based gateways to access Eclipse Hono™’s
+<p>The Kura protocol adapter exposes an MQTT topic hierarchy allowing Eclipse Kura™ based gateways to access Eclipse Hono™’s
south bound Telemetry, Event and Command & Control APIs.</p>
-
<p>The adapter is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the
corresponding <a href="https://hub.docker.com/r/eclipse/hono-adapter-kura/">Docker image</a> created from it.</p>
-
<p>The adapter supports the following standard configuration options:</p>
-
<ul>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#java-vm-options">Common Java VM Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#vert-x-options">Common vert.x Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#protocol-adapter-options">Common Protocol Adapter Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring Options</a></li>
</ul>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the MQTT adapter.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_AUTHENTICATION_REQUIRED</code><br><code>--hono.kura.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
+<td style="text-align:left"><code>HONO_KURA_AUTHENTICATION_REQUIRED</code><br><code>--hono.kura.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_BIND_ADDRESS</code><br><code>--hono.kura.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_KURA_BIND_ADDRESS</code><br><code>--hono.kura.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_CERT_PATH</code><br><code>--hono.kura.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_KURA_KEY_PATH</code>.<br>Alternatively, the <code>HONO_KURA_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_KURA_CERT_PATH</code><br><code>--hono.kura.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_KURA_KEY_PATH</code>.<br>Alternatively, the <code>HONO_KURA_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_CONTROL_PREFIX</code><br><code>--hono.kura.controlPrefix</code></td>
-<td align="center">no</td>
-<td align="left"><code>$EDC</code></td>
-<td align="left">The <em>topic.control-prefix</em> to use for determining if a message published by a Kura gateway is a <em>control</em> message. All messages published to a topic that does not start with this prefix are considered <em>data</em> messages.</td>
+<td style="text-align:left"><code>HONO_KURA_CONTROL_PREFIX</code><br><code>--hono.kura.controlPrefix</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>$EDC</code></td>
+<td style="text-align:left">The <em>topic.control-prefix</em> to use for determining if a message published by a Kura gateway is a <em>control</em> message. All messages published to a topic that does not start with this prefix are considered <em>data</em> messages.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_CTRL_MSG_CONTENT_TYPE</code><br><code>--hono.kura.ctrlMsgContentType</code></td>
-<td align="center">no</td>
-<td align="left"><code>application/vnd.eclipse.kura-control</code></td>
-<td align="left">The content type to set on AMQP messages created from Kura <em>control</em> messages.</td>
+<td style="text-align:left"><code>HONO_KURA_CTRL_MSG_CONTENT_TYPE</code><br><code>--hono.kura.ctrlMsgContentType</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>application/vnd.eclipse.kura-control</code></td>
+<td style="text-align:left">The content type to set on AMQP messages created from Kura <em>control</em> messages.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_DATA_MSG_CONTENT_TYPE</code><br><code>--hono.kura.dataMsgContentType</code></td>
-<td align="center">no</td>
-<td align="left"><code>application/vnd.eclipse.kura-data</code></td>
-<td align="left">The content type to set on AMQP messages created from Kura <em>data</em> messages.</td>
+<td style="text-align:left"><code>HONO_KURA_DATA_MSG_CONTENT_TYPE</code><br><code>--hono.kura.dataMsgContentType</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>application/vnd.eclipse.kura-data</code></td>
+<td style="text-align:left">The content type to set on AMQP messages created from Kura <em>data</em> messages.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_DEFAULTS_ENABLED</code><br><code>--hono.kura.defaultsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
+<td style="text-align:left"><code>HONO_KURA_DEFAULTS_ENABLED</code><br><code>--hono.kura.defaultsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_INSECURE_PORT</code><br><code>--hono.kura.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_KURA_INSECURE_PORT</code><br><code>--hono.kura.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.kura.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_KURA_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.kura.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_INSECURE_PORT_ENABLED</code><br><code>--hono.kura.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_KURA_INSECURE_PORT</code> or the default MQTT port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_KURA_INSECURE_PORT_ENABLED</code><br><code>--hono.kura.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_KURA_INSECURE_PORT</code> or the default MQTT port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_KEY_PATH</code><br><code>--hono.kura.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_KURA_CERT_PATH</code>. Alternatively, the <code>HONO_KURA_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_KURA_KEY_PATH</code><br><code>--hono.kura.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_KURA_CERT_PATH</code>. Alternatively, the <code>HONO_KURA_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_KEY_STORE_PASSWORD</code><br><code>--hono.kura.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_KURA_KEY_STORE_PASSWORD</code><br><code>--hono.kura.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_KEY_STORE_PATH</code><br><code>--hono.kura.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_KURA_KEY_PATH</code> and <code>HONO_KURA_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_KURA_KEY_STORE_PATH</code><br><code>--hono.kura.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_KURA_KEY_PATH</code> and <code>HONO_KURA_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_SNI</code><br><code>--hono.kura.sni</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_KURA_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_KURA_SNI</code><br><code>--hono.kura.sni</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_KURA_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_MAX_CONNECTIONS</code><br><code>--hono.mqtt.maxConnections</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAX_CONNECTIONS</code><br><code>--hono.mqtt.maxConnections</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_MAX_PAYLOAD_SIZE</code><br><code>--hono.kura.maxPayloadSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>2048</code></td>
-<td align="left">The maximum allowed size of an incoming MQTT message’s payload in bytes. When a client sends a message with a larger payload, the message is discarded and the connection to the client gets closed.</td>
+<td style="text-align:left"><code>HONO_KURA_MAX_PAYLOAD_SIZE</code><br><code>--hono.kura.maxPayloadSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>2048</code></td>
+<td style="text-align:left">The maximum allowed size of an incoming MQTT message’s payload in bytes. When a client sends a message with a larger payload, the message is discarded and the connection to the client gets closed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_NATIVE_TLS_REQUIRED</code><br><code>--hono.kura.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_KURA_NATIVE_TLS_REQUIRED</code><br><code>--hono.kura.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_PORT</code><br><code>--hono.kura.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>8883</code></td>
-<td align="left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_KURA_PORT</code><br><code>--hono.kura.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>8883</code></td>
+<td style="text-align:left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_SECURE_PROTOCOLS</code><br><code>--hono.kura.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_KURA_SECURE_PROTOCOLS</code><br><code>--hono.kura.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_TENANT_IDLE_TIMEOUT</code><br><code>--hono.kura.tenantIdleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>0ms</code></td>
-<td align="left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
+<td style="text-align:left"><code>HONO_KURA_TENANT_IDLE_TIMEOUT</code><br><code>--hono.kura.tenantIdleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0ms</code></td>
+<td style="text-align:left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_KURA_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.kura.sendMessageToDeviceTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
+<td style="text-align:left"><code>HONO_KURA_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.kura.sendMessageToDeviceTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default values do not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Kura protocol adapter can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The Kura protocol adapter will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The protocol adapter needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>either setting the <code>HONO_KURA_KEY_STORE_PATH</code> and the <code>HONO_KURA_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_KURA_KEY_PATH</code> and <code>HONO_KURA_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the protocol adapter will bind a TLS secured socket to the default secure MQTT port 8883. The port number can also be set explicitly using the <code>HONO_KURA_PORT</code> variable.</p>
-
<p>The <code>HONO_KURA_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_KURA_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default MQTT port (1883) by simply setting <code>HONO_KURA_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The protocol adapter issues a warning on the console if <code>HONO_KURA_INSECURE_PORT</code> is set to the default secure MQTT port (8883).</p>
-
<p>The <code>HONO_KURA_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>The protocol adapter may be configured to open both a secure and a non-secure port at the same time simply by configuring both ports as described above. For this to work, both ports must be configured to use different port numbers, otherwise startup will fail.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The protocol adapter will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
<footer class="footline">
@@ -3325,19 +3326,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844313"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844313"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844313"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844313"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844313"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844313"></script>
+ <script src="/hono/docs/js/learn.js?1617844313"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844313"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844313" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844313"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/mongodb-device-registry-config/index.html b/docs/1.6/admin-guide/mongodb-device-registry-config/index.html
index d30ee43..09cf80a 100644
--- a/docs/1.6/admin-guide/mongodb-device-registry-config/index.html
+++ b/docs/1.6/admin-guide/mongodb-device-registry-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>MongoDB Based Device Registry Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757957" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757957" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757957"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757957"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757957"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/mongodb-device-registry-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/mongodb-device-registry-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/mongodb-device-registry-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/mongodb-device-registry-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/mongodb-device-registry-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/mongodb-device-registry-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/mongodb-device-registry-config/">1.3</option>
@@ -1750,6 +1788,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/mongodb-device-registry-config/">dev</option>
@@ -1806,6 +1846,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1862,15 +1908,12 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a></li>
-<li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
-<li><a href="#metrics-configuration">Metrics Configuration</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a></li>
+ <li><a href="#authentication-service-connection-configuration">Authentication Service Connection Configuration</a></li>
+ <li><a href="#metrics-configuration">Metrics Configuration</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1894,384 +1937,321 @@
-
-
-<p>The MongoDB based Device Registry component provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-registration/">Device Registration</a>,
+<p>The MongoDB based Device Registry component provides an implementation of Eclipse Hono™’s <a href="/hono/docs/1.6/api/device-registration/">Device Registration</a>,
<a href="/hono/docs/1.6/api/credentials/">Credentials</a> and <a href="/hono/docs/1.6/api/tenant/">Tenant</a> APIs. Protocol adapters use these APIs to determine a device’s registration status, e.g. if it is enabled and if it is registered with a particular tenant, and to authenticate a device before accepting any data for processing from it. In addition to the above, this Device Registry also provides an implementation of <a href="/hono/docs/1.6/api/management/">Device Registry Management APIs</a> for managing tenants, registration information and credentials of devices.</p>
-
<p>The Device Registry is implemented as a Spring Boot application, and the data is persisted in a MongoDB database. It can be run either directly from the command line or by means of starting the corresponding <a href="https://hub.docker.com/r/eclipse/hono-service-device-registry-mongodb/">Docker image</a> created from it.</p>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the MongoDB based Device Registry. In addition to the following options, this component also supports the options described in <a href="/hono/docs/1.6/admin-guide/common-config/">Common Configuration</a>.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_CACHE_MAX_AGE</code><br><code>--hono.credentials.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_CACHE_MAX_AGE</code><br><code>--hono.credentials.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_COLLECTION_NAME</code><br><code>--hono.credentials.svc.collectionName</code></td>
-<td align="center">no</td>
-<td align="left"><code>credentials</code></td>
-<td align="left">The name of the MongoDB collection where the server stores credentials of devices.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_COLLECTION_NAME</code><br><code>--hono.credentials.svc.collectionName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>credentials</code></td>
+<td style="text-align:left">The name of the MongoDB collection where the server stores credentials of devices.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_HASH_ALGORITHMS_WHITELIST</code><br><code>--hono.credentials.svc.hashAlgorithmsWhitelist</code></td>
-<td align="center">no</td>
-<td align="left"><code>empty</code></td>
-<td align="left">An array of supported hashing algorithms to be used with the <code>hashed-password</code> type of credentials. When not set, all values will be accepted.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_HASH_ALGORITHMS_WHITELIST</code><br><code>--hono.credentials.svc.hashAlgorithmsWhitelist</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>empty</code></td>
+<td style="text-align:left">An array of supported hashing algorithms to be used with the <code>hashed-password</code> type of credentials. When not set, all values will be accepted.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code><br><code>--hono.credentials.svc.maxBcryptCostFactor</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code><br><code>--hono.credentials.svc.maxBcryptCostFactor</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MAX_BCRYPT_ITERATIONS</code><br><code>--hono.credentials.svc.maxBcryptIterations</code></td>
-<td align="center">no</td>
-<td align="left"><code>10</code></td>
-<td align="left">DEPRECATED Please use <code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code> instead.<br>The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MAX_BCRYPT_ITERATIONS</code><br><code>--hono.credentials.svc.maxBcryptIterations</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10</code></td>
+<td style="text-align:left">DEPRECATED Please use <code>HONO_CREDENTIALS_SVC_MAXBCRYPTCOSTFACTOR</code> instead.<br>The maximum cost factor that is supported in password hashes using the BCrypt hash function. This limit is enforced by the device registry when adding or updating corresponding credentials. Increasing this number allows for potentially more secure password hashes to be used. However, the time required to compute the hash increases exponentially with the cost factor.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_MODIFICATION_ENABLED</code><br><code>--hono.credentials.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the credentials contained in the registry cannot be updated nor removed.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_MODIFICATION_ENABLED</code><br><code>--hono.credentials.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the credentials contained in the registry cannot be updated nor removed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CREDENTIALS_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.credentials.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Credentials endpoint.</td>
+<td style="text-align:left"><code>HONO_CREDENTIALS_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.credentials.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Credentials endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_CONNECTION_STRING</code><br><code>--hono.mongodb.connectionString</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The connection string used by the Device Registry application to connect to the MongoDB database. If <code>HONO_MONGODB_CONNECTION_STRING</code> is set, it overrides the other MongoDB connection settings.<br> See <a href="https://docs.mongodb.com/manual/reference/connection-string/">Connection String URI Format</a> for more information.</td>
+<td style="text-align:left"><code>HONO_MONGODB_CONNECTION_STRING</code><br><code>--hono.mongodb.connectionString</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The connection string used by the Device Registry application to connect to the MongoDB database. If <code>HONO_MONGODB_CONNECTION_STRING</code> is set, it overrides the other MongoDB connection settings.<br> See <a href="https://docs.mongodb.com/manual/reference/connection-string/">Connection String URI Format</a> for more information.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_CONNECTION_TIMEOUT_IN_MS</code><br><code>--hono.mongodb.connectionTimeoutInMs</code></td>
-<td align="center">no</td>
-<td align="left"><code>10000</code></td>
-<td align="left">The time in milliseconds to attempt a connection before timing out.</td>
+<td style="text-align:left"><code>HONO_MONGODB_CONNECTION_TIMEOUT_IN_MS</code><br><code>--hono.mongodb.connectionTimeoutInMs</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>10000</code></td>
+<td style="text-align:left">The time in milliseconds to attempt a connection before timing out.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_DB_NAME</code><br><code>--hono.mongodb.dbName</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The name of the MongoDB database that should be used by the Device Registry application.</td>
+<td style="text-align:left"><code>HONO_MONGODB_DB_NAME</code><br><code>--hono.mongodb.dbName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The name of the MongoDB database that should be used by the Device Registry application.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_HOST</code><br><code>--hono.mongodb.host</code></td>
-<td align="center">no</td>
-<td align="left"><code>localhost</code></td>
-<td align="left">The host name or IP address of the MongoDB instance.</td>
+<td style="text-align:left"><code>HONO_MONGODB_HOST</code><br><code>--hono.mongodb.host</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>localhost</code></td>
+<td style="text-align:left">The host name or IP address of the MongoDB instance.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_PORT</code><br><code>--hono.mongodb.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>27017</code></td>
-<td align="left">The port that the MongoDB instance is listening on.</td>
+<td style="text-align:left"><code>HONO_MONGODB_PORT</code><br><code>--hono.mongodb.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>27017</code></td>
+<td style="text-align:left">The port that the MongoDB instance is listening on.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_PASSWORD</code><br><code>--hono.mongodb.password</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password to use for authenticating to the MongoDB instance.</td>
+<td style="text-align:left"><code>HONO_MONGODB_PASSWORD</code><br><code>--hono.mongodb.password</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password to use for authenticating to the MongoDB instance.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_SERVER_SELECTION_TIMEOUT_IN_MS</code><br><code>--hono.mongodb.serverSelectionTimeoutInMs</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The time in milliseconds that the mongo driver will wait to select a server for an operation before raising an error.</td>
+<td style="text-align:left"><code>HONO_MONGODB_SERVER_SELECTION_TIMEOUT_IN_MS</code><br><code>--hono.mongodb.serverSelectionTimeoutInMs</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The time in milliseconds that the mongo driver will wait to select a server for an operation before raising an error.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MONGODB_USERNAME</code><br><code>--hono.mongodb.username</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The user name to use for authenticating to the MongoDB instance.</td>
+<td style="text-align:left"><code>HONO_MONGODB_USERNAME</code><br><code>--hono.mongodb.username</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The user name to use for authenticating to the MongoDB instance.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_BIND_ADDRESS</code><br><code>--hono.registry.amqp.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_CERT_PATH</code><br><code>--hono.registry.amqp.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT</code><br><code>--hono.registry.amqp.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.amqp.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure AMQP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.amqp.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_AMQP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_PATH</code><br><code>--hono.registry.amqp.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_AMQP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.amqp.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_KEY_STORE_PATH</code><br><code>--hono.registry.amqp.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_AMQP_KEY_PATH</code> and <code>HONO_REGISTRY_AMQP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_NATIVE_TLS_REQUIRED</code><br><code>--hono.registry.amqp.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_PORT</code><br><code>--hono.registry.amqp.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for AMQP 1.0 connections.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_AMQP_SECURE_PROTOCOLS</code><br><code>--hono.registry.amqp.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.registry.http.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the HTTP endpoint of the Device Registry requires clients to authenticate when connecting to the Device Registry. The MongoDB based Device Registry currently supports basic authentication and the user credentials are to be stored in a MongoDB collection with name <code>user</code>. <br>For more information on how to manage users please refer to <a href="https://vertx.io/docs/vertx-auth-mongo/java/">Mongo Auth Provider</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_AUTHENTICATION_REQUIRED</code><br><code>--hono.registry.http.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the HTTP endpoint of the Device Registry requires clients to authenticate when connecting to the Device Registry. The MongoDB based Device Registry currently supports basic authentication and the user credentials are to be stored in a MongoDB collection with name <code>user</code>. <br>For more information on how to manage users please refer to <a href="https://vertx.io/docs/vertx-auth-mongo/java/">Mongo Auth Provider</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_BIND_ADDRESS</code><br><code>--hono.registry.http.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_CERT_PATH</code><br><code>--hono.registry.http.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_KEY_PATH</code>.<br>Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code><br><code>--hono.registry.http.deviceIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
-<td align="left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_DEVICE_ID_PATTERN</code><br><code>--hono.registry.http.deviceIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.:]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate device ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT</code><br><code>--hono.registry.http.insecurePort</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The insecure port the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.registry.http.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure HTTP port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_INSECURE_PORT_ENABLED</code><br><code>--hono.registry.http.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the server will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_REGISTRY_HTTP_INSECURE_PORT</code> or the default AMQP port number (<code>5672</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_PATH</code><br><code>--hono.registry.http.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_REGISTRY_HTTP_CERT_PATH</code>. Alternatively, the <code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PASSWORD</code><br><code>--hono.registry.http.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_KEY_STORE_PATH</code><br><code>--hono.registry.http.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the server should use for authenticating to clients. Either this option or the <code>HONO_REGISTRY_HTTP_KEY_PATH</code> and <code>HONO_REGISTRY_HTTP_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>5671</code></td>
-<td align="left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_PORT</code><br><code>--hono.registry.http.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>5671</code></td>
+<td style="text-align:left">The secure port that the server should listen on for HTTP requests.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code><br><code>--hono.registry.http.tenantIdPattern</code></td>
-<td align="center">no</td>
-<td align="left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
-<td align="left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_HTTP_TENANT_ID_PATTERN</code><br><code>--hono.registry.http.tenantIdPattern</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>^[a-zA-Z0-9-_\.]+$</code></td>
+<td style="text-align:left">The regular expression to use to validate tenant ID. Please refer to the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">java pattern documentation</a>.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_CACHE_MAX_AGE</code><br><code>--hono.registry.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_CACHE_MAX_AGE</code><br><code>--hono.registry.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_COLLECTION_NAME</code><br><code>--hono.registry.svc.collectionName</code></td>
-<td align="center">no</td>
-<td align="left"><code>devices</code></td>
-<td align="left">The name of the MongoDB collection where the server stores registered device information.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_COLLECTION_NAME</code><br><code>--hono.registry.svc.collectionName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>devices</code></td>
+<td style="text-align:left">The name of the MongoDB collection where the server stores registered device information.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.registry.svc.maxDevicesPerTenant</code></td>
-<td align="center">no</td>
-<td align="left"><code>-1</code></td>
-<td align="left">The number of devices that can be registered for each tenant. It is an error to set this property to a value < -1. The value <code>-1</code> indicates that no limit is set.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_MAX_DEVICES_PER_TENANT</code><br><code>--hono.registry.svc.maxDevicesPerTenant</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>-1</code></td>
+<td style="text-align:left">The number of devices that can be registered for each tenant. It is an error to set this property to a value < -1. The value <code>-1</code> indicates that no limit is set.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_MODIFICATION_ENABLED</code><br><code>--hono.registry.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the device information contained in the registry cannot be updated nor removed from the registry.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_MODIFICATION_ENABLED</code><br><code>--hono.registry.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the device information contained in the registry cannot be updated nor removed from the registry.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_REGISTRY_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.registry.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Device Registration endpoint.</td>
+<td style="text-align:left"><code>HONO_REGISTRY_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.registry.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Device Registration endpoint.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_CACHE_MAX_AGE</code><br><code>--hono.tenant.svc.cacheMaxAge</code></td>
-<td align="center">no</td>
-<td align="left"><code>180</code></td>
-<td align="left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_CACHE_MAX_AGE</code><br><code>--hono.tenant.svc.cacheMaxAge</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>180</code></td>
+<td style="text-align:left">The maximum period of time (seconds) that information returned by the service’s operations may be cached for.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_COLLECTION_NAME</code><br><code>--hono.tenant.svc.collectionName</code></td>
-<td align="center">no</td>
-<td align="left"><code>tenants</code></td>
-<td align="left">The name of the MongoDB collection where the server stores tenants information.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_COLLECTION_NAME</code><br><code>--hono.tenant.svc.collectionName</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>tenants</code></td>
+<td style="text-align:left">The name of the MongoDB collection where the server stores tenants information.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_MODIFICATION_ENABLED</code><br><code>--hono.tenant.svc.modificationEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">When set to <code>false</code> the tenants contained in the registry cannot be updated nor removed.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_MODIFICATION_ENABLED</code><br><code>--hono.tenant.svc.modificationEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">When set to <code>false</code> the tenants contained in the registry cannot be updated nor removed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_TENANT_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.tenant.svc.receiverLinkCredit</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">The number of credits to flow to a client connecting to the Tenant endpoint.</td>
+<td style="text-align:left"><code>HONO_TENANT_SVC_RECEIVER_LINK_CREDIT</code><br><code>--hono.tenant.svc.receiverLinkCredit</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">The number of credits to flow to a client connecting to the Tenant endpoint.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default value does not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The Device Registry supports configuration of both, an AMQP based endpoint as well as an HTTP based endpoint proving RESTful resources for managing registration information and credentials. Both endpoints can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
-<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/#port-configuration">Port Configuration</a> for more information.</p>
-
+<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">Port Configuration</a> for more information.</p>
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>The environment variables to use for configuring the REST endpoint are the same as the ones for the AMQP endpoint, substituting <code>_AMQP_</code> with <code>_HTTP_</code>.</div>
</div>
-
<h2 id="authentication-service-connection-configuration">Authentication Service Connection Configuration</h2>
-
-<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/#authentication-service-connection-configuration">Authentication Service Connection Configuration</a> for more information.</p>
-
+<p>See <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">Authentication Service Connection Configuration</a> for more information.</p>
<h2 id="metrics-configuration">Metrics Configuration</h2>
-
<p>See <a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring & Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
@@ -3386,19 +3366,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757958"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757958"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757958"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757958"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757958"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757958"></script>
- <script src="/hono/docs/js/learn.js?1617757958"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757958"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757958" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757958"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/monitoring-tracing-config/index.html b/docs/1.6/admin-guide/monitoring-tracing-config/index.html
index 1801799..e7c4e5d 100644
--- a/docs/1.6/admin-guide/monitoring-tracing-config/index.html
+++ b/docs/1.6/admin-guide/monitoring-tracing-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Monitoring & Tracing :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/monitoring-tracing-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/monitoring-tracing-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/monitoring-tracing-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/monitoring-tracing-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/monitoring-tracing-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/monitoring-tracing-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/monitoring-tracing-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/monitoring-tracing-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/monitoring-tracing-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/monitoring-tracing-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,23 +1992,22 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#monitoring">Monitoring</a>
-<ul>
-<li><a href="#configuring-a-metrics-back-end">Configuring a Metrics Back End</a></li>
-<li><a href="#using-prometheus">Using Prometheus</a></li>
-</ul></li>
-<li><a href="#health-check-server-configuration">Health Check Server Configuration</a></li>
-<li><a href="#tracing">Tracing</a>
-<ul>
-<li><a href="#configuring-a-tracer">Configuring a Tracer</a></li>
-</ul></li>
-<li><a href="#configuring-usage-of-jaeger-tracing-included-in-docker-images">Configuring usage of Jaeger tracing (included in Docker images)</a></li>
-<li><a href="#enforcing-the-recording-of-traces-for-a-tenant">Enforcing the recording of traces for a tenant</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#monitoring">Monitoring</a>
+ <ul>
+ <li><a href="#configuring-a-metrics-back-end">Configuring a Metrics Back End</a></li>
+ <li><a href="#using-prometheus">Using Prometheus</a></li>
+ </ul>
+ </li>
+ <li><a href="#health-check-server-configuration">Health Check Server Configuration</a></li>
+ <li><a href="#tracing">Tracing</a>
+ <ul>
+ <li><a href="#configuring-a-tracer">Configuring a Tracer</a></li>
+ </ul>
+ </li>
+ <li><a href="#configuring-usage-of-jaeger-tracing-included-in-docker-images">Configuring usage of Jaeger tracing (included in Docker images)</a></li>
+ <li><a href="#enforcing-the-recording-of-traces-for-a-tenant">Enforcing the recording of traces for a tenant</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1980,46 +2031,33 @@
-<p>The individual components of an Eclipse Hono™ installation need to work together in order to provide their functionality to devices and applications. Under normal circumstances these interactions work flawlessly. However, due to the nature of distributed systems, any one (or more) of the components may crash or become otherwise unavailable due to arbitrary reasons. This page describes how Hono supports operations teams by providing insights into the individual service components and their interactions with each other by means of reporting metrics and tracing the processing of individual messages through the system.</p>
-
+<p>The individual components of an Eclipse Hono™ installation need to work together in order to provide their functionality to devices and applications. Under normal circumstances these interactions work flawlessly. However, due to the nature of distributed systems, any one (or more) of the components may crash or become otherwise unavailable due to arbitrary reasons. This page describes how Hono supports operations teams by providing insights into the individual service components and their interactions with each other by means of reporting metrics and tracing the processing of individual messages through the system.</p>
<p>When a device uploads telemetry data to the HTTP adapter, the adapter invokes operations on the Device Registration, Credentials and the Tenant services in order to authenticate and authorize the device before sending the telemetry data downstream to the AMQP 1.0 Messaging Network. The overall success of this process and the latency involved before the message reaches the consumer is determined by the individual interactions between the service components.</p>
-
<h2 id="monitoring">Monitoring</h2>
-
<p>In a production environment, an operations team will usually want to keep track of some <em>key performance indicators</em> (KPI) which allow the team to determine the overall <em>health</em> of the system, e.g. memory and CPU consumption etc. Hono supports the tracking of such KPIs by means of metrics it can be configured to report. The metrics are usually collected in a time series database like <em>InfluxDB</em> or <em>Prometheus</em> and then visualized on a monitoring dash-board built using frameworks like <em>Grafana</em>. Such a dash-board can usually also be configured to send alarms when certain thresholds are exceeded.</p>
-
<p>Metrics usually provide insights into the past and current status of an individual component. The values can be aggregated to provide a picture of the overall system’s status. As such, metrics provide a great way to <em>monitor</em> system health and, in particular, to anticipate resource shortages and use such knowledge to pro-actively prevent system failure.</p>
-
<h3 id="configuring-a-metrics-back-end">Configuring a Metrics Back End</h3>
-
<p>Hono uses <a href="http://micrometer.io/">Micrometer</a> for providing metrics. It is
possible to drop in any Micrometer compatible back end. Hono also uses the
Micrometer integration with Spring Boot and Vert.x.</p>
-
<p>Please refer to the <a href="http://micrometer.io/docs">Micrometer documentation</a>
for details regarding the configuration of a specific Micrometer back end.
In most cases, you only need to add the back end specific jar files to the class path and
add back end specific configuration to the <code>application.yml</code> file.</p>
-
<p>The Hono build supports configuration of a specific metrics back end by means
of Maven profiles. The following build profiles are currently supported:</p>
-
<ul>
<li><code>metrics-prometheus</code> – Enables the Prometheus backend.</li>
<li><code>metrics-graphite</code> – Enables the Graphite backend.</li>
<li><code>metrics-influxdb</code> – Enables the InfluxDB backend.</li>
</ul>
-
<p>Additionally, to selecting a metrics back end, you may need to configure the
back end using Spring configuration options. See the documentation mentioned
above for more information.</p>
-
<p>Note that none of the above profiles are active by default, i.e. you need to
explicitly activate one of them when starting the build using Maven’s <code>-p</code>
command line parameter.</p>
-
<h3 id="using-prometheus">Using Prometheus</h3>
-
<p>Most of the metrics back ends have data being <em>pushed</em> to from the components
reporting the metrics. However, Prometheus is different in that it <em>polls</em>
(or <em>scrapes</em>) all components periodically for new metrics data.
@@ -2032,150 +2070,112 @@
Hono components that report metrics can be configured to expose such an
endpoint via their <a href="#health-check-server-configuration"><em>Health Check</em> server</a>
which already exposes endpoints for determining the component’s readiness and liveness status.</p>
-
<h2 id="health-check-server-configuration">Health Check Server Configuration</h2>
-
<p>All of Hono’s service components and protocol adapters contain a <em>Health Check</em> server which can be configured to
expose several HTTP endpoints for determining the component’s status.
In particular, the server exposes a <code>/readiness</code>, a <code>/liveness</code> and an optional <code>/prometheus</code> URI endpoint.</p>
-
<p>The former two endpoints are supposed to be used by container orchestration platforms like Kubernetes to monitor the runtime status of the containers
that it manages. These endpoints are <em>always</em> exposed when the health check server is started.</p>
-
<p>The <code>/prometheus</code> endpoint can be used by a Prometheus server to retrieve collected meter data from the component. It is <em>only</em> exposed if Prometheus has
been configured as the metrics back end as described <a href="#configuring-a-metrics-back-end">above</a>.</p>
-
<p>The health check server can be configured by means of the following environment variables:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_BINDADDRESS</code><br><code>--hono.healthCheck.bindAddress</code></td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the health check server’s secure port should be bound to. The server will only be started if this property is set to some other than the default value and corresponding key material has been configured using the <code>HONO_HEALTHCHECK_KEYPATH</code> and <code>HONO_HEALTHCHECK_CERTPATH</code> variables.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_BINDADDRESS</code><br><code>--hono.healthCheck.bindAddress</code></td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the health check server’s secure port should be bound to. The server will only be started if this property is set to some other than the default value and corresponding key material has been configured using the <code>HONO_HEALTHCHECK_KEYPATH</code> and <code>HONO_HEALTHCHECK_CERTPATH</code> variables.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_CERTPATH</code><br><code>--hono.healthCheck.certPath</code></td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the secure server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HEALTHCHECK_KEYPATH</code>.<br>Alternatively, the <code>HONO_HEALTHCHECK_KEYSTOREPATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_CERTPATH</code><br><code>--hono.healthCheck.certPath</code></td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the secure server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HEALTHCHECK_KEYPATH</code>.<br>Alternatively, the <code>HONO_HEALTHCHECK_KEYSTOREPATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_INSECUREPORTBINDADDRESS</code><br><code>--hono.healthCheck.insecurePortBindAddress</code></td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the health check server’s insecure port should be bound to. The server will only be started if this property is set to some other than the default value.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_INSECUREPORTBINDADDRESS</code><br><code>--hono.healthCheck.insecurePortBindAddress</code></td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the health check server’s insecure port should be bound to. The server will only be started if this property is set to some other than the default value.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_INSECUREPORT</code><br><code>--hono.healthCheck.insecurePort</code></td>
-<td align="left"><code>8088</code></td>
-<td align="left">The port that the insecure server should listen on.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_INSECUREPORT</code><br><code>--hono.healthCheck.insecurePort</code></td>
+<td style="text-align:left"><code>8088</code></td>
+<td style="text-align:left">The port that the insecure server should listen on.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_KEYPATH</code><br><code>--hono.healthCheck.keyPath</code></td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the secure server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HEALTHCHECK_CERTPATH</code>. Alternatively, the <code>HONO_HEALTHCHECK_KEYSTOREPATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_KEYPATH</code><br><code>--hono.healthCheck.keyPath</code></td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the secure server should use for authenticating to clients. This option must be used in conjunction with <code>HONO_HEALTHCHECK_CERTPATH</code>. Alternatively, the <code>HONO_HEALTHCHECK_KEYSTOREPATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_PORT</code><br><code>--hono.healthCheck.port</code></td>
-<td align="left"><code>8088</code></td>
-<td align="left">The port that the secure server should listen on.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_PORT</code><br><code>--hono.healthCheck.port</code></td>
+<td style="text-align:left"><code>8088</code></td>
+<td style="text-align:left">The port that the secure server should listen on.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_KEYSTOREPASSWORD</code><br><code>--hono.healthCheck.keyStorePassword</code></td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_KEYSTOREPASSWORD</code><br><code>--hono.healthCheck.keyStorePassword</code></td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_HEALTHCHECK_KEYSTOREPATH</code><br><code>--hono.healthCheck.keyStorePath</code></td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the secure server should use for authenticating to clients. Either this option or the <code>HONO_HEALTHCHECK_KEYPATH</code> and <code>HONO_HEALTHCHECK_CERTPATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively. The <code>HONO_HEALTHCHECK_KEYSTOREPASSWORD</code> variable can be used to set the password required for reading the key store.</td>
+<td style="text-align:left"><code>HONO_HEALTHCHECK_KEYSTOREPATH</code><br><code>--hono.healthCheck.keyStorePath</code></td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the secure server should use for authenticating to clients. Either this option or the <code>HONO_HEALTHCHECK_KEYPATH</code> and <code>HONO_HEALTHCHECK_CERTPATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively. The <code>HONO_HEALTHCHECK_KEYSTOREPASSWORD</code> variable can be used to set the password required for reading the key store.</td>
</tr>
</tbody>
</table>
-
<div class="alert alert-warning">
<h4 class="alert-heading"><i class="fas fa-exclamation-triangle"></i> Failure to start</h4>
<div>The component/service will fail to start if neither the secure not the insecure server have been configured properly.</div>
</div>
-
<h2 id="tracing">Tracing</h2>
-
<p>In normal operation the vast majority of messages should be flowing through the system without any noteworthy delays or problems. In fact, that is the whole purpose of Hono. However, that doesn’t mean that nothing can go wrong. For example, when a tenant’s device administrator changes the credentials of a device in the Credentials service but has not yet updated the credentials on the device yet, then the device will start to fail in uploading any data to the protocol adapter it connects to. After a while, a back end application’s administrator might notice, that there hasn’t been any data being received from that particular device for quite some time. The application administrator therefore calls up the Hono operations team and complains about the data <em>being lost somewhere</em>.</p>
-
<p>The operations team will have a hard time determining what is happening, because it will need to figure out which components have been involved in the processing of the device and why the data hasn’t been processed as usual. The metrics alone usually do not help much here because metrics are usually not scoped to individual devices. The logs written by the individual components, on the other hand, might contain enough information to correlate individual entries in the log with each other and thus <em>trace</em> the processing of the message throughout the system. However, this is usually a very tedious (and error prone) process and the relevant information is often only logged at a level (e.g. <em>DEBUG</em>) that is not used in production (often <em>INFO</em> or above).</p>
-
<p>In order to address this problem, Hono’s service components are instrumented using <a href="http://opentracing.io">OpenTracing</a>. OpenTracing provides <em>Vendor-neutral APIs and instrumentation for distributed tracing</em>. The OpenTracing web page provides a <a href="https://opentracing.io/docs/supported-tracers/">list of supported tracer implementations</a> from which users can choose in order to collect (and examine) the tracing information generated by Hono’s individual components.</p>
-
<h3 id="configuring-a-tracer">Configuring a Tracer</h3>
-
<p><strong>Hint</strong>: The description in this chapter applies to any compatible OpenTracing implementation. For an easier approach to configure usage of <a href="https://www.jaegertracing.io/">Jaeger tracing</a>, see the next chapter.</p>
-
<p>Hono’s components use the <a href="https://github.com/opentracing-contrib/java-tracerresolver">OpenTracing Tracer Resolver</a> mechanism to find and initialize a concrete OpenTracing implementation during startup of the component. The discovery mechanism is using Java’s <a href="https://docs.oracle.com/javase/9/docs/api/java/util/ServiceLoader.html">ServiceLoader</a> and as such relies on the required resources to be available on the class path.</p>
-
<p>When starting up any of Hono’s Docker images as a container, the JVM will look for additional jar files to include in its class path in the container’s <code>/opt/hono/extensions</code> folder. Thus, using a specific implementation of OpenTracing is just a matter of configuring the container to mount a volume or binding a host folder at that location and putting the implementation’s jar files and resources into the corresponding volume or host folder.</p>
-
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>This also means that (currently) only Tracer implementations can be used with Hono that also implement the Tracer Resolver mechanism.</div>
</div>
-
<p>Assuming that the HTTP adapter should be configured to use <a href="https://www.jaegertracing.io/">Jaeger tracing</a>, the following steps are necessary:</p>
-
<ol>
-<li>Download <a href="https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-tracerresolver">Jaeger’s Java Tracer Resolver</a> implementation and its dependencies (see the hint at the end).</li>
-<li>Put the jars to a folder on the Docker host, e.g. <code>/tmp/jaeger</code>.</li>
-
-<li><p>Start the HTTP adapter Docker image mounting the host folder:</p>
-
-<pre><code class="language-sh">docker run --name hono-adapter-http-vertx \
---mount type=bind,src=/tmp/jaeger,dst=/opt/hono/extensions,ro \
-... \
-eclipse/hono-adapter-http-vertx
-</code></pre></li>
+<li>
+<p>Download <a href="https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-tracerresolver">Jaeger’s Java Tracer Resolver</a> implementation and its dependencies (see the hint at the end).</p>
+</li>
+<li>
+<p>Put the jars to a folder on the Docker host, e.g. <code>/tmp/jaeger</code>.</p>
+</li>
+<li>
+<p>Start the HTTP adapter Docker image mounting the host folder:</p>
+<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">docker run --name hono-adapter-http-vertx <span style="color:#ae81ff">\
+</span><span style="color:#ae81ff"></span>--mount type<span style="color:#f92672">=</span>bind,src<span style="color:#f92672">=</span>/tmp/jaeger,dst<span style="color:#f92672">=</span>/opt/hono/extensions,ro <span style="color:#ae81ff">\
+</span><span style="color:#ae81ff"></span>... <span style="color:#ae81ff">\
+</span><span style="color:#ae81ff"></span>eclipse/hono-adapter-http-vertx
+</code></pre></div></li>
</ol>
-
<p><strong>Note</strong>: the command given above does not contain the environment variables and secrets that are required to configure the service properly. The environment variables for configuring the Jaeger client are also missing. Please refer to the <a href="https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md">Jaeger documentation</a> for details.</p>
-
<p>When the HTTP adapter starts up, it will look for a working implementation of the Tracer Resolver on its classpath and (if found) initialize and use it for publishing traces. The adapter’s log file will indicate the name of the Tracer implementation being used.</p>
-
<p>Using a Docker <em>volume</em> instead of a <em>bind mount</em> works the same way but requires the use of <code>volume</code> as the <em>type</em> of the <code>--mount</code> parameter. Please refer to the <a href="https://docs.docker.com/edge/engine/reference/commandline/service_create/#add-bind-mounts-volumes-or-memory-filesystems">Docker reference documentation</a> for details.</p>
-
<p><strong>Hint</strong>: to resolve all dependencies for <code>jaeger-tracerresolver</code> in order to provide them to <code>/opt/hono/extensions</code>, you may want to rely on Maven’s dependency plugin. To obtain all jar files you can invoke the following command in a simple Maven project that contains only the dependency to <code>jaeger-tracerresolver</code>:</p>
-
-<pre><code class="language-sh">mvn dependency:copy-dependencies
-</code></pre>
-
-<p>All jar files can then be found in the directory <code>target/dependency</code>.</p>
-
+<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">mvn dependency:copy-dependencies
+</code></pre></div><p>All jar files can then be found in the directory <code>target/dependency</code>.</p>
<h2 id="configuring-usage-of-jaeger-tracing-included-in-docker-images">Configuring usage of Jaeger tracing (included in Docker images)</h2>
-
<p>In case <a href="https://www.jaegertracing.io/">Jaeger tracing</a> shall be used, there is an alternative to putting the jar files in the container’s <code>/opt/hono/extensions</code> folder as described above.
This is to have the Jaeger tracing jar files be included in the Hono Docker images by using the <code>jaeger</code> Maven profile when building Hono.</p>
-
<p>For example, building the HTTP adapter image with the Jaeger client included:</p>
-
-<pre><code class="language-sh"># in directory: hono/adapters/http-vertx/
+<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#75715e"># in directory: hono/adapters/http-vertx/</span>
mvn clean install -Pbuild-docker-image,jaeger
-</code></pre>
-
-<p>Note that when running the created docker image, the environment variables for configuring the Jaeger client still need to be set. Please refer to the <a href="https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md">Jaeger documentation</a> for details.</p>
-
+</code></pre></div><p>Note that when running the created docker image, the environment variables for configuring the Jaeger client still need to be set. Please refer to the <a href="https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md">Jaeger documentation</a> for details.</p>
<h2 id="enforcing-the-recording-of-traces-for-a-tenant">Enforcing the recording of traces for a tenant</h2>
-
<p>Typically, in production systems, the tracing components will be configured to not store <em>all</em> trace spans in the tracing backend, in order to reduce the performance impact. For debugging purposes it can however be beneficial to enforce the recording of certain traces. Hono allows this by providing a configuration option in the Tenant information with which all traces concerning the processing of telemetry, event and command messages for that specific tenant will be recorded. Furthermore, this enforced trace sampling can be restricted to only apply to messages sent in the context of a specific authentication identifier. Please refer to the <a href="/hono/docs/1.6/api/tenant/#tracing-format">description of the <code>tracing</code> object</a> in the Tenant Information for details.</p>
<footer class="footline">
@@ -3289,19 +3289,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/mqtt-adapter-config/index.html b/docs/1.6/admin-guide/mqtt-adapter-config/index.html
index 1a81dbd..07645b4 100644
--- a/docs/1.6/admin-guide/mqtt-adapter-config/index.html
+++ b/docs/1.6/admin-guide/mqtt-adapter-config/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>MQTT Adapter Configuration :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/mqtt-adapter-config/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/mqtt-adapter-config/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/mqtt-adapter-config/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/mqtt-adapter-config/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/mqtt-adapter-config/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/mqtt-adapter-config/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/mqtt-adapter-config/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/mqtt-adapter-config/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/mqtt-adapter-config/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/mqtt-adapter-config/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/mqtt-adapter-config/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,23 +1992,22 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#service-configuration">Service Configuration</a></li>
-<li><a href="#port-configuration">Port Configuration</a>
-<ul>
-<li><a href="#secure-port-only">Secure Port Only</a></li>
-<li><a href="#insecure-port-only">Insecure Port Only</a></li>
-<li><a href="#dual-port">Dual Port</a></li>
-<li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
-</ul></li>
-<li><a href="#custom-message-mapping">Custom Message Mapping</a>
-<ul>
-<li><a href="#implementation">Implementation</a></li>
-</ul></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#service-configuration">Service Configuration</a></li>
+ <li><a href="#port-configuration">Port Configuration</a>
+ <ul>
+ <li><a href="#secure-port-only">Secure Port Only</a></li>
+ <li><a href="#insecure-port-only">Insecure Port Only</a></li>
+ <li><a href="#dual-port">Dual Port</a></li>
+ <li><a href="#ephemeral-ports">Ephemeral Ports</a></li>
+ </ul>
+ </li>
+ <li><a href="#custom-message-mapping">Custom Message Mapping</a>
+ <ul>
+ <li><a href="#implementation">Implementation</a></li>
+ </ul>
+ </li>
+ </ul>
</nav>
</div>
</div>
@@ -1980,292 +2031,244 @@
-<p>The MQTT protocol adapter exposes an MQTT topic hierarchy for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
-
+<p>The MQTT protocol adapter exposes an MQTT topic hierarchy for Eclipse Hono™’s south bound Telemetry, Event and Command & Control APIs.</p>
<p>The adapter is implemented as a Spring Boot application. It can be run either directly from the command line or by means of starting the
corresponding <a href="https://hub.docker.com/r/eclipse/hono-adapter-mqtt-vertx/">Docker image</a> created from it.</p>
-
<p>The adapter supports the following standard configuration options:</p>
-
<ul>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#java-vm-options">Common Java VM Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#vert-x-options">Common vert.x Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/common-config/#protocol-adapter-options">Common Protocol Adapter Options</a></li>
<li><a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">Monitoring Options</a></li>
</ul>
-
<h2 id="service-configuration">Service Configuration</h2>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the MQTT adapter.</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
-<td align="center">no</td>
-<td align="left"><em>#CPU cores</em></td>
-<td align="left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
+<td style="text-align:left"><code>HONO_APP_MAX_INSTANCES</code><br><code>--hono.app.maxInstances</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><em>#CPU cores</em></td>
+<td style="text-align:left">The number of verticle instances to deploy. If not set, one verticle per processor core is deployed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_CONNECTION_EVENTS_PRODUCER</code><br><code>--hono.connectionEvents.producer</code></td>
-<td align="center">no</td>
-<td align="left"><code>logging</code></td>
-<td align="left">The implementation of <em>connection events</em> producer which is to be used. This may be <code>logging</code> or <code>events</code>.<br>See <a href="/hono/docs/1.6/concepts/connection-events/">Connection Events</a></td>
+<td style="text-align:left"><code>HONO_CONNECTION_EVENTS_PRODUCER</code><br><code>--hono.connectionEvents.producer</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>logging</code></td>
+<td style="text-align:left">The implementation of <em>connection events</em> producer which is to be used. This may be <code>logging</code> or <code>events</code>.<br>See <a href="/hono/docs/1.6/concepts/connection-events/">Connection Events</a></td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_AUTHENTICATION_REQUIRED</code><br><code>--hono.mqtt.authenticationRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
+<td style="text-align:left"><code>HONO_MQTT_AUTHENTICATION_REQUIRED</code><br><code>--hono.mqtt.authenticationRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter requires devices to authenticate when connecting to the adapter. The credentials provided by the device are verified using the configured <a href="#credentials-service-connection-configuration">Credentials Service</a>. Devices that have failed to authenticate are not allowed to publish any data.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_BIND_ADDRESS</code><br><code>--hono.mqtt.bindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_MQTT_BIND_ADDRESS</code><br><code>--hono.mqtt.bindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the secure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_CERT_PATH</code><br><code>--hono.mqtt.certPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_MQTT_KEY_PATH</code>.<br>Alternatively, the <code>HONO_MQTT_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_MQTT_CERT_PATH</code><br><code>--hono.mqtt.certPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the PEM file containing the certificate that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_MQTT_KEY_PATH</code>.<br>Alternatively, the <code>HONO_MQTT_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_COMMAND_ACK_TIMEOUT</code><br><code>--hono.mqtt.commandAckTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>100</code></td>
-<td align="left">Deprecated. Use <code>HONO_MQTT_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code> instead. The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
+<td style="text-align:left"><code>HONO_MQTT_COMMAND_ACK_TIMEOUT</code><br><code>--hono.mqtt.commandAckTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>100</code></td>
+<td style="text-align:left">Deprecated. Use <code>HONO_MQTT_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code> instead. The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.mqtt.sendMessageToDeviceTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>1000</code></td>
-<td align="left">The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
+<td style="text-align:left"><code>HONO_MQTT_SEND_MESSAGE_TO_DEVICE_TIMEOUT</code><br><code>--hono.mqtt.sendMessageToDeviceTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>1000</code></td>
+<td style="text-align:left">The amount of time (milliseconds) after which the sending of a command to a device using QoS 1 is considered to be failed. The value of this variable should be increased in cases where devices are connected over a network with high latency.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_DEFAULTS_ENABLED</code><br><code>--hono.mqtt.defaultsEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>true</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
+<td style="text-align:left"><code>HONO_MQTT_DEFAULTS_ENABLED</code><br><code>--hono.mqtt.defaultsEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>true</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter uses <em>default values</em> registered for a device to augment messages published by the device with missing information like a content type. In particular, the protocol adapter adds default values registered for the device as (application) properties with the same name to the AMQP 1.0 messages it sends downstream to the AMQP Messaging Network.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.mqtt.insecurePortBindAddress</code></td>
-<td align="center">no</td>
-<td align="left"><code>127.0.0.1</code></td>
-<td align="left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_MQTT_INSECURE_PORT_BIND_ADDRESS</code><br><code>--hono.mqtt.insecurePortBindAddress</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>127.0.0.1</code></td>
+<td style="text-align:left">The IP address of the network interface that the insecure port should be bound to.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_INSECURE_PORT_ENABLED</code><br><code>--hono.mqtt.insecurePortEnabled</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_MQTT_INSECURE_PORT</code> or the default MQTT port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_MQTT_INSECURE_PORT_ENABLED</code><br><code>--hono.mqtt.insecurePortEnabled</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">If set to <code>true</code> the protocol adapter will open an insecure port (not secured by TLS) using either the port number set via <code>HONO_MQTT_INSECURE_PORT</code> or the default MQTT port number (<code>1883</code>) if not set explicitly.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_KEY_PATH</code><br><code>--hono.mqtt.keyPath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_MQTT_CERT_PATH</code>. Alternatively, the <code>HONO_MQTT_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
+<td style="text-align:left"><code>HONO_MQTT_KEY_PATH</code><br><code>--hono.mqtt.keyPath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the (PKCS8) PEM file containing the private key that the protocol adapter should use for authenticating to clients. This option must be used in conjunction with <code>HONO_MQTT_CERT_PATH</code>. Alternatively, the <code>HONO_MQTT_KEY_STORE_PATH</code> option can be used to configure a key store containing both the key as well as the certificate.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_KEY_STORE_PASSWORD</code><br><code>--hono.mqtt.keyStorePassword</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The password required to read the contents of the key store.</td>
+<td style="text-align:left"><code>HONO_MQTT_KEY_STORE_PASSWORD</code><br><code>--hono.mqtt.keyStorePassword</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The password required to read the contents of the key store.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_KEY_STORE_PATH</code><br><code>--hono.mqtt.keyStorePath</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_MQTT_KEY_PATH</code> and <code>HONO_MQTT_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_MQTT_KEY_STORE_PATH</code><br><code>--hono.mqtt.keyStorePath</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The absolute path to the Java key store containing the private key and certificate that the protocol adapter should use for authenticating to clients. Either this option or the <code>HONO_MQTT_KEY_PATH</code> and <code>HONO_MQTT_CERT_PATH</code> options need to be set in order to enable TLS secured connections with clients. The key store format can be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_SNI</code><br><code>--hono.mqtt.sni</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_MQTT_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
+<td style="text-align:left"><code>HONO_MQTT_SNI</code><br><code>--hono.mqtt.sni</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">Set whether the server supports Server Name Indication. By default, the server will not support SNI and the option is <code>false</code>. However, if set to <code>true</code> then the key store format , <code>HONO_MQTT_KEY_STORE_PATH</code>, should be either <code>JKS</code> or <code>PKCS12</code> indicated by a <code>.jks</code> or <code>.p12</code> file suffix respectively.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_MAX_CONNECTIONS</code><br><code>--hono.mqtt.maxConnections</code></td>
-<td align="center">no</td>
-<td align="left"><code>0</code></td>
-<td align="left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAX_CONNECTIONS</code><br><code>--hono.mqtt.maxConnections</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0</code></td>
+<td style="text-align:left">The maximum number of concurrent connections that the protocol adapter should accept. If not set (or set to <code>0</code>), the protocol adapter determines a reasonable value based on the available resources like memory and CPU.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_MAX_PAYLOAD_SIZE</code><br><code>--hono.mqtt.maxPayloadSize</code></td>
-<td align="center">no</td>
-<td align="left"><code>2048</code></td>
-<td align="left">The maximum allowed size of an incoming MQTT message’s payload in bytes. When a client sends a message with a larger payload, the message is discarded and the connection to the client gets closed.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAX_PAYLOAD_SIZE</code><br><code>--hono.mqtt.maxPayloadSize</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>2048</code></td>
+<td style="text-align:left">The maximum allowed size of an incoming MQTT message’s payload in bytes. When a client sends a message with a larger payload, the message is discarded and the connection to the client gets closed.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_NATIVE_TLS_REQUIRED</code><br><code>--hono.mqtt.nativeTlsRequired</code></td>
-<td align="center">no</td>
-<td align="left"><code>false</code></td>
-<td align="left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
+<td style="text-align:left"><code>HONO_MQTT_NATIVE_TLS_REQUIRED</code><br><code>--hono.mqtt.nativeTlsRequired</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>false</code></td>
+<td style="text-align:left">The server will probe for OpenSLL on startup if a secure port is configured. By default, the server will fall back to the JVM’s default SSL engine if not available. However, if set to <code>true</code>, the server will fail to start at all in this case.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_PORT</code><br><code>--hono.mqtt.port</code></td>
-<td align="center">no</td>
-<td align="left"><code>8883</code></td>
-<td align="left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
+<td style="text-align:left"><code>HONO_MQTT_PORT</code><br><code>--hono.mqtt.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>8883</code></td>
+<td style="text-align:left">The secure port that the protocol adapter should listen on.<br>See <a href="#port-configuration">Port Configuration</a> below for details.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_SECURE_PROTOCOLS</code><br><code>--hono.mqtt.secureProtocols</code></td>
-<td align="center">no</td>
-<td align="left"><code>TLSv1.2</code></td>
-<td align="left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
+<td style="text-align:left"><code>HONO_MQTT_SECURE_PROTOCOLS</code><br><code>--hono.mqtt.secureProtocols</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>TLSv1.2</code></td>
+<td style="text-align:left">A (comma separated) list of secure protocols that are supported when negotiating TLS sessions. Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#ssl">vert.x documentation</a> for a list of supported protocol names.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_TENANT_IDLE_TIMEOUT</code><br><code>--hono.mqtt.tenantIdleTimeout</code></td>
-<td align="center">no</td>
-<td align="left"><code>0ms</code></td>
-<td align="left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
+<td style="text-align:left"><code>HONO_MQTT_TENANT_IDLE_TIMEOUT</code><br><code>--hono.mqtt.tenantIdleTimeout</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left"><code>0ms</code></td>
+<td style="text-align:left">The duration after which the protocol adapter removes local state of the tenant (e.g. open AMQP links) with an amount and a unit, e.g. <code>2h</code> for 2 hours. See the <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-conversion-duration">Spring Boot documentation</a> for an explanation of the format. The value <code>0ms</code> disables the timeout.</td>
</tr>
</tbody>
</table>
-
<p>The variables only need to be set if the default values do not match your environment.</p>
-
<h2 id="port-configuration">Port Configuration</h2>
-
<p>The MQTT protocol adapter can be configured to listen for connections on</p>
-
<ul>
<li>a secure port only (default) or</li>
<li>an insecure port only or</li>
<li>both a secure and an insecure port (dual port configuration)</li>
</ul>
-
<p>The MQTT protocol adapter will fail to start if none of the ports is configured properly.</p>
-
<h3 id="secure-port-only">Secure Port Only</h3>
-
<p>The protocol adapter needs to be configured with a private key and certificate in order to open a TLS secured port.</p>
-
<p>There are two alternative ways for doing so:</p>
-
<ol>
<li>either setting the <code>HONO_MQTT_KEY_STORE_PATH</code> and the <code>HONO_MQTT_KEY_STORE_PASSWORD</code> variables in order to load the key & certificate from a password protected key store, or</li>
<li>setting the <code>HONO_MQTT_KEY_PATH</code> and <code>HONO_MQTT_CERT_PATH</code> variables in order to load the key and certificate from two separate PEM files in PKCS8 format.</li>
</ol>
-
<p>When starting up, the protocol adapter will bind a TLS secured socket to the default secure MQTT port 8883. The port number can also be set explicitly using the <code>HONO_MQTT_PORT</code> variable.</p>
-
<p>The <code>HONO_MQTT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="insecure-port-only">Insecure Port Only</h3>
-
<p>The secure port will mostly be required for production scenarios. However, it might be desirable to expose a non-TLS secured port instead, e.g. for testing purposes. In any case, the non-secure port needs to be explicitly enabled either by</p>
-
<ul>
<li>explicitly setting <code>HONO_MQTT_INSECURE_PORT</code> to a valid port number, or by</li>
<li>implicitly configuring the default MQTT port (1883) by simply setting <code>HONO_MQTT_INSECURE_PORT_ENABLED</code> to <code>true</code>.</li>
</ul>
-
<p>The protocol adapter issues a warning on the console if <code>HONO_MQTT_INSECURE_PORT</code> is set to the default secure MQTT port (8883).</p>
-
<p>The <code>HONO_MQTT_INSECURE_PORT_BIND_ADDRESS</code> variable can be used to specify the network interface that the port should be exposed on. By default the port is bound to the <em>loopback device</em> only, i.e. the port will only be accessible from the local host. This variable might be used to e.g. expose the non-TLS secured port on a local interface only, thus providing easy access from within the local network, while still requiring encrypted communication when accessed from the outside over public network infrastructure.</p>
-
<p>Setting this variable to <code>0.0.0.0</code> will let the port being bound to <strong>all</strong> network interfaces (be careful not to expose the port unintentionally to the outside world).</p>
-
<h3 id="dual-port">Dual Port</h3>
-
<p>The protocol adapter may be configured to open both a secure and a non-secure port at the same time simply by configuring both ports as described above. For this to work, both ports must be configured to use different port numbers, otherwise startup will fail.</p>
-
<h3 id="ephemeral-ports">Ephemeral Ports</h3>
-
<p>Both the secure as well as the insecure port numbers may be explicitly set to <code>0</code>. The protocol adapter will then use arbitrary (unused) port numbers determined by the operating system during startup.</p>
-
<h2 id="custom-message-mapping">Custom Message Mapping</h2>
-
<p>This protocol adapter supports transformation of messages that have been uploaded by devices before forwarding them
- to downstream consumers. This message mapping can be used to overwrite the deviceID, add additional properties and
- change the payload.</p>
-
+to downstream consumers. This message mapping can be used to overwrite the deviceID, add additional properties and
+change the payload.</p>
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Experimental</h4>
<div>This is an experimental feature. The names of the configuration properties, potential values and the overall functionality are therefore
subject to change without prior notice.</div>
</div>
-
<p>The following table provides an overview of the configuration variables and corresponding command line options for configuring the external
service endpoint(s) for transforming messages:</p>
-
<table>
<thead>
<tr>
-<th align="left">Environment Variable<br>Command Line Option</th>
-<th align="center">Mandatory</th>
-<th align="left">Default Value</th>
-<th align="left">Description</th>
+<th style="text-align:left">Environment Variable<br>Command Line Option</th>
+<th style="text-align:center">Mandatory</th>
+<th style="text-align:left">Default Value</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_HOST</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.host</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The host name or IP address of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_HOST</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.host</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The host name or IP address of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_PORT</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.port</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The port of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_PORT</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.port</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The port of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
</tr>
-
<tr>
-<td align="left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_URI</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.uri</code></td>
-<td align="center">no</td>
-<td align="left">-</td>
-<td align="left">The URI of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
+<td style="text-align:left"><code>HONO_MQTT_MAPPERENDPOINTS_<mapperName>_URI</code><br><code>--hono.mqtt.mapperEndpoints.<mapperName>.uri</code></td>
+<td style="text-align:center">no</td>
+<td style="text-align:left">-</td>
+<td style="text-align:left">The URI of the service to invoke for transforming uploaded messages. The <code><mapperName></code> needs to contain the service name as set in the <em>mapper</em> property of the device’s registration information.</td>
</tr>
</tbody>
</table>
-
<h3 id="implementation">Implementation</h3>
-
-<p>An implementation of the mapper needs to be provided. Following data will be provided to the mapper:
-- HTTP headers:
- - orig_address
- - content-type
- - all strings configured during registration
-- Body
- - The payload of the message is provided in the body of the mapping request</p>
-
-<p>When the mapper responds successfully(=200), the adapter will map the returning values as follows:
-- The header with key <code>device_id</code> will overwrite the current deviceID.
-- The remaining HTTP headers will be added to the downstream message as additional properties.
-- The returned body will be used to replace the payload.</p>
+<p>An implementation of the mapper needs to be provided. Following data will be provided to the mapper:</p>
+<ul>
+<li>HTTP headers:
+<ul>
+<li>orig_address</li>
+<li>content-type</li>
+<li>all strings configured during registration</li>
+</ul>
+</li>
+<li>Body
+<ul>
+<li>The payload of the message is provided in the body of the mapping request</li>
+</ul>
+</li>
+</ul>
+<p>When the mapper responds successfully(=200), the adapter will map the returning values as follows:</p>
+<ul>
+<li>The header with key <code>device_id</code> will overwrite the current deviceID.</li>
+<li>The remaining HTTP headers will be added to the downstream message as additional properties.</li>
+<li>The returned body will be used to replace the payload.</li>
+</ul>
<footer class="footline">
@@ -3378,19 +3381,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/1.6/admin-guide/secure_communication/index.html b/docs/1.6/admin-guide/secure_communication/index.html
index 9600ae4..55f7d86 100644
--- a/docs/1.6/admin-guide/secure_communication/index.html
+++ b/docs/1.6/admin-guide/secure_communication/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
@@ -21,21 +21,21 @@
<title>Secure Communication :: Eclipse Hono™ Vers.: 1.6</title>
- <link href="/hono/docs/css/nucleus.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1617757958" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/atom-one-dark-reasonable.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1617844311" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1617844311" rel="stylesheet">
- <link href="/hono/docs/css/hono.css?1617757958" rel="stylesheet">
+ <link href="/hono/docs/css/hono.css?1617844311" rel="stylesheet">
- <script src="/hono/docs/js/jquery-3.3.1.min.js?1617757958"></script>
+ <script src="/hono/docs/js/jquery-3.3.1.min.js?1617844311"></script>
<style>
:root #header + #content > #left > #rlblock_left{
@@ -83,14 +83,14 @@
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
-<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617757958"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1617844311"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1617844311"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.6";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1617757958"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1617844311"></script>
</div>
@@ -1606,7 +1606,37 @@
- <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/secure_communication/">stable (1.6)</option>
+ <option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/secure_communication/">stable (1.7)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/secure_communication/">1.7</option>
@@ -1632,6 +1662,8 @@
+
+
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/secure_communication/" selected>1.6</option>
@@ -1660,6 +1692,8 @@
+
+
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/secure_communication/">1.5</option>
@@ -1688,6 +1722,8 @@
+
+
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/secure_communication/">1.4</option>
@@ -1716,6 +1752,8 @@
+
+
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/secure_communication/">1.3</option>
@@ -1744,6 +1782,8 @@
+
+
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/secure_communication/">1.2</option>
@@ -1772,6 +1812,8 @@
+
+
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/secure_communication/">1.1</option>
@@ -1800,6 +1842,8 @@
+
+
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/secure_communication/">1.0</option>
@@ -1828,6 +1872,8 @@
+
+
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/secure_communication/">dev</option>
@@ -1884,6 +1930,12 @@
<div id="overlay"></div>
+ <div class="old-version-hint">
+ <p>This page refers to version <em>1.6</em>.
+ You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
+ </p>
+ </div>
+
<div class="padding highlightable">
@@ -1940,27 +1992,26 @@
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
-<ul>
-<li>
-<ul>
-<li><a href="#enabling-tls">Enabling TLS</a>
-<ul>
-<li><a href="#auth-server">Auth Server</a></li>
-<li><a href="#dispatch-router">Dispatch Router</a></li>
-<li><a href="#file-based-device-registry">File Based Device Registry</a></li>
-<li><a href="#mongodb-based-device-registry">MongoDB Based Device Registry</a></li>
-<li><a href="#http-adapter">HTTP Adapter</a></li>
-<li><a href="#mqtt-adapter">MQTT Adapter</a></li>
-<li><a href="#kura-adapter">Kura Adapter</a></li>
-<li><a href="#client-application">Client Application</a></li>
-</ul></li>
-<li><a href="#using-openssl">Using OpenSSL</a>
-<ul>
-<li><a href="#configuring-containers">Configuring Containers</a></li>
-</ul></li>
-<li><a href="#server-name-indication-sni">Server Name Indication (SNI)</a></li>
-</ul></li>
-</ul>
+ <ul>
+ <li><a href="#enabling-tls">Enabling TLS</a>
+ <ul>
+ <li><a href="#auth-server">Auth Server</a></li>
+ <li><a href="#dispatch-router">Dispatch Router</a></li>
+ <li><a href="#file-based-device-registry">File Based Device Registry</a></li>
+ <li><a href="#mongodb-based-device-registry">MongoDB Based Device Registry</a></li>
+ <li><a href="#http-adapter">HTTP Adapter</a></li>
+ <li><a href="#mqtt-adapter">MQTT Adapter</a></li>
+ <li><a href="#kura-adapter">Kura Adapter</a></li>
+ <li><a href="#client-application">Client Application</a></li>
+ </ul>
+ </li>
+ <li><a href="#using-openssl">Using OpenSSL</a>
+ <ul>
+ <li><a href="#configuring-containers">Configuring Containers</a></li>
+ </ul>
+ </li>
+ <li><a href="#server-name-indication-sni">Server Name Indication (SNI)</a></li>
+ </ul>
</nav>
</div>
</div>
@@ -1984,16 +2035,11 @@
-<p>The individual components of an Eclipse Hono™ installation, e.g. the protocol adapters, <em>AMQP Messaging Network</em>, <em>Hono Auth</em> etc., and the clients attaching to Hono in order to send and receive data all communicate with each other using AMQP 1.0 over TCP. The Hono components and the clients will usually not be located on the same local network but will probably communicate over public networking infrastructure. For most use cases it is therefore desirable, if not necessary, to provide for confidentiality of the data being transferred between these components. This section describes how Hono supports confidentiality by means of <em>Transport Layer Security</em> (TLS) and how to configure it.</p>
-
+<p>The individual components of an Eclipse Hono™ installation, e.g. the protocol adapters, <em>AMQP Messaging Network</em>, <em>Hono Auth</em> etc., and the clients attaching to Hono in order to send and receive data all communicate with each other using AMQP 1.0 over TCP. The Hono components and the clients will usually not be located on the same local network but will probably communicate over public networking infrastructure. For most use cases it is therefore desirable, if not necessary, to provide for confidentiality of the data being transferred between these components. This section describes how Hono supports confidentiality by means of <em>Transport Layer Security</em> (TLS) and how to configure it.</p>
<h2 id="enabling-tls">Enabling TLS</h2>
-
<p>All of Hono’s components can be configured to use TLS for establishing an encrypted communication channel with peers. When a client initiates a connection with a server, the TLS handshake protocol is used to negotiate parameters of a secure channel to be used for exchanging data. The most important of those parameters is a secret (symmetric) encryption key that is only known to the client and the server and which is used to transparently encrypt all data being sent over the connection as long as the connection exists. With each new connection, a new secret key is negotiated.</p>
-
<p>Using TLS in this way requires configuring the server component with a cryptographic <em>private/public key</em> pair and a <em>certificate</em> which <em>binds</em> an <em>identity claim</em> to the public key. It is out of scope of this document to describe the full process of creating such a key pair and acquiring a corresponding certificate. The <code>demo-certs</code> module already contains a set of keys and certificates to be used for evaluation and demonstration purposes. Throughout the rest of this section we will use these keys and certificates . Please refer to the <code>demo-certs/README.md</code> file for details regarding how to create your own keys and certificates.</p>
-
<p>Within a Hono installation the following communication channels can be secured with TLS:</p>
-
<ol>
<li>Applications connecting to <em>Dispatch Router</em> - Client applications consuming e.g. Telemetry data from Hono connect to the AMQP Messaging Network. This connection can be secured by configuring the client and the messaging network for TLS.</li>
<li><em>Device Registry</em> connecting to <em>Auth Server</em> - The Device Registry connects to the Auth Server in order to verify client credentials and determine the client’s authorities. This (internal) connection can (should) be secured by configuring the Auth Server and Device Registry for TLS.</li>
@@ -2002,248 +2048,195 @@
<li><em>Devices</em> connecting to a <em>Protocol Adapter</em> - Devices use TLS to both authenticate the protocol adapter and to establish an encrypted channel that provides integrity and privacy when transmitting data. Note that the specifics of if and how TLS can be used with a particular protocol adapter is specific to the transport protocol the adapter uses for communicating with the devices.</li>
<li><em>Liveness/readiness probes</em> connecting to <em>Service Health Checks</em> - Systems like Kubernetes are periodically checking the health status of the individual services . This communication can be secured by configuring the health check of the individual services to expose a secure endpoint.</li>
</ol>
-
<h3 id="auth-server">Auth Server</h3>
-
<p>The Auth Server supports the use of TLS for connections to clients. Please refer to the <a href="/hono/docs/1.6/admin-guide/auth-server-config/">Auth Server admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder includes the following demo keys and certificates to be used with the Auth Server for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>auth-server-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>auth-server-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>auth-server-cert.pem</code></td>
-<td align="left">The example certificate asserting the server’s identity.</td>
+<td style="text-align:left"><code>auth-server-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the server’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="dispatch-router">Dispatch Router</h3>
-
<p>The Dispatch Router reads its configuration from a file on startup (the default location is <code>/etc/qpid-dispatch/qdrouterd.conf</code>). Please refer to the <a href="https://qpid.apache.org/components/dispatch-router/index.html">Dispatch Router documentation</a> for details regarding the configuration of TLS/SSL.</p>
-
<p>The <code>demo-certs/certs</code> folder includes the following demo keys and certificates to be used with the Dispatch Router for that purpose:</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>qdrouter-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>qdrouter-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>qdrouter-cert.pem</code></td>
-<td align="left">The example certificate asserting the server’s identity.</td>
+<td style="text-align:left"><code>qdrouter-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the server’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="file-based-device-registry">File Based Device Registry</h3>
-
<p>The file based Device Registry supports the use of TLS for connections to protocol adapters and the Auth Server.
Please refer to the <a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">file based Device Registry admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys and certificates to be used with the file based Device Registry for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>auth-server-cert.pem</code></td>
-<td align="left">The certificate of the Auth Server, used to verify the signatures of tokens issued by the Auth Server.</td>
+<td style="text-align:left"><code>auth-server-cert.pem</code></td>
+<td style="text-align:left">The certificate of the Auth Server, used to verify the signatures of tokens issued by the Auth Server.</td>
</tr>
-
<tr>
-<td align="left"><code>device-registry-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>device-registry-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>device-registry-cert.pem</code></td>
-<td align="left">The example certificate asserting the server’s identity.</td>
+<td style="text-align:left"><code>device-registry-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the server’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="mongodb-based-device-registry">MongoDB Based Device Registry</h3>
-
<p>The MongoDB based Device Registry supports the use of TLS for connections to protocol adapters and the Auth Server.
Please refer to the <a href="/hono/docs/1.6/admin-guide/mongodb-device-registry-config/">MongoDB based Device Registry admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys and certificates to be used with the MongoDB based Device Registry for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>auth-server-cert.pem</code></td>
-<td align="left">The certificate of the Auth Server, used to verify the signatures of tokens issued by the Auth Server.</td>
+<td style="text-align:left"><code>auth-server-cert.pem</code></td>
+<td style="text-align:left">The certificate of the Auth Server, used to verify the signatures of tokens issued by the Auth Server.</td>
</tr>
-
<tr>
-<td align="left"><code>device-registry-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>device-registry-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>device-registry-cert.pem</code></td>
-<td align="left">The example certificate asserting the server’s identity.</td>
+<td style="text-align:left"><code>device-registry-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the server’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="http-adapter">HTTP Adapter</h3>
-
<p>The HTTP adapter supports the use of TLS for its connections to the Tenant service, the Device Registration service, the Credentials service and the AMQP Messaging Network. The adapter also supports the use of TLS for connections with devices. For this purpose, the adapter can be configured with a server certificate and private key.
Please refer to the <a href="/hono/docs/1.6/admin-guide/http-adapter-config/">HTTP adapter admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys and certificates to be used with the HTTP adapter for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>http-adapter-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>http-adapter-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>http-adapter-cert.pem</code></td>
-<td align="left">The example certificate asserting the adapter’s identity.</td>
+<td style="text-align:left"><code>http-adapter-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the adapter’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="mqtt-adapter">MQTT Adapter</h3>
-
<p>The MQTT adapter supports the use of TLS for its connections to the Tenant service, the Device Registration service, the Credentials service and the AMQP Messaging Network. The adapter also supports the use of TLS for connections with devices. For this purpose, the adapter can be configured with a server certificate and private key.
Please refer to the <a href="/hono/docs/1.6/admin-guide/mqtt-adapter-config/">MQTT adapter admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys and certificates to be used with the MQTT adapter for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>mqtt-adapter-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>mqtt-adapter-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>mqtt-adapter-cert.pem</code></td>
-<td align="left">The example certificate asserting the adapter’s identity.</td>
+<td style="text-align:left"><code>mqtt-adapter-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the adapter’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="kura-adapter">Kura Adapter</h3>
-
<p>The Kura adapter supports the use of TLS for its connections to the Tenant service, the Device Registration service, the Credentials service and the AMQP Messaging Network. The adapter also supports the use of TLS for connections with devices. For this purpose, the adapter can be configured with a server certificate and private key.
Please refer to the <a href="/hono/docs/1.6/admin-guide/kura-adapter-config/">Kura adapter admin guide</a> for details regarding the required configuration steps.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys and certificates to be used with the Kura adapter for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>kura-adapter-key.pem</code></td>
-<td align="left">The example private key for creating signatures.</td>
+<td style="text-align:left"><code>kura-adapter-key.pem</code></td>
+<td style="text-align:left">The example private key for creating signatures.</td>
</tr>
-
<tr>
-<td align="left"><code>kura-adapter-cert.pem</code></td>
-<td align="left">The example certificate asserting the adapter’s identity.</td>
+<td style="text-align:left"><code>kura-adapter-cert.pem</code></td>
+<td style="text-align:left">The example certificate asserting the adapter’s identity.</td>
</tr>
-
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h3 id="client-application">Client Application</h3>
-
<p>When the connection between an application client and Hono (i.e. the Dispatch Router) is supposed to be secured by TLS (which is a good idea),
then the client application needs to be configured to trust the CA that signed the Dispatch Router’s certificate chain.
Clients can use the <code>org.eclipse.hono.client.HonoConnection.newConnection(ClientConfigProperties)</code> method to establish a connection
@@ -2251,102 +2244,74 @@
with the trust store containing the CA’s certificate.
Please refer to the <a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">Hono Client configuration guide</a> for details regarding the
corresponding configuration properties that need to be set.</p>
-
<p>The <code>demo-certs/certs</code> folder contains the following demo keys to be used with client applications for that purpose.</p>
-
<table>
<thead>
<tr>
-<th align="left">File</th>
-<th align="left">Description</th>
+<th style="text-align:left">File</th>
+<th style="text-align:left">Description</th>
</tr>
</thead>
-
<tbody>
<tr>
-<td align="left"><code>trusted-certs.pem</code></td>
-<td align="left">Trusted CA certificates to use for verifying signatures.</td>
+<td style="text-align:left"><code>trusted-certs.pem</code></td>
+<td style="text-align:left">Trusted CA certificates to use for verifying signatures.</td>
</tr>
</tbody>
</table>
-
<h2 id="using-openssl">Using OpenSSL</h2>
-
<p>Hono’s individual services are implemented in Java and therefore, by default, use the SSL/TLS engine that comes with the Java Virtual Machine that the services are running on. In case of the Docker images provided by Hono this is the SSL engine of OpenJDK. While the standard SSL engine has the advantage of being a part of the JVM itself and thus being available on every operating system that the JVM is running on without further installation, it provides only limited performance and throughput when compared to native TLS implementations like <a href="https://www.openssl.org/">OpenSSL</a>.</p>
-
<p>In order to address this problem, the Netty networking library that is used in Hono’s components can be configured to employ the OpenSSL instead of the JVM’s SSL engine by means of Netty’s <a href="http://netty.io/wiki/forked-tomcat-native.html">Forked Tomcat Native</a> (tcnative) module.</p>
-
<p>The tcnative module comes in several flavors, corresponding to the way that the OpenSSL library has been linked in. The statically linked versions include a specific version of OpenSSL (or <a href="https://boringssl.googlesource.com/">BoringSSL</a> for that matter) and is therefore most easy to use on supported platforms, regardless of whether another version of OpenSSL is already installed or not. In contrast, the dynamically linked variants depend on a particular version of OpenSSL being already installed on the operating system. Both approaches have their pros and cons and Hono therefore does not include tcnative in its Docker images by default, i.e. Hono’s services will use the JVM’s default SSL engine by default.</p>
-
<h3 id="configuring-containers">Configuring Containers</h3>
-
<p>When starting up any of Hono’s Docker images as a container, the JVM will look for additional jar files to include in its classpath in the container’s <code>/opt/hono/extensions</code> folder. Thus, using a specific variant of tcnative is just a matter of configuring the container to mount a volume or binding a host folder at that location and putting the desired variant of tcnative into the corresponding volume or host folder.r
Assuming that the Auth Server should be run with the statically linked, BoringSSL based tcnative variant, the following steps are necessary:</p>
-
<ol>
<li><a href="http://netty.io/wiki/forked-tomcat-native.html#how-to-download-netty-tcnative-boringssl-static">Download tcnative</a> matching the platform architecture (<em>linux-x86_64</em>).</li>
<li>Put the jar file to a folder on the Docker host, e.g. <code>/tmp/tcnative</code>.</li>
-
-<li><p>Start the Auth Server Docker image mounting the host folder:</p>
-
-<pre><code class="language-sh">docker run --name hono-auth-server --mount type=bind,src=/tmp/tcnative,dst=/opt/hono/extensions,ro ... eclipse/hono-service-auth
-</code></pre></li>
+<li>Start the Auth Server Docker image mounting the host folder:</li>
</ol>
-
-<p>Note that the command given above does not contain the environment variables and secrets that are usually required to configure the service properly.</p>
-
+<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">docker run --name hono-auth-server --mount type<span style="color:#f92672">=</span>bind,src<span style="color:#f92672">=</span>/tmp/tcnative,dst<span style="color:#f92672">=</span>/opt/hono/extensions,ro ... eclipse/hono-service-auth
+</code></pre></div><p>Note that the command given above does not contain the environment variables and secrets that are usually required to configure the service properly.</p>
<p>When the Auth Server starts up, it will look for a working variant of tcnative on its classpath and (if found) use it for establishing TLS connections. The service’s log file will indicate whether the JVM’s default SSL engine or OpenSSL is used.</p>
-
<p>Using a Docker <em>volume</em> instead of a <em>bind mount</em> works the same way but requires the use of <code>volume</code> as the <em>type</em> of the <code>--mount</code> parameter. Please refer to the <a href="https://docs.docker.com/edge/engine/reference/commandline/service_create/#add-bind-mounts-volumes-or-memory-filesystems">Docker reference documentation</a> for details.</p>
-
<h2 id="server-name-indication-sni">Server Name Indication (SNI)</h2>
-
<p><a href="https://tools.ietf.org/html/rfc6066#section-3">Server Name Indication</a> can be used to indicate to a server the host name that the client wants to
connect to as part of the TLS handshake. This is useful in order to be able to host multiple <em>virtual</em> servers on a single network address.
In particular, SNI allows server components to select a server certificate that matches the domain name indicated by the client using SNI.</p>
-
<p>Hono’s protocol adapters support <em>virtual</em> servers by means of SNI as described above. Devices can then connect to a protocol adapter using any one
of the configured <em>virtual</em> domain names.</p>
-
<p>The following steps a re necessary in order to configure the protocol adapters with multiple <em>virtual</em> servers:</p>
-
<ol>
-<li>Create Server Certificate(s)</li>
-</ol>
-
+<li>
+<p>Create Server Certificate(s)</p>
<p>When a device establishes a connection to one of Hono’s protocol adapters using one of its <em>virtual</em> domain names, then it includes the domain name in
- its TLS <em>hello</em> message by means of the SNI extension. The server can then use this information to determine the matching server certificate and
- corresponding private key that is required to perform the TLS handshake.</p>
-
+its TLS <em>hello</em> message by means of the SNI extension. The server can then use this information to determine the matching server certificate and
+corresponding private key that is required to perform the TLS handshake.</p>
<p>It is therefore necessary to create a private key and certificate for each <em>virtual</em> server to be hosted.
- The <em>virtual</em> server’s domain name needs to be added to the certificate’s <em>Subject Alternative Name</em> (SAN) list in order for Hono to be able to
- determine the key/certificate pair to use for the TLS handshake with the device.
- Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#_server_name_indication_sni">vert.x SNI guide</a> for details on how this works under the hood.</p>
-
+The <em>virtual</em> server’s domain name needs to be added to the certificate’s <em>Subject Alternative Name</em> (SAN) list in order for Hono to be able to
+determine the key/certificate pair to use for the TLS handshake with the device.
+Please refer to the <a href="https://vertx.io/docs/vertx-core/java/#_server_name_indication_sni">vert.x SNI guide</a> for details on how this works under the hood.</p>
<p>Hono’s protocol adapters then need to be configured with the server certificates and keys. In order to do so, the certificates and corresponding private
- keys need to be added to a <em>key store</em>. Hono supports the <em>JKS</em> and <em>PKCS12</em> key store formats for that purpose.
- Once the key store has been created, Hono’s protocol adapters need to be configured with the path to the key store by means of the adapters’
- <code>KEY_STORE_PATH</code> configuration variable. Please refer to the <a href="/hono/docs/1.6/admin-guide/">protocol adapter admin guides</a> for details on how to
- configure the key store path.</p>
-
-<ol>
-<li>Enable SNI for Hono’s Protocol Adapters</li>
-</ol>
-
+keys need to be added to a <em>key store</em>. Hono supports the <em>JKS</em> and <em>PKCS12</em> key store formats for that purpose.
+Once the key store has been created, Hono’s protocol adapters need to be configured with the path to the key store by means of the adapters'
+<code>KEY_STORE_PATH</code> configuration variable. Please refer to the <a href="/hono/docs/1.6/admin-guide/">protocol adapter admin guides</a> for details on how to
+configure the key store path.</p>
+</li>
+<li>
+<p>Enable SNI for Hono’s Protocol Adapters</p>
<p>Hono’s protocol adapters can be configured to support SNI by means of the <code>SNI</code> configuration variable. Please refer to the
- <a href="/hono/docs/1.6/admin-guide/">protocol adapter admin guides</a> for details on how to set this variable.</p>
-
-<ol>
-<li>Verify Configuration</li>
-</ol>
-
+<a href="/hono/docs/1.6/admin-guide/">protocol adapter admin guides</a> for details on how to set this variable.</p>
+</li>
+<li>
+<p>Verify Configuration</p>
<p>The setup can be verified by means of the command line tools that are part of <a href="https://www.openssl.org/">OpenSSL</a>.
- Assuming that the MQTT protocol adapter’s IP address is <code>10.100.84.23</code>, its secure endpoint is bound to port 31884 and it has
- been configured with a certificate using domain name <em>my-hono.eclipse.org</em>, then the following command can be used to test
- if a TLS secured connection with the adapter using that virtual host name can be established successfully:</p>
-
-<pre><code class="language-sh"> openssl s_client -connect 10.100.84.23:31884 -servername my-hono.eclipse.org
-</code></pre>
+Assuming that the MQTT protocol adapter’s IP address is <code>10.100.84.23</code>, its secure endpoint is bound to port 31884 and it has
+been configured with a certificate using domain name <em>my-hono.eclipse.org</em>, then the following command can be used to test
+if a TLS secured connection with the adapter using that virtual host name can be established successfully:</p>
+<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">openssl s_client -connect 10.100.84.23:31884 -servername my-hono.eclipse.org
+</code></pre></div></li>
+</ol>
<footer class="footline">
@@ -3459,19 +3424,19 @@
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
- <script src="/hono/docs/js/clipboard.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1617757959"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617757959"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1617757959"></script>
- <script src="/hono/docs/js/featherlight.min.js?1617757959"></script>
- <script src="/hono/docs/js/highlight.pack.js?1617757959"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1617844312"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1617844312"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1617844312"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1617844312"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1617844312"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617757959"></script>
- <script src="/hono/docs/js/learn.js?1617757959"></script>
- <script src="/hono/docs/js/hugo-learn.js?1617757959"></script>
+ <script src="/hono/docs/js/modernizr.custom-3.6.0.js?1617844312"></script>
+ <script src="/hono/docs/js/learn.js?1617844312"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1617844312"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1617757959" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1617757959"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1617844312" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1617844312"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>