blob: 4d9f58756f14bf140fffa62238b02d50ee6126c9 [file] [log] [blame]
<!DOCTYPE html>
<html lang="1.6" 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>Kura Adapter :: Eclipse Hono&trade; Vers.: 1.6</title>
<link href="/hono/docs/css/nucleus.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/fontawesome-all.min.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/hybrid.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/featherlight.min.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/perfect-scrollbar.min.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/auto-complete.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/atom-one-dark-reasonable.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/theme.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/hugo-theme.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/theme-hono.css?1626138722" rel="stylesheet">
<link href="/hono/docs/css/hono.css?1626138722" rel="stylesheet">
<script src="/hono/docs/js/jquery-3.3.1.min.js?1626138722"></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="Kura Adapter :: Eclipse Hono&amp;trade; Vers.: 1.6">
<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="Kura Adapter :: Eclipse Hono&amp;trade; Vers.: 1.6" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.eclipse.org/hono/docs/1.6/user-guide/kura-adapter//" />
<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />
</head>
<body class="" data-url="/hono/docs/1.6/user-guide/kura-adapter/">
<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?1626138722"></script>
<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1626138722"></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?1626138722"></script>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/hono/docs/1.6/concepts/" title="Concepts" class="dd-item
">
<a href="/hono/docs/1.6/concepts/">
<i class="far fa-lightbulb"></i> Concepts
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/concepts/device-identity/" title="Device Identity" class="dd-item ">
<a href="/hono/docs/1.6/concepts/device-identity/">
Device Identity
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
<a href="/hono/docs/1.6/concepts/tenancy/">
Multi-Tenancy
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
<a href="/hono/docs/1.6/concepts/device-provisioning/">
Device Provisioning
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/connecting-devices/" title="Connecting Devices" class="dd-item ">
<a href="/hono/docs/1.6/concepts/connecting-devices/">
Connecting Devices
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
<a href="/hono/docs/1.6/concepts/device-notifications/">
Device Notifications
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/command-and-control/" title="Command &amp; Control" class="dd-item ">
<a href="/hono/docs/1.6/concepts/command-and-control/">
Command &amp; Control
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/resource-limits/" title="Resource limits" class="dd-item ">
<a href="/hono/docs/1.6/concepts/resource-limits/">
Resource limits
</a>
</li>
<li data-nav-id="/hono/docs/1.6/concepts/connection-events/" title="Connection Events" class="dd-item ">
<a href="/hono/docs/1.6/concepts/connection-events/">
Connection Events
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/" title="User Guide" class="dd-item
parent
">
<a href="/hono/docs/1.6/user-guide/">
<i class="fas fa-book-reader"></i> User Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/user-guide/mongodb-based-device-registry/" title="MongoDB Based Device Registry" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/mongodb-based-device-registry/">
MongoDB Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/jdbc-based-device-registry/" title="JDBC Based Device Registry" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/jdbc-based-device-registry/">
JDBC Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/file-based-device-registry/" title="File Based Device Registry" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/file-based-device-registry/">
File Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/http-adapter/">
HTTP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/mqtt-adapter/">
MQTT Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/amqp-adapter/">
AMQP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/coap-adapter/" title="CoAP Adapter" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/coap-adapter/">
CoAP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item active">
<a href="/hono/docs/1.6/user-guide/kura-adapter/">
Kura Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.6/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
<a href="/hono/docs/1.6/user-guide/sigfox-adapter/">
Sigfox Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/" title="Admin Guide" class="dd-item
">
<a href="/hono/docs/1.6/admin-guide/">
<i class="fas fa-sliders-h"></i> Admin Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/common-config/">
Common Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/auth-server-config/">
Auth Server Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/mongodb-device-registry-config/" title="MongoDB Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/mongodb-device-registry-config/">
MongoDB Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/jdbc-device-registry-config/" title="JDBC Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/jdbc-device-registry-config/">
JDBC Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/file-based-device-registry-config/" title="File Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/file-based-device-registry-config/">
File Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/command-router-config/" title="Configuring the Command Router Service" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/command-router-config/">
Command Router Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/device-connection-config/">
Device Connection Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/http-adapter-config/">
HTTP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/mqtt-adapter-config/">
MQTT Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/amqp-adapter-config/">
AMQP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/coap-adapter-config/" title="CoAP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/coap-adapter-config/">
CoAP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/kura-adapter-config/">
Kura Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/hono-client-configuration/">
Hono Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/hono-kafka-client-configuration/" title="Hono Kafka Client Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/hono-kafka-client-configuration/">
Hono Kafka Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/amqp-network-config/">
AMQP 1.0 Messaging Network Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/secure_communication/">
Secure Communication
</a>
</li>
<li data-nav-id="/hono/docs/1.6/admin-guide/monitoring-tracing-config/" title="Monitoring &amp; Tracing" class="dd-item ">
<a href="/hono/docs/1.6/admin-guide/monitoring-tracing-config/">
Monitoring &amp; Tracing
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/dev-guide/" title="Developer Guide" class="dd-item
">
<a href="/hono/docs/1.6/dev-guide/">
<i class="fas fa-tools"></i> Developer Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
<a href="/hono/docs/1.6/dev-guide/building_hono/">
Building from Source
</a>
</li>
<li data-nav-id="/hono/docs/1.6/dev-guide/amqp_adapter_client/" title="AMQP Adapter Client for Java" class="dd-item ">
<a href="/hono/docs/1.6/dev-guide/amqp_adapter_client/">
AMQP Adapter Client for Java
</a>
</li>
<li data-nav-id="/hono/docs/1.6/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
<a href="/hono/docs/1.6/dev-guide/java_client_consumer/">
Consuming Messages from Java
</a>
</li>
<li data-nav-id="/hono/docs/1.6/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
<a href="/hono/docs/1.6/dev-guide/custom_http_adapter/">
Implement a Custom Hono HTTP Protocol Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/api/" title="API" class="dd-item
">
<a href="/hono/docs/1.6/api/">
&nbsp;<i class='fas fa-plug'></i>&nbsp;API
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/telemetry/">
Telemetry API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/event/" title="Event API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/event/">
Event API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/command-and-control/" title="Command &amp; Control API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/command-and-control/">
Command &amp; Control API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/kafka-api/" title="Kafka-based APIs" class="dd-item ">
<a href="/hono/docs/1.6/api/kafka-api/">
Kafka-based APIs
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/telemetry-kafka/" title="Telemetry API for Kafka Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/telemetry-kafka/">
Telemetry API for Kafka
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/event-kafka/" title="Event API for Kafka Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/event-kafka/">
Event API for Kafka
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/tenant/" title="Tenant API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/tenant/">
Tenant API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/command-router/" title="Command Router API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/command-router/">
Command Router API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/device-connection/">
Device Connection API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/device-registration/">
Device Registration API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/credentials/" title="Credentials API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/credentials/">
Credentials API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/authentication/" title="Authentication API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/authentication/">
Authentication API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/management/" title="Device Registry Management API Specification" class="dd-item ">
<a href="/hono/docs/1.6/api/management/">
Device Registry Management API
</a>
</li>
<li data-nav-id="/hono/docs/1.6/api/metrics/" title="Metrics" class="dd-item ">
<a href="/hono/docs/1.6/api/metrics/">
Metrics
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/deployment/" title="Deployment" class="dd-item
">
<a href="/hono/docs/1.6/deployment/">
<i class="fas fa-shipping-fast"></i> Deployment
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
<a href="/hono/docs/1.6/deployment/helm-based-deployment/">
Helm based Deployment
</a>
</li>
<li data-nav-id="/hono/docs/1.6/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
<a href="/hono/docs/1.6/deployment/openshift/">
OpenShift / OKD
</a>
</li>
<li data-nav-id="/hono/docs/1.6/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item ">
<a href="/hono/docs/1.6/deployment/create-kubernetes-cluster/">
Setting up a Kubernetes Cluster
</a>
</li>
<li data-nav-id="/hono/docs/1.6/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
<a href="/hono/docs/1.6/deployment/resource-limitation/">
Limiting Resource Usage
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.6/architecture/" title="Architecture" class="dd-item
">
<a href="/hono/docs/1.6/architecture/">
<i class="fas fa-landmark"></i> Architecture
</a>
<ul>
<li data-nav-id="/hono/docs/1.6/architecture/component-view/" title="Component View" class="dd-item ">
<a href="/hono/docs/1.6/architecture/component-view/">
Component View
</a>
</li>
<li data-nav-id="/hono/docs/1.6/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
<a href="/hono/docs/1.6/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/user-guide/kura-adapter/">stable (1.8)</option>
<option id="1.8" value="https://www.eclipse.org/hono/docs/1.8/user-guide/kura-adapter/">1.8</option>
<option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/user-guide/kura-adapter/">1.7</option>
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/user-guide/kura-adapter/" selected>1.6</option>
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/user-guide/kura-adapter/">1.5</option>
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/user-guide/kura-adapter/">1.4</option>
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/user-guide/kura-adapter/">1.3</option>
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/user-guide/kura-adapter/">1.2</option>
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/user-guide/kura-adapter/">1.1</option>
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/user-guide/kura-adapter/">1.0</option>
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/user-guide/kura-adapter/">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.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">
<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/user-guide/kura-adapter.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.6/'>Documentation</a> > <a href='/hono/docs/1.6/user-guide/'>User Guide</a> > Kura Adapter
</span>
</div>
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
<ul>
<li><a href="#authentication">Authentication</a>
<ul>
<li><a href="#client-certificate">Client Certificate</a></li>
<li><a href="#usernamepassword">Username/Password</a></li>
</ul>
</li>
<li><a href="#resource-limit-checks">Resource Limit Checks</a>
<ul>
<li><a href="#connection-limits">Connection Limits</a></li>
<li><a href="#connection-duration-limits">Connection Duration Limits</a></li>
<li><a href="#message-limits">Message Limits</a></li>
</ul>
</li>
<li><a href="#connection-events">Connection Events</a></li>
<li><a href="#publishing-data">Publishing Data</a></li>
<li><a href="#downstream-meta-data">Downstream Meta Data</a>
<ul>
<li><a href="#event-message-time-to-live">Event Message Time-to-live</a></li>
</ul>
</li>
<li><a href="#tenant-specific-configuration">Tenant specific Configuration</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="head-tags">
</div>
<div id="body-inner">
<h1>
Kura Adapter
</h1>
<p>The Kura protocol adapter exposes an MQTT topic hierarchy allowing Eclipse Kuraâ„¢ based gateways to publish <em>control</em> and <em>data</em> messages to Eclipse Honoâ„¢&rsquo;s Telemetry and Event endpoints.</p>
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Note</h4>
<div>The Kura adapter is supposed to be used with gateways running Kura version 3.x. Gateways running Kura version 4 and later should connect to the MQTT adapter instead.</div>
</div>
<h2 id="authentication">Authentication</h2>
<p>The Kura adapter by default requires devices (gateways) to authenticate during connection establishment.
The adapter supports both the authentication based on the username/password provided in an MQTT CONNECT packet as well as client
certificate based authentication as part of a TLS handshake for that purpose.</p>
<p>The adapter tries to authenticate the device using these mechanisms in the following order</p>
<h3 id="client-certificate">Client Certificate</h3>
<p>When a device uses a client certificate for authentication during the TLS handshake, the adapter tries to determine the tenant
that the device belongs to based on the <em>issuer DN</em> contained in the certificate.
In order for the lookup to succeed, the tenant&rsquo;s trust anchor needs to be configured by means of registering the
<a href="/hono/docs/1.6/api/tenant/#tenant-information-format">trusted certificate authority</a>. The device&rsquo;s client certificate will then be
validated using the registered trust anchor, thus implicitly establishing the tenant that the device belongs to.
In a second step, the adapter uses the Credentials API&rsquo;s <em>get</em> operation to retrieve the credentials on record, including the client
certificate&rsquo;s <em>subject DN</em> as the <em>auth-id</em>, <code>x509-cert</code> as the <em>type</em> of secret and the MQTT client identifier as <em>client-id</em> in the
request payload.</p>
<p><strong>NB</strong> The adapter needs to be <a href="/hono/docs/1.6/admin-guide/secure_communication/#mqtt-adapter">configured for TLS</a> in order to support this mechanism.</p>
<h3 id="usernamepassword">Username/Password</h3>
<p>When a device wants to authenticate using this mechanism, it needs to provide a <em>username</em> and a <em>password</em> in the MQTT <em>CONNECT</em> packet
it sends in order to initiate the connection. The <em>username</em> must have the form <em>auth-id@tenant</em>, e.g. <code>sensor1@DEFAULT_TENANT</code>.
The adapter verifies the credentials provided by the client against the credentials that the
<a href="/hono/docs/1.6/admin-guide/common-config/">configured Credentials service</a> has on record for the client.
The adapter uses the Credentials API&rsquo;s <em>get</em> operation to retrieve the credentials on record, including the <em>tenant</em> and <em>auth-id</em> provided
by the client in the <em>username</em>, <code>hashed-password</code> as the <em>type</em> of secret and the MQTT client identifier as <em>client-id</em> in the request payload.</p>
<p>Please refer to the <a href="http://eclipse.github.io/kura/config/cloud-services.html">Eclipse Kura documentation</a> on how to configure the
gateway&rsquo;s cloud service connection accordingly. It is important to set the gateway&rsquo;s <em>topic.context.account-name</em> to the ID of the
Hono tenant that the gateway has been registered with whereas the gateway&rsquo;s <em>client-id</em> needs to be set to the corresponding Hono
device ID. The <em>auth-id</em> used as part of the gateway&rsquo;s <em>username</em> property needs to match the authentication identifier of a set of
credentials registered for the device ID in Hono&rsquo;s Credentials service. In other words, the credentials configured on the gateway
need to belong to the corresponding device ID.</p>
<p><strong>NB</strong> There is a subtle difference between the <em>device identifier</em> (<em>device-id</em>) and the <em>auth-id</em> a device uses for authentication.
See <a href="/hono/docs/1.6/concepts/device-identity/">Device Identity</a> for a discussion of the concepts.</p>
<h2 id="resource-limit-checks">Resource Limit Checks</h2>
<p>The adapter performs additional checks regarding resource limits when a client tries to connect and/or send a message to the adapter.</p>
<h3 id="connection-limits">Connection Limits</h3>
<p>The adapter rejects a client&rsquo;s connection attempt with return code <code>0x05</code>, indicating <code>Connection Refused: not authorized</code>, if</p>
<ul>
<li>the maximum number of connections per protocol adapter instance is reached, or</li>
<li>if the maximum number of simultaneously connected devices for the tenant is reached.</li>
</ul>
<p>Please refer to <a href="/hono/docs/1.6/concepts/resource-limits/">resource-limits</a> for details.</p>
<h3 id="connection-duration-limits">Connection Duration Limits</h3>
<p>The adapter rejects a client&rsquo;s connection attempt with return code <code>0x05</code>, indicating <code>Connection Refused: not authorized</code>, if the
<a href="/hono/docs/1.6/concepts/resource-limits/#connection-duration-limit">connection duration limit</a> that has been configured for
the client&rsquo;s tenant is exceeded.</p>
<h3 id="message-limits">Message Limits</h3>
<p>The adapter</p>
<ul>
<li>discards any MQTT PUBLISH packet containing telemetry data or an event that is sent by a client and</li>
<li>rejects any AMQP 1.0 message containing a command sent by a north bound application</li>
</ul>
<p>if the <a href="/hono/docs/1.6/concepts/resource-limits/">message limit</a> that has been configured for the device&rsquo;s tenant is exceeded.</p>
<h2 id="connection-events">Connection Events</h2>
<p>The adapter can emit <a href="/hono/docs/1.6/api/event/#connection-event">Connection Events</a> for client connections being established and/or terminated.
Please refer to the <a href="/hono/docs/1.6/admin-guide/common-config/#connection-event-producer-configuration">common configuration options</a>
for details regarding how to enable this behavior.</p>
<p>The adapter includes the <em>client identifier</em> from the client&rsquo;s MQTT CONNECT packet as the Connection Event&rsquo;s <em>remote-id</em>.</p>
<h2 id="publishing-data">Publishing Data</h2>
<p>Once the gateway has established a connection to the Kura adapter, all <em>control</em> and <em>data</em> messages published by applications running on
the gateway are sent to the adapter and mapped to Hono&rsquo;s Telemetry and Event API endpoints as follows:</p>
<ol>
<li>The adapter treats all messages that are published to a topic starting with the configured <code>HONO_KURA_CONTROL_PREFIX</code> as control messages.
All other messages are considered to be data messages.</li>
<li><em>control</em> messages with QoS 0 are forwarded to Hono&rsquo;s telemetry endpoint whereas messages with QoS 1 are forwarded to the event endpoint.
The corresponding AMQP 1.0 messages that are sent downstream have a content type of <code>application/vnd.eclipse.kura-control</code>.</li>
<li><em>data</em> messages with QoS 0 are forwarded to the telemetry endpoint whereas messages with QoS 1 are forwarded to the event endpoint.
The corresponding AMQP 1.0 messages that are sent downstream have a content type of <code>application/vnd.eclipse.kura-data</code>.</li>
</ol>
<h2 id="downstream-meta-data">Downstream Meta Data</h2>
<p>The adapter includes the following meta data in messages being sent downstream:</p>
<table>
<thead>
<tr>
<th style="text-align:left">Name</th>
<th style="text-align:left">Location</th>
<th style="text-align:left">Type</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><em>device_id</em></td>
<td style="text-align:left"><em>application</em></td>
<td style="text-align:left"><em>string</em></td>
<td style="text-align:left">The identifier of the device that the message originates from.</td>
</tr>
<tr>
<td style="text-align:left"><em>orig_adapter</em></td>
<td style="text-align:left"><em>application</em></td>
<td style="text-align:left"><em>string</em></td>
<td style="text-align:left">Contains the adapter&rsquo;s <em>type name</em> which can be used by downstream consumers to determine the protocol adapter that the message has been received over. The Kura adapter&rsquo;s type name is <code>hono-kura-mqtt</code>.</td>
</tr>
<tr>
<td style="text-align:left"><em>orig_address</em></td>
<td style="text-align:left"><em>application</em></td>
<td style="text-align:left"><em>string</em></td>
<td style="text-align:left">Contains the name of the MQTT topic that the Kura gateway has originally published the data to.</td>
</tr>
</tbody>
</table>
<p>The adapter also considers <em>defaults</em> registered for the device at either the <a href="/hono/docs/1.6/api/tenant/#tenant-information-format">tenant</a> or the <a href="/hono/docs/1.6/api/device-registration/#assert-device-registration">device level</a>. The values of the default properties are determined as follows:</p>
<ol>
<li>If the message already contains a non-empty property of the same name, the value if unchanged.</li>
<li>Otherwise, if a default property of the same name is defined in the device&rsquo;s registration information, that value is used.</li>
<li>Otherwise, if a default property of the same name is defined for the tenant that the device belongs to, that value is used.</li>
</ol>
<p>Note that of the standard AMQP 1.0 message properties only the <em>content-type</em> and <em>ttl</em> can be set this way to a default value.</p>
<h3 id="event-message-time-to-live">Event Message Time-to-live</h3>
<p>Events published by devices will usually be persisted by the AMQP Messaging Network in order to support deferred delivery to downstream consumers.
In most cases the AMQP Messaging Network can be configured with a maximum <em>time-to-live</em> to apply to the events so that the events will be removed
from the persistent store if no consumer has attached to receive the event before the message expires.</p>
<p>In order to support environments where the AMQP Messaging Network cannot be configured accordingly, the protocol adapter supports setting a
downstream event message&rsquo;s <em>ttl</em> property based on the default <em>ttl</em> and <em>max-ttl</em> values configured for a tenant/device as described in the <a href="/hono/docs/1.6/api/tenant/#resource-limits-configuration-format">Tenant API</a>.</p>
<h2 id="tenant-specific-configuration">Tenant specific Configuration</h2>
<p>The adapter uses the <a href="/hono/docs/1.6/api/tenant/#get-tenant-information">Tenant API</a> to retrieve <em>tenant specific configuration</em> for adapter type <code>hono-kura-mqtt</code>.
The following properties are (currently) supported:</p>
<table>
<thead>
<tr>
<th style="text-align:left">Name</th>
<th style="text-align:left">Type</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"><em>enabled</em></td>
<td style="text-align:left"><em>boolean</em></td>
<td style="text-align:left"><code>true</code></td>
<td style="text-align:left">If set to <code>false</code> the adapter will reject all data from devices belonging to the tenant.</td>
</tr>
</tbody>
</table>
<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?1626138723"></script>
<script src="/hono/docs/js/perfect-scrollbar.min.js?1626138723"></script>
<script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1626138723"></script>
<script src="/hono/docs/js/jquery.sticky.js?1626138723"></script>
<script src="/hono/docs/js/featherlight.min.js?1626138723"></script>
<script src="/hono/docs/js/highlight.pack.js?1626138723"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="/hono/docs/js/modernizr.custom-3.6.0.js?1626138723"></script>
<script src="/hono/docs/js/learn.js?1626138723"></script>
<script src="/hono/docs/js/hugo-learn.js?1626138723"></script>
<link href="/hono/docs/mermaid/mermaid.css?1626138723" rel="stylesheet" />
<script src="/hono/docs/mermaid/mermaid.js?1626138723"></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>