blob: 03bdc1703c60473259b114ae015794b330d26379 [file] [log] [blame]
<!DOCTYPE html>
<html lang="1.0" class="js csstransforms3d">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<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">
<link rel="apple-touch-icon" sizes="180x180" href="/hono/docs/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="48x48" href="/hono/docs/favicon/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="32x32" href="/hono/docs/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/hono/docs/favicon/favicon-16x16.png">
<link rel="manifest" href="/hono/docs/favicon/site.webmanifest">
<link rel="mask-icon" href="/hono/docs/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/hono/docs/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/hono/docs/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<title>HTTP Adapter Configuration :: Eclipse Hono&trade; Vers.: 1.0</title>
<link href="/hono/docs/css/nucleus.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/fontawesome-all.min.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/hybrid.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/featherlight.min.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/perfect-scrollbar.min.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/auto-complete.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/atom-one-dark-reasonable.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/theme.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/hugo-theme.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/theme-hono.css?1626138735" rel="stylesheet">
<link href="/hono/docs/css/hono.css?1626138735" rel="stylesheet">
<script src="/hono/docs/js/jquery-3.3.1.min.js?1626138735"></script>
<style>
:root #header + #content > #left > #rlblock_left{
display:none !important;
}
:not(pre) > code + span.copy-to-clipboard {
display: none;
}
</style>
<link rel="stylesheet" href="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@EclipseHono">
<meta name="twitter:title" content="HTTP Adapter Configuration :: Eclipse Hono&amp;trade; Vers.: 1.0">
<meta name="twitter:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png">
<meta name="twitter:description" content="A set of micro-services for connecting millions of devices.">
<meta property="og:title" content="HTTP Adapter Configuration :: Eclipse Hono&amp;trade; Vers.: 1.0" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.eclipse.org/hono/docs/1.0/admin-guide/http-adapter-config//" />
<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />
</head>
<body class="" data-url="/hono/docs/1.0/admin-guide/http-adapter-config/">
<nav id="sidebar" class="">
<div id="header-wrapper">
<div id="header">
<a href="https://www.eclipse.org/hono/">
<img src="/hono/docs/images/HONO-Logo_Bild-Wort_quer-w-310x120px.svg" alt="Hono logo" class="logo-img">
</a>
</div>
<div class="searchbox">
<label for="search-by"><i class="fas fa-search"></i></label>
<input data-search-input id="search-by" type="search" placeholder="Search...">
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1626138735"></script>
<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1626138735"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.0";
</script>
<script type="text/javascript" src="/hono/docs/js/search.js?1626138735"></script>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/hono/docs/1.0/concepts/" title="Concepts" class="dd-item
">
<a href="/hono/docs/1.0/concepts/">
<i class="far fa-lightbulb"></i> Concepts
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/concepts/device-identity/" title="Device Identity" class="dd-item ">
<a href="/hono/docs/1.0/concepts/device-identity/">
Device Identity
</a>
</li>
<li data-nav-id="/hono/docs/1.0/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
<a href="/hono/docs/1.0/concepts/tenancy/">
Multi-Tenancy
</a>
</li>
<li data-nav-id="/hono/docs/1.0/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
<a href="/hono/docs/1.0/concepts/device-notifications/">
Device Notifications
</a>
</li>
<li data-nav-id="/hono/docs/1.0/concepts/command-and-control/" title="Command &amp; Control" class="dd-item ">
<a href="/hono/docs/1.0/concepts/command-and-control/">
Command &amp; Control
</a>
</li>
<li data-nav-id="/hono/docs/1.0/concepts/resource-limits/" title="Resource limits" class="dd-item ">
<a href="/hono/docs/1.0/concepts/resource-limits/">
Resource limits
</a>
</li>
<li data-nav-id="/hono/docs/1.0/concepts/connection-events/" title="Connection Events" class="dd-item ">
<a href="/hono/docs/1.0/concepts/connection-events/">
Connection Events
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/" title="User Guide" class="dd-item
">
<a href="/hono/docs/1.0/user-guide/">
<i class="fas fa-book-reader"></i> User Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/user-guide/device-registry/" title="Device Registry" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/device-registry/">
Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/http-adapter/">
HTTP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/mqtt-adapter/">
MQTT Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/amqp-adapter/">
AMQP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/kura-adapter/">
Kura Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/sigfox-adapter/">
Sigfox Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.0/user-guide/jmeter_load_tests/" title="Load Tests with JMeter" class="dd-item ">
<a href="/hono/docs/1.0/user-guide/jmeter_load_tests/">
Load Tests with JMeter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/" title="Admin Guide" class="dd-item
parent
">
<a href="/hono/docs/1.0/admin-guide/">
<i class="fas fa-sliders-h"></i> Admin Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/common-config/">
Common Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/auth-server-config/">
Auth Server Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/device-registry-config/" title="Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/device-registry-config/">
Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/device-connection-config/">
Device Connection Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item active">
<a href="/hono/docs/1.0/admin-guide/http-adapter-config/">
HTTP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/amqp-adapter-config/">
AMQP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/mqtt-adapter-config/">
MQTT Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/kura-adapter-config/">
Kura Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/hono-client-configuration/">
Hono Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/amqp-network-config/">
AMQP 1.0 Messaging Network Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/secure_communication/">
Secure Communication
</a>
</li>
<li data-nav-id="/hono/docs/1.0/admin-guide/monitoring-tracing-config/" title="Monitoring &amp; Tracing" class="dd-item ">
<a href="/hono/docs/1.0/admin-guide/monitoring-tracing-config/">
Monitoring &amp; Tracing
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/dev-guide/" title="Developer Guide" class="dd-item
">
<a href="/hono/docs/1.0/dev-guide/">
<i class="fas fa-tools"></i> Developer Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
<a href="/hono/docs/1.0/dev-guide/building_hono/">
Building from Source
</a>
</li>
<li data-nav-id="/hono/docs/1.0/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
<a href="/hono/docs/1.0/dev-guide/java_client_consumer/">
Consuming Messages from Java
</a>
</li>
<li data-nav-id="/hono/docs/1.0/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
<a href="/hono/docs/1.0/dev-guide/custom_http_adapter/">
Implement a Custom Hono HTTP Protocol Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/api/" title="API" class="dd-item
">
<a href="/hono/docs/1.0/api/">
&nbsp;<i class='fas fa-plug'></i>&nbsp;API
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/telemetry/">
Telemetry API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/event/" title="Event API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/event/">
Event API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/command-and-control/" title="Command &amp; Control API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/command-and-control/">
Command &amp; Control API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/tenant/" title="Tenant API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/tenant/">
Tenant API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/device-connection/">
Device Connection API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/device-registration/">
Device Registration API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/credentials/" title="Credentials API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/credentials/">
Credentials API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/authentication/" title="Authentication API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/authentication/">
Authentication API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/management/" title="Device Registry Management API Specification" class="dd-item ">
<a href="/hono/docs/1.0/api/management/">
Device Registry Management API
</a>
</li>
<li data-nav-id="/hono/docs/1.0/api/metrics/" title="Metrics" class="dd-item ">
<a href="/hono/docs/1.0/api/metrics/">
Metrics
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/deployment/" title="Deployment" class="dd-item
">
<a href="/hono/docs/1.0/deployment/">
<i class="fas fa-shipping-fast"></i> Deployment
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
<a href="/hono/docs/1.0/deployment/helm-based-deployment/">
Helm based Deployment
</a>
</li>
<li data-nav-id="/hono/docs/1.0/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
<a href="/hono/docs/1.0/deployment/openshift/">
OpenShift / OKD
</a>
</li>
<li data-nav-id="/hono/docs/1.0/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item ">
<a href="/hono/docs/1.0/deployment/create-kubernetes-cluster/">
Setting up a Kubernetes Cluster
</a>
</li>
<li data-nav-id="/hono/docs/1.0/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
<a href="/hono/docs/1.0/deployment/resource-limitation/">
Limiting Resource Usage
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.0/architecture/" title="Architecture" class="dd-item
">
<a href="/hono/docs/1.0/architecture/">
<i class="fas fa-landmark"></i> Architecture
</a>
<ul>
<li data-nav-id="/hono/docs/1.0/architecture/component-view/" title="Component View" class="dd-item ">
<a href="/hono/docs/1.0/architecture/component-view/">
Component View
</a>
</li>
<li data-nav-id="/hono/docs/1.0/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
<a href="/hono/docs/1.0/architecture/auth/">
Authentication/Authorization
</a>
</li>
</ul>
</li>
</ul>
<section id="shortcuts">
<h3></h3>
<ul>
<li>
<a class="padding" href="https://www.eclipse.org/hono/" title="Hono&#39;s Homepage"><i class='fas fa-home'></i> Hono Home</a>
</li>
<li>
<a class="padding" href="https://www.eclipse.org/hono/getting-started/" title="Getting started with Eclipse Hono"><i class='fas fa-plane-departure'></i> Getting Started</a>
</li>
</ul>
</section>
<section id="prefooter">
<hr/>
<ul>
<li>
<div id="select-box-wrapper">
<div id="select-box">
<a class="padding">
Version:&nbsp;
<div class="select-style">
<select id="select-language" onchange="location = this.value;">
<option id="stable" value="https://www.eclipse.org/hono/docs/admin-guide/http-adapter-config/">stable (1.8)</option>
<option id="1.8" value="https://www.eclipse.org/hono/docs/1.8/admin-guide/http-adapter-config/">1.8</option>
<option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/admin-guide/http-adapter-config/">1.7</option>
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/admin-guide/http-adapter-config/">1.6</option>
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/admin-guide/http-adapter-config/">1.5</option>
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/admin-guide/http-adapter-config/">1.4</option>
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/admin-guide/http-adapter-config/">1.3</option>
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/admin-guide/http-adapter-config/">1.2</option>
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/admin-guide/http-adapter-config/">1.1</option>
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/admin-guide/http-adapter-config/" selected>1.0</option>
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/admin-guide/http-adapter-config/">dev</option>
</select>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
<g>
<g id="arrow-drop-down">
<polygon points="0,63.75 127.5,191.25 255,63.75 " />
</g>
</g>
</svg>
</div>
</a>
</div>
</div>
</li>
</ul>
</section>
<section id="footer">
<p>&copy; 2021 <a href="https://www.eclipse.org/hono/">The Eclipse Hono Project</a></p>
<p>
Documentation built with
<a href="https://gohugo.io/" target="_blank">Hugo</a>
using the
<a href="https://github.com/matcornic/hugo-theme-learn" target="_blank">Learn</a> theme.
</p>
<div class="eclipse-logo">
<a href="https://www.eclipse.org" target="_blank">
<img src="https://www.eclipse.org/hono/docs/images/eclipse_foundation_logo.svg"/>
</a>
</div>
</section>
</div>
</nav>
<section id="body">
<div id="overlay"></div>
<div class="old-version-hint">
<p>This page refers to version <em>1.0</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">
<div>
<div id="top-bar">
<div id="top-github-link">
<a class="github-link" title='Edit this page' href="https://github.com/eclipse/hono/edit/master/site/documentation/content/admin-guide/http-adapter-config.md" target="blank">
<i class="fas fa-code-branch"></i>
<span id="top-github-link-text">Edit this page</span>
</a>
</div>
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
<i class="fas fa-bars"></i>
</a>
</span>
<span id="toc-menu"><i class="fas fa-list-alt"></i></span>
<span class="links">
<a href='/hono/docs/1.0/'>Documentation</a> > <a href='/hono/docs/1.0/admin-guide/'>Admin Guide</a> > HTTP Adapter Configuration
</span>
</div>
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
<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="#amqp-10-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</a></li>
<li><a href="#command--control-connection-configuration">Command &amp; 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="#resource-limits-checker-configuration">Resource Limits Checker Configuration</a></li>
<li><a href="#metrics-configuration">Metrics Configuration</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="head-tags">
</div>
<div id="body-inner">
<h1>
HTTP Adapter Configuration
</h1>
<p>The HTTP protocol adapter exposes a HTTP based API for Eclipse Honoâ„¢&rsquo;s Telemetry and Event endpoints.</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>
<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.0/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 HTTP adapter.</p>
<table>
<thead>
<tr>
<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 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 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 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 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 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 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 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 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 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 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 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 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&rsquo;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 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&rsquo;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 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 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 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 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 &amp; 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>
<h2 id="amqp-10-messaging-network-connection-configuration">AMQP 1.0 Messaging Network Connection Configuration</h2>
<p>The adapter requires 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.0/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>
<h2 id="command--control-connection-configuration">Command &amp; Control Connection Configuration</h2>
<p>The adapter requires 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.0/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="tenant-service-connection-configuration">Tenant Service Connection Configuration</h2>
<p>The adapter requires a connection to an implementation of Hono&rsquo;s <a href="/hono/docs/1.0/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.0/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&rsquo;t contain a <em>cache directive</em> no data will be cached.</p>
<h2 id="device-registration-service-connection-configuration">Device Registration Service Connection Configuration</h2>
<p>The adapter requires a connection to an implementation of Hono&rsquo;s <a href="/hono/docs/1.0/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.0/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&rsquo;t contain a <em>cache directive</em> no data will be cached.</p>
<h2 id="credentials-service-connection-configuration">Credentials Service Connection Configuration</h2>
<p>The adapter requires a connection to an implementation of Hono&rsquo;s <a href="/hono/docs/1.0/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.0/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&rsquo;t contain a <em>cache directive</em> no data will be cached.</p>
<h2 id="device-connection-service-connection-configuration">Device Connection Service Connection Configuration</h2>
<p>The adapter requires a connection to an implementation of Hono&rsquo;s <a href="/hono/docs/1.0/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.0/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>
<h2 id="resource-limits-checker-configuration">Resource Limits Checker Configuration</h2>
<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 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 style="text-align:left"><code>HONO_RESOURCE_LIMITS_PROMETHEUS_BASED_HOST</code><br><code>--hono.resourceLimits.prometheusBased.host</code></td>
<td style="text-align:center">no</td>
<td style="text-align:left">none</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 style="text-align:left"><code>HONO_RESOURCE_LIMITS_PROMETHEUS_BASED_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 style="text-align:left"><code>HONO_RESOURCE_LIMITS_PROMETHEUS_BASED_CACHE_MIN_SIZE</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 style="text-align:left"><code>HONO_RESOURCE_LIMITS_PROMETHEUS_BASED_CACHE_MAX_SIZE</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 style="text-align:left"><code>HONO_RESOURCE_LIMITS_PROMETHEUS_BASED_CACHE_TIMEOUT</code><br><code>--hono.resourceLimits.prometheusBased.cacheTimeout</code></td>
<td style="text-align:center">no</td>
<td style="text-align:left"><code>600</code></td>
<td style="text-align:left">The number of seconds after which the cached metrics data should be considered invalid.</td>
</tr>
</tbody>
</table>
<h2 id="metrics-configuration">Metrics Configuration</h2>
<p>See <a href="/hono/docs/1.0/admin-guide/monitoring-tracing-config/">Monitoring &amp; Tracing Admin Guide</a> for details on how to configure the reporting of metrics.</p>
<footer class="footline">
</footer>
</div>
</div>
<div id="navigation">
</div>
</section>
<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?1626138736"></script>
<script src="/hono/docs/js/perfect-scrollbar.min.js?1626138736"></script>
<script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1626138736"></script>
<script src="/hono/docs/js/jquery.sticky.js?1626138736"></script>
<script src="/hono/docs/js/featherlight.min.js?1626138736"></script>
<script src="/hono/docs/js/highlight.pack.js?1626138736"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="/hono/docs/js/modernizr.custom-3.6.0.js?1626138736"></script>
<script src="/hono/docs/js/learn.js?1626138736"></script>
<script src="/hono/docs/js/hugo-learn.js?1626138736"></script>
<link href="/hono/docs/mermaid/mermaid.css?1626138736" rel="stylesheet" />
<script src="/hono/docs/mermaid/mermaid.js?1626138736"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>
<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
</body>
</html>