latest web site changes
diff --git a/docs/concepts/command-and-control/index.html b/docs/concepts/command-and-control/index.html
index b37dea2..0b099fb 100644
--- a/docs/concepts/command-and-control/index.html
+++ b/docs/concepts/command-and-control/index.html
@@ -21,19 +21,19 @@
<title>Command & Control :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955831"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955831"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/command-and-control/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/command-and-control/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/command-and-control/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/command-and-control/">dev</option>
@@ -1662,6 +1699,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2384,20 +2437,20 @@
<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?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955832"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955832"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955832"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955832"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955832"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955832"></script>
- <script src="/hono/docs/js/learn.js?1580955832"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955832"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955832" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955832"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/connection-events/index.html b/docs/concepts/connection-events/index.html
index 8698d95..ff7114f 100644
--- a/docs/concepts/connection-events/index.html
+++ b/docs/concepts/connection-events/index.html
@@ -21,19 +21,19 @@
<title>Connection Events :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955831"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955831"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/connection-events/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/connection-events/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/connection-events/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/connection-events/">dev</option>
@@ -1517,9 +1554,6 @@
-
-
-
@@ -1536,6 +1570,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2242,20 +2295,20 @@
<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?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955832"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955832"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955832"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955832"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955832"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955832"></script>
- <script src="/hono/docs/js/learn.js?1580955832"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955832"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955832" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955832"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/device-identity/index.html b/docs/concepts/device-identity/index.html
index 94c6903..89c090a 100644
--- a/docs/concepts/device-identity/index.html
+++ b/docs/concepts/device-identity/index.html
@@ -21,19 +21,19 @@
<title>Device Identity :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955828" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955828" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955828"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955828"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955828"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955828"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/device-identity/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/device-identity/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/device-identity/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/device-identity/">dev</option>
@@ -1535,6 +1572,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2257,20 +2310,20 @@
<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?1580955828"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955828"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955828"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955828"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955828"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955828"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955828"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955828"></script>
- <script src="/hono/docs/js/learn.js?1580955828"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955828"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955828" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955828"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/device-notifications/index.html b/docs/concepts/device-notifications/index.html
index ec0d04e..94f7209 100644
--- a/docs/concepts/device-notifications/index.html
+++ b/docs/concepts/device-notifications/index.html
@@ -21,19 +21,19 @@
<title>Device Notifications :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955831"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955831"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/device-notifications/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/device-notifications/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/device-notifications/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/device-notifications/">dev</option>
@@ -1611,6 +1648,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2333,20 +2386,20 @@
<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?1580955831"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955831"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955831"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955831"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955831"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955831"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955831"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955831"></script>
- <script src="/hono/docs/js/learn.js?1580955831"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955831"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955831" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955831"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/device-provisioning/auto-provisioning.svg b/docs/concepts/device-provisioning/auto-provisioning.svg
new file mode 100644
index 0000000..64a6b2f
--- /dev/null
+++ b/docs/concepts/device-provisioning/auto-provisioning.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="787.2px" preserveAspectRatio="none" style="width:1238px;height:787px;" version="1.1" viewBox="0 0 1238 787" width="1238.4px" zoomAndPan="magnify"><defs><filter height="300%" id="f10qk0o7i5gq0t" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.4"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.8" dy="4.8" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#DDDDDD" height="769.5" style="stroke: #A80036; stroke-width: 1.2;" width="461.4" x="672" y="4.8"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="138" x="833.7" y="19.2803">Device Registry</text><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="570.9563" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="273" y="127.0313"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="34.9594" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="711" y="213.75"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="34.9594" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="854.4" y="652.2281"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="168.9562" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="1065" y="335.4281"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="213.2813" style="stroke: #000000; stroke-width: 2.4;" width="1049.4" x="162.6" y="353.4281"/><rect fill="#FFFFFF" height="52.725" style="stroke: none; stroke-width: 1.2;" width="1049.4" x="162.6" y="513.9844"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="48" x2="48" y1="89.6719" y2="708.7875"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="279" x2="279" y1="89.6719" y2="708.7875"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="716.4" x2="716.4" y1="89.6719" y2="708.7875"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="860.4" x2="860.4" y1="89.6719" y2="708.7875"/><line style="stroke: #A80036; stroke-width: 1.2; stroke-dasharray: 5.0,5.0;" x1="1071" x2="1071" y1="89.6719" y2="708.7875"/><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="9.6" y="47.3156"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="18" y="71.3098">Device</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="73.2" x="9.6" y="707.5875"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="56.4" x="18" y="731.5816">Device</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="174.6" y="47.3156"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="183" y="71.3098">Hono Protocol Adapter</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="36.3562" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="204" x="174.6" y="707.5875"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="187.2" x="183" y="731.5816">Hono Protocol Adapter</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="75.6" x="676.8" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="58.8" x="685.2" y="51.7535">Tenant</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="702" y="71.3098">API</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="75.6" x="676.8" y="707.5875"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="58.8" x="685.2" y="731.5816">Tenant</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="702" y="751.1379">API</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="177.6" x="769.2" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="160.8" x="777.6" y="51.7535">Device Registration</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="845.4" y="71.3098">API</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="177.6" x="769.2" y="707.5875"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="160.8" x="777.6" y="731.5816">Device Registration</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="845.4" y="751.1379">API</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="110.4" x="1013.4" y="27.7594"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="93.6" x="1021.8" y="51.7535">Credentials</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="1056" y="71.3098">API</text><rect fill="#FEFECE" filter="url(#f10qk0o7i5gq0t)" height="55.9125" style="stroke: #A80036; stroke-width: 1.7999999999999998;" width="110.4" x="1013.4" y="707.5875"/><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="93.6" x="1021.8" y="731.5816">Credentials</text><text fill="#000000" font-family="sans-serif" font-size="16.8" lengthAdjust="spacingAndGlyphs" textLength="25.2" x="1056" y="751.1379">API</text><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="570.9563" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="273" y="127.0313"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="34.9594" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="711" y="213.75"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="34.9594" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="854.4" y="652.2281"/><rect fill="#FFFFFF" filter="url(#f10qk0o7i5gq0t)" height="168.9562" style="stroke: #A80036; stroke-width: 1.2;" width="12" x="1065" y="335.4281"/><polygon fill="#A80036" points="258.6,122.2312,270.6,127.0313,258.6,131.8312,263.4,127.0313" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="48.6" x2="265.8" y1="127.0313" y2="127.0313"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="201.6" x="57" y="120.9521">connect(X.509 Client Cert)</text><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="3.6" style="stroke: #EEEEEE; stroke-width: 1.2;" width="1221" x="3.6" y="161.3109"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="161.3109" y2="161.3109"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="164.9109" y2="164.9109"/><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="27.7594" style="stroke: #000000; stroke-width: 2.4;" width="140.4" x="543.9" y="148.6313"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="117.6" x="551.1" y="167.9115">Query Tenant</text><polygon fill="#A80036" points="696.6,208.95,708.6,213.75,696.6,218.55,701.4,213.75" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="285" x2="703.8" y1="213.75" y2="213.75"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="403.2" x="293.4" y="207.6709">transfer(subject: "get", body: {"subject-dn": $caDN})</text><polygon fill="#A80036" points="298.2,243.9094,286.2,248.7094,298.2,253.5094,293.4,248.7094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="291" x2="715.8" y1="248.7094" y2="248.7094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="333.6" x="305.4" y="242.6303">transfer(status: "200", ..., body: tenant info)</text><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="3.6" style="stroke: #EEEEEE; stroke-width: 1.2;" width="1221" x="3.6" y="282.9891"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="282.9891" y2="282.9891"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="286.5891" y2="286.5891"/><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="27.7594" style="stroke: #000000; stroke-width: 2.4;" width="181.2" x="523.5" y="270.3094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="158.4" x="530.7" y="289.5896">Query Credentials</text><polygon fill="#A80036" points="1050.6,330.6281,1062.6,335.4281,1050.6,340.2281,1055.4,335.4281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="285" x2="1057.8" y1="335.4281" y2="335.4281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="757.2" x="293.4" y="329.349">transfer(subject: "get", body: {"type": "x509-cert", "auth-id": $subjectDN, "client-certificate": $cert})</text><path d="M162.6,353.4281 L239.4,353.4281 L239.4,361.8281 L227.4,373.8281 L162.6,373.8281 L162.6,353.4281 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.2;"/><rect fill="none" height="213.2813" style="stroke: #000000; stroke-width: 2.4;" width="1049.4" x="162.6" y="353.4281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="22.8" x="180.6" y="369.1084">alt</text><text fill="#000000" font-family="sans-serif" font-size="13.2" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88.8" x="257.4" y="368.0807">[First Time]</text><line style="stroke: #A80036; stroke-width: 1.2;" x1="1077" x2="1127.4" y1="453.825" y2="453.825"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1127.4" x2="1127.4" y1="453.825" y2="469.425"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="1078.2" x2="1127.4" y1="469.425" y2="469.425"/><polygon fill="#A80036" points="1090.2,464.625,1078.2,469.425,1090.2,474.225,1085.4,469.425" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="51.6" x="1085.4" y="393.2678">Create</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="120" x="1085.4" y="411.4271">Credentials and</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="91.2" x="1085.4" y="429.5865">Registration</text><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="87.6" x="1085.4" y="447.7459">Information</text><path d="M706.8,409.0266 L706.8,439.0266 L1053.6,439.0266 L1053.6,421.0266 L1041.6,409.0266 L706.8,409.0266 " fill="#FBFB77" filter="url(#f10qk0o7i5gq0t)" style="stroke: #A80036; stroke-width: 1.2;"/><path d="M1041.6,409.0266 L1041.6,421.0266 L1053.6,421.0266 L1041.6,409.0266 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.2;"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="321.6" x="714" y="429.5068">If device Registry does not find credentials</text><polygon fill="#A80036" points="298.2,499.5844,286.2,504.3844,298.2,509.1844,293.4,504.3844" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="291" x2="1069.8" y1="504.3844" y2="504.3844"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="343.2" x="305.4" y="498.3053">transfer(status: "201", body: credentials info)</text><line style="stroke: #000000; stroke-width: 1.2; stroke-dasharray: 2.0,2.0;" x1="162.6" x2="1212" y1="515.1844" y2="515.1844"/><text fill="#000000" font-family="sans-serif" font-size="13.2" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="159.6" x="168.6" y="527.4369">[Following requests]</text><polygon fill="#A80036" points="298.2,552.3094,286.2,557.1094,298.2,561.9094,293.4,557.1094" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="291" x2="1069.8" y1="557.1094" y2="557.1094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="343.2" x="305.4" y="551.0303">transfer(status: "200", body: credentials info)</text><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="3.6" style="stroke: #EEEEEE; stroke-width: 1.2;" width="1221" x="3.6" y="599.7891"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="599.7891" y2="599.7891"/><line style="stroke: #000000; stroke-width: 1.2;" x1="3.6" x2="1224.6" y1="603.3891" y2="603.3891"/><rect fill="#EEEEEE" filter="url(#f10qk0o7i5gq0t)" height="27.7594" style="stroke: #000000; stroke-width: 2.4;" width="296.4" x="465.9" y="587.1094"/><text fill="#000000" font-family="sans-serif" font-size="15.6" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="273.6" x="473.1" y="606.3896">Query Registration Information</text><polygon fill="#A80036" points="840,647.4281,852,652.2281,840,657.0281,844.8,652.2281" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="285" x2="847.2" y1="652.2281" y2="652.2281"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="274.8" x="293.4" y="646.149">transfer(subject: "assert", device-id)</text><polygon fill="#A80036" points="298.2,682.3875,286.2,687.1875,298.2,691.9875,293.4,687.1875" style="stroke: #A80036; stroke-width: 1.2;"/><line style="stroke: #A80036; stroke-width: 1.2;" x1="291" x2="859.2" y1="687.1875" y2="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="15.6" lengthAdjust="spacingAndGlyphs" textLength="391.2" x="305.4" y="681.1084">transfer(status: "200", ..., body: registration status)</text><!--MD5=[5723191dc61232a9f18dcb3faf30bdcb]
+@startuml
+skinparam BoxPadding 10
+scale 1.2
+
+participant "Device"
+participant "Hono Protocol Adapter" as PA
+box "Device Registry"
+ participant "Tenant\nAPI" as tenant
+ participant "Device Registration\nAPI" as reg
+ participant "Credentials\nAPI" as cred
+end box
+
+Device -> PA++: connect(X.509 Client Cert)
+
+
+== Query Tenant ==
+PA -> tenant++: transfer(subject: "get", body: {"subject-dn": $caDN})
+PA <- tenant- -: transfer(status: "200", ..., body: tenant info)
+
+== Query Credentials ==
+PA -> cred++: transfer(subject: "get", body: {"type": "x509-cert", "auth-id": $subjectDN, "client-certificate": $cert})
+
+alt First Time
+ cred -> cred: Create\nCredentials and \nRegistration\nInformation
+ note left: If device Registry does not find credentials
+
+ PA <- cred- -: transfer(status: "201", body: credentials info)
+else Following requests
+ PA <- cred- -: transfer(status: "200", body: credentials info)
+end
+
+== Query Registration Information ==
+PA -> reg++: transfer(subject: "assert", device-id)
+PA <- reg- -: transfer(status: "200", ..., body: registration status)
+@enduml
+
+PlantUML version 1.2019.13(Tue Dec 10 17:18:29 UTC 2019)
+(GPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 1.7.0_25-b15
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/docs/concepts/device-provisioning/index.html b/docs/concepts/device-provisioning/index.html
new file mode 100644
index 0000000..4983688
--- /dev/null
+++ b/docs/concepts/device-provisioning/index.html
@@ -0,0 +1,2394 @@
+<!DOCTYPE html>
+<html lang="stable" 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.54.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>Device Provisioning :: Eclipse Hono™</title>
+
+
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
+
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
+
+
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
+
+ <style type="text/css">
+ :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">
+<link rel="stylesheet" href='/hono/docs/css/hono.css'>
+
+
+<meta name="twitter:card" content="summary_large_image">
+<meta name="twitter:site" content="@EclipseHono">
+<meta name="twitter:title" content="Device Provisioning :: Eclipse Hono&trade;">
+<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="Device Provisioning :: Eclipse Hono&trade;" />
+<meta property="og:type" content="website" />
+<meta property="og:url" content="https://www.eclipse.org/hono/docs/concepts/device-provisioning//" />
+<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />
+
+ </head>
+ <body class="" data-url="/hono/docs/concepts/device-provisioning/">
+ <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?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
+<script type="text/javascript">
+
+ var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
+
+</script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
+
+
+ </div>
+
+ <div class="highlightable">
+ <ul class="topics">
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/" title="Concepts" class="dd-item
+ parent
+
+
+ ">
+ <a href="/hono/docs/concepts/">
+ <i class="far fa-lightbulb"></i> Concepts
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-identity/" title="Device Identity" class="dd-item ">
+ <a href="/hono/docs/concepts/device-identity/">
+ Device Identity
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
+ <a href="/hono/docs/concepts/tenancy/">
+ Multi-Tenancy
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
+ <a href="/hono/docs/concepts/device-notifications/">
+ Device Notifications
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/command-and-control/" title="Command & Control" class="dd-item ">
+ <a href="/hono/docs/concepts/command-and-control/">
+ Command & Control
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/resource-limits/" title="Resource limits" class="dd-item ">
+ <a href="/hono/docs/concepts/resource-limits/">
+ Resource limits
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/connection-events/" title="Connection Events" class="dd-item ">
+ <a href="/hono/docs/concepts/connection-events/">
+ Connection Events
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item active">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/" title="User Guide" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/user-guide/">
+ <i class="fas fa-book-reader"></i> User Guide
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/device-registry/" title="Device Registry" class="dd-item ">
+ <a href="/hono/docs/user-guide/device-registry/">
+ Device Registry
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item ">
+ <a href="/hono/docs/user-guide/http-adapter/">
+ HTTP Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
+ <a href="/hono/docs/user-guide/mqtt-adapter/">
+ MQTT Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
+ <a href="/hono/docs/user-guide/amqp-adapter/">
+ AMQP Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item ">
+ <a href="/hono/docs/user-guide/kura-adapter/">
+ Kura Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
+ <a href="/hono/docs/user-guide/sigfox-adapter/">
+ Sigfox Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/user-guide/jmeter_load_tests/" title="Load Tests with JMeter" class="dd-item ">
+ <a href="/hono/docs/user-guide/jmeter_load_tests/">
+ Load Tests with JMeter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/" title="Admin Guide" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/admin-guide/">
+ <i class="fas fa-sliders-h"></i> Admin Guide
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/common-config/">
+ Common Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/auth-server-config/">
+ Auth Server Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/device-registry-config/" title="Device Registry Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/device-registry-config/">
+ Device Registry Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
+ <a href="/hono/docs/admin-guide/device-connection-config/">
+ Device Connection Service Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/http-adapter-config/">
+ HTTP Adapter Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/amqp-adapter-config/">
+ AMQP Adapter Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/mqtt-adapter-config/">
+ MQTT Adapter Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/kura-adapter-config/">
+ Kura Adapter Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/hono-client-configuration/">
+ Hono Client Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
+ <a href="/hono/docs/admin-guide/amqp-network-config/">
+ AMQP 1.0 Messaging Network Configuration
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
+ <a href="/hono/docs/admin-guide/secure_communication/">
+ Secure Communication
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/admin-guide/monitoring-tracing-config/" title="Monitoring & Tracing" class="dd-item ">
+ <a href="/hono/docs/admin-guide/monitoring-tracing-config/">
+ Monitoring & Tracing
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/dev-guide/" title="Developer Guide" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/dev-guide/">
+ <i class="fas fa-tools"></i> Developer Guide
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
+ <a href="/hono/docs/dev-guide/building_hono/">
+ Building from Source
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
+ <a href="/hono/docs/dev-guide/java_client_consumer/">
+ Consuming Messages from Java
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
+ <a href="/hono/docs/dev-guide/custom_http_adapter/">
+ Implement a Custom Hono HTTP Protocol Adapter
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/" title="API" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/api/">
+ <i class='fas fa-plug'></i> API
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
+ <a href="/hono/docs/api/telemetry/">
+ Telemetry API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/event/" title="Event API Specification" class="dd-item ">
+ <a href="/hono/docs/api/event/">
+ Event API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/command-and-control/" title="Command & Control API Specification" class="dd-item ">
+ <a href="/hono/docs/api/command-and-control/">
+ Command & Control API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/tenant/" title="Tenant API Specification" class="dd-item ">
+ <a href="/hono/docs/api/tenant/">
+ Tenant API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
+ <a href="/hono/docs/api/device-connection/">
+ Device Connection API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
+ <a href="/hono/docs/api/device-registration/">
+ Device Registration API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/credentials/" title="Credentials API Specification" class="dd-item ">
+ <a href="/hono/docs/api/credentials/">
+ Credentials API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/authentication/" title="Authentication API Specification" class="dd-item ">
+ <a href="/hono/docs/api/authentication/">
+ Authentication API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/management/" title="Device Registry Management API Specification" class="dd-item ">
+ <a href="/hono/docs/api/management/">
+ Device Registry Management API
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/api/metrics/" title="Metrics" class="dd-item ">
+ <a href="/hono/docs/api/metrics/">
+ Metrics
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/deployment/" title="Deployment" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/deployment/">
+ <i class="fas fa-shipping-fast"></i> Deployment
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
+ <a href="/hono/docs/deployment/helm-based-deployment/">
+ Helm based Deployment
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
+ <a href="/hono/docs/deployment/openshift/">
+ OpenShift / OKD
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item ">
+ <a href="/hono/docs/deployment/create-kubernetes-cluster/">
+ Setting up a Kubernetes Cluster
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
+ <a href="/hono/docs/deployment/resource-limitation/">
+ Limiting Resource Usage
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/architecture/" title="Architecture" class="dd-item
+
+
+
+ ">
+ <a href="/hono/docs/architecture/">
+ <i class="fas fa-landmark"></i> Architecture
+
+ </a>
+
+
+ <ul>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/architecture/component-view/" title="Component View" class="dd-item ">
+ <a href="/hono/docs/architecture/component-view/">
+ Component View
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
+ <a href="/hono/docs/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'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:
+ <div class="select-style">
+ <select id="select-language" onchange="location = this.value;">
+
+
+
+
+
+
+
+
+ <option id="stable" value="/hono/docs/concepts/device-provisioning/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="dev" value="/hono/docs/dev/concepts/device-provisioning/">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>© 2020 <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="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/concepts/device-provisioning/index.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/'>Documentation</a> > <a href='/hono/docs/concepts/'>Concepts</a> > Device Provisioning
+
+
+
+
+
+
+
+ </span>
+ </div>
+
+ <div class="progress">
+ <div class="wrapper">
+<nav id="TableOfContents">
+<ul>
+<li>
+<ul>
+<li><a href="#manual-device-provisioning">Manual Device Provisioning</a></li>
+<li><a href="#automatic-device-provisioning">Automatic Device Provisioning</a>
+<ul>
+<li><a href="#prerequisites">Prerequisites</a></li>
+<li><a href="#sequence-of-steps-in-auto-provisioning">Sequence of steps in Auto-Provisioning</a>
+<ul>
+<li><a href="#step-1-configure-the-tenant">Step 1: Configure the Tenant</a></li>
+<li><a href="#step-2-connect-an-unregistered-device-to-hono">Step 2: Connect an unregistered Device to Hono</a></li>
+</ul></li>
+</ul></li>
+</ul></li>
+</ul>
+</nav>
+ </div>
+</div>
+
+
+ </div>
+ </div>
+
+
+
+ <div id="body-inner">
+
+ <h1>Device Provisioning</h1>
+
+
+
+
+
+
+
+<p>This page describes how devices are provisioned in Hono, i.e. how their digital representation is generated.
+For each device, registration information is stored that defines a device identity.
+Each device belongs to exactly one tenant. Each device must have at least one set of credentials that are used to authenticate to Hono.</p>
+
+<p>To get an understanding of what is meant by the terms <em>tenant</em>, <em>device registration</em> and <em>credentials</em>,
+it is recommended to read the [Device Identity](/hono/docs/concepts/device-identity/ page first.</p>
+
+<p>So in order to use a device with Hono, it has to be provisioned.
+This means that registration information and at least one credential record must be stored in the device registry.</p>
+
+<p>There are different ways to perform device provisioning.</p>
+
+<h2 id="manual-device-provisioning">Manual Device Provisioning</h2>
+
+<p>Devices can be provisioned using Hono’s <a href="/hono/docs/api/management/">Management API</a> via REST.</p>
+
+<p>If the desired <em>tenant</em> does not yet exist, it must be created first.
+How to do this is described in the <a href="/hono/docs/user-guide/device-registry/#add-a-tenant">User Guide</a> of the Device Registry.</p>
+
+<p>The actual Device Provisioning is then performed as described under <a href="/hono/docs/user-guide/device-registry/#register-device">Register Device</a>.
+This creates both a device registration and an (empty) credentials record.
+The last step is to add real credentials, as described in <a href="/hono/docs/user-guide/device-registry/#update-credentials-for-a-device">Update Credentials for a Device</a>.</p>
+
+<h2 id="automatic-device-provisioning">Automatic Device Provisioning</h2>
+
+<p>The term <em>Auto-Provisioning</em> denotes a feature of Hono where the Device Registry automatically generates
+the credentials and registration information for a device the first time it connects.
+Auto-Provisioning is supported by Hono’s protocol adapters for devices that authenticate with client certificates.
+The feature can be enabled per certificate authority (CA) at the tenant.</p>
+
+<h3 id="prerequisites">Prerequisites</h3>
+
+<p>Hono does not require a specific Device Registry implementation, but only specifies a set of APIs that must be provided by a compatible implementation.
+Since the main part of the <em>Auto-Provisioning</em> has to be done by the Device Registry, the used implementation must explicitly support this feature.</p>
+
+<h3 id="sequence-of-steps-in-auto-provisioning">Sequence of steps in Auto-Provisioning</h3>
+
+<p><em>Auto-Provisioning</em> consists of two steps.</p>
+
+<h4 id="step-1-configure-the-tenant">Step 1: Configure the Tenant</h4>
+
+<p>The CA to be used by the devices needs to be configured. The following tasks must be performed:</p>
+
+<ol>
+<li>Create tenant</li>
+<li>Configure the trusted CA for the tenant</li>
+<li>Enable the feature for the CA</li>
+</ol>
+
+<p>If the Device Registry implementation provides the <a href="/hono/docs/api/management/">Management API</a>, this could be done in a single step.
+For details refer to the <a href="/hono/docs/api/tenant/#trusted-ca-format">Tenant API specification</a>.</p>
+
+<h4 id="step-2-connect-an-unregistered-device-to-hono">Step 2: Connect an unregistered Device to Hono</h4>
+
+<figure>
+ <img src="auto-provisioning.svg"
+ alt="A unregistered device connects to a protocol adapter which uses the Credentials API to provision it"/> <figcaption>
+ <h4>Automatic Provisioning of a Device</h4>
+ </figcaption>
+</figure>
+
+
+<p>Hono’s protocol adapters query the APIs of the Device Registry during <a href="/hono/docs/concepts/device-identity/">Device Authentication</a>.
+First, the Tenant API is queried. If the Tenant configuration returned contains the CA used for authentication and the
+feature is switched on for this CA, the protocol adapter assumes that automatic provisioning must be performed.
+It puts the device’s certificate into the query to enable the device registry to do the provisioning.</p>
+
+<p>If the Device Registry does not find any credentials for the device, it takes the information from the client
+certificate to create both credentials and device registration data for it.</p>
+
+<p>The Device Registry is expected to perform the following steps:</p>
+
+<ol>
+<li>Generate a unique device-id</li>
+<li>Create device</li>
+<li>Create credentials</li>
+<li>Optional: Provision device in external systems</li>
+</ol>
+
+<p>The newly created credentials are returned to the protocol adapter in the response as if they had been present before.</p>
+
+<p>The following query of the Device Registration API returns the previously generated registration data.</p>
+
+<p>The provisioning is, of course, a one-time action, on subsequent connections the APIs simply return the stored records.</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?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
+ <script>hljs.initHighlightingOnLoad();</script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
+
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></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>
+
diff --git a/docs/concepts/index.html b/docs/concepts/index.html
index cd9eafc..cbeb363 100644
--- a/docs/concepts/index.html
+++ b/docs/concepts/index.html
@@ -21,19 +21,19 @@
<title>Concepts :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955831"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955831"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/">dev</option>
@@ -1480,6 +1517,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2202,20 +2255,20 @@
<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?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955832"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955832"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955832"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955832"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955832"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955832"></script>
- <script src="/hono/docs/js/learn.js?1580955832"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955832"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955832" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955832"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/index.xml b/docs/concepts/index.xml
index 6102dac..13b44d2 100644
--- a/docs/concepts/index.xml
+++ b/docs/concepts/index.xml
@@ -66,5 +66,15 @@
<description>Hono&rsquo;s protocol adapters can use connection events to indicate the connection status of a device. In particular, an adapter can notify downstream components about a newly established connection with a device or about a device having disconnected. The connection status of devices using stateful protocols like MQTT and AMQP can usually be determined quite easily because these protocols often require peers to explicitly open or close a connection and often also support a kind of heart beat which can be used to determine if a connection is still alive.</description>
</item>
+ <item>
+ <title>Device Provisioning</title>
+ <link>https://www.eclipse.org/hono/docs/concepts/device-provisioning/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://www.eclipse.org/hono/docs/concepts/device-provisioning/</guid>
+ <description>This page describes how devices are provisioned in Hono, i.e. how their digital representation is generated. For each device, registration information is stored that defines a device identity. Each device belongs to exactly one tenant. Each device must have at least one set of credentials that are used to authenticate to Hono.
+To get an understanding of what is meant by the terms tenant, device registration and credentials, it is recommended to read the [Device Identity](/hono/docs/concepts/device-identity/ page first.</description>
+ </item>
+
</channel>
</rss>
\ No newline at end of file
diff --git a/docs/concepts/resource-limits/index.html b/docs/concepts/resource-limits/index.html
index 47dbe81..cf3966d 100644
--- a/docs/concepts/resource-limits/index.html
+++ b/docs/concepts/resource-limits/index.html
@@ -21,19 +21,19 @@
<title>Resource limits :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955831" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955831" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955831"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955831"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955831"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/resource-limits/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/resource-limits/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/resource-limits/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/resource-limits/">dev</option>
@@ -1330,6 +1367,7 @@
<li>
<ul>
<li><a href="#connections-limit">Connections Limit</a></li>
+<li><a href="#connection-duration-limit">Connection Duration Limit</a></li>
<li><a href="#messages-limit">Messages Limit</a></li>
</ul></li>
</ul>
@@ -1363,11 +1401,47 @@
<p>The MQTT and AMQP protocol adapters keep the connections longer opened than their counterparts such as HTTP. Thereby the MQTT and AMQP adapters are enabled to check the connection limits before accepting any new connection to a device.</p>
+<h2 id="connection-duration-limit">Connection Duration Limit</h2>
+
+<p>Before accepting a new connection request from a device, the overall amount of time that the devices have already been connected to protocol adapters for that tenant is checked against the configured limit by the protocol adapters. The connection request is declined if the connection duration limit has been already reached. This limit is only supported by protocol adapters that maintain <em>connection state</em> with authenticated devices. In particular, the HTTP adapter does not support this metric.</p>
+
+<p>The default Prometheus based implementation uses connection duration as the factor to limit the connections. This default implementation supports two modes of connection duration limit calculation namely <code>days</code> and <code>monthly</code>. For more details on how to set the mode refer to the <a href="/hono/docs/api/tenant/#resource-limits-period-configuration-format">Tenant API</a>. If the period is not set explicitly, then the mode is assumed as <em>monthly</em> in the default implementation.</p>
+
+<p>In the <code>monthly</code> mode, further device connections are only allowed, if the overall amount of time that the devices have already been connected from the beginning till the end of the current (Gregorian) calendar month does not exceed the configured <em>max-minutes</em> value. But for the first month, on which the connection duration limit became effective, the <em>effective connection duration limit</em> is calculated based on the <em>max-minutes</em> with respect to the remaining days in that month from the <em>effective-since</em> date.</p>
+
+<p>Below is a sample resource limit configuration for a tenant, where it has been defined that the connection duration limit became effective on 10.Jul.2019 and the maximum connection duration limit for every month is 50,000 minutes. It means that from August 2019, the connection limit check ensures that no more connections are allowed for that tenant, if that limit of 50,000 minutes is already reached. But in case of July 2019, the month on which the message limit became effective, the <em>effective connection duration limit</em> is calculated by finding the average limit for a day from the configured <em>max-minutes</em> and then multiplying it with the number of days from the <em>effective-since</em> date till the end of that month. In this case it is calculated as <em>(50,000 minutes / 31 days) x 22 days</em>, which is 35,483 minutes. It means that for the month of July 2019, no more new connections are allowed, if the limit of 35,843 minutes is already reached.</p>
+
+<pre><code class="language-json">"resource-limits": {
+ "connection-duration": {
+ "effective-since": "2019-07-10T14:30:00Z",
+ "max-minutes": 50000,
+ "period": {
+ "mode": "monthly"
+ }
+ }
+}
+
+</code></pre>
+
+<p>In the <code>days</code> mode, further device connections are only allowed, if the overall amount of time that the devices have already been connected for the configured <em>no-of-days</em> does not exceed the <em>max-minutes</em> value. In the below sample configuration, the mode is configured as <code>days</code> and the accounting duration as 30 days. In this case the connection duration limit check ensures that new connections are accepted, only if the connection duration usage for every 30 days from 10.Jul.2019 (<code>effective-since</code>) does not exceed the 50,000 minutes limit.</p>
+
+<pre><code class="language-json">"resource-limits": {
+ "connection-duration": {
+ "effective-since": "2019-07-10T14:30:00Z",
+ "max-minutes": 50000,
+ "period": {
+ "mode": "days",
+ "no-of-days": 30
+ }
+ }
+}
+</code></pre>
+
<h2 id="messages-limit">Messages Limit</h2>
<p>Hono supports limiting the number of messages that devices and north bound applications of a tenant can publish to Hono during a given time interval. Before accepting any telemetry or event or command messages from devices or north bound applications, it is checked by the protocol adapters that if the message limit is exceeded or not. The incoming message is discarded if the limit is exceeded.</p>
-<p>The default Prometheus based implementation uses data volume as the factor to limit the messages. The data volume already consumed by a tenant over the given time interval is compared with the configured message limit before accepting any messages. The default implementation supports two modes of message limits calculation namely <code>days</code> and <code>monthly</code>. For more details on how to set the mode refer to the <a href="/hono/docs/api/tenant/#data-volume-period-configuration-format">Tenant API</a>.</p>
+<p>The default Prometheus based implementation uses data volume as the factor to limit the messages. The data volume already consumed by a tenant over the given time interval is compared with the configured message limit before accepting any messages. The default implementation supports two modes of message limits calculation namely <code>days</code> and <code>monthly</code>. For more details on how to set the mode refer to the <a href="/hono/docs/api/tenant/#resource-limits-period-configuration-format">Tenant API</a>. If the period is not set explicitly, then the mode is assumed as <em>monthly</em> in the default implementation.</p>
<p>In the <code>monthly</code> mode, the message limit check ensures that the data usage from the beginning till the end of a (Gregorian) calendar month does not exceed the <em>max-bytes</em> value. But for the first month on which the message limit became effective, the <em>effective max-bytes</em> are calculated based on the <em>max-bytes</em> with respect to the remaining days in that month from the <em>effective-since</em> date.</p>
@@ -1547,6 +1621,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2269,20 +2359,20 @@
<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?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955832"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955832"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955832"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955832"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955832"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955832"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955832"></script>
- <script src="/hono/docs/js/learn.js?1580955832"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955832"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955832" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955832"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
diff --git a/docs/concepts/tenancy/index.html b/docs/concepts/tenancy/index.html
index d6e9dbc..b9a09d5 100644
--- a/docs/concepts/tenancy/index.html
+++ b/docs/concepts/tenancy/index.html
@@ -21,19 +21,19 @@
<title>Multi-Tenancy :: Eclipse Hono™</title>
- <link href="/hono/docs/css/nucleus.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/fontawesome-all.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/hybrid.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/featherlight.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/perfect-scrollbar.min.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/auto-complete.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/theme.css?1580955828" rel="stylesheet">
- <link href="/hono/docs/css/hugo-theme.css?1580955828" rel="stylesheet">
+ <link href="/hono/docs/css/nucleus.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/fontawesome-all.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hybrid.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/featherlight.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/perfect-scrollbar.min.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/auto-complete.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/theme.css?1581042223" rel="stylesheet">
+ <link href="/hono/docs/css/hugo-theme.css?1581042223" rel="stylesheet">
- <link href="/hono/docs/css/theme-hono.css?1580955828" rel="stylesheet">
+ <link href="/hono/docs/css/theme-hono.css?1581042223" rel="stylesheet">
- <script src="/hono/docs/js/jquery-2.x.min.js?1580955828"></script>
+ <script src="/hono/docs/js/jquery-2.x.min.js?1581042223"></script>
<style type="text/css">
: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?1580955828"></script>
-<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1580955828"></script>
+<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1581042223"></script>
+<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1581042223"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
</script>
-<script type="text/javascript" src="/hono/docs/js/search.js?1580955828"></script>
+<script type="text/javascript" src="/hono/docs/js/search.js?1581042223"></script>
</div>
@@ -238,6 +238,25 @@
+
+
+
+
+
+
+
+ <li data-nav-id="/hono/docs/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
+ <a href="/hono/docs/concepts/device-provisioning/">
+ Device Provisioning
+
+ </a>
+ </li>
+
+
+
+
+
+
</ul>
@@ -1201,7 +1220,23 @@
- <option id="stable" value="/hono/docs/concepts/tenancy/" selected>stable (1.0)</option>
+ <option id="stable" value="/hono/docs/concepts/tenancy/" selected>stable (1.1)</option>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <option id="1.0" value="/hono/docs/1.0/concepts/tenancy/">1.0</option>
@@ -1213,6 +1248,8 @@
+
+
<option id="dev" value="/hono/docs/dev/concepts/tenancy/">dev</option>
@@ -1649,6 +1686,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2371,20 +2424,20 @@
<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?1580955828"></script>
- <script src="/hono/docs/js/perfect-scrollbar.min.js?1580955828"></script>
- <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1580955828"></script>
- <script src="/hono/docs/js/jquery.sticky.js?1580955828"></script>
- <script src="/hono/docs/js/featherlight.min.js?1580955828"></script>
- <script src="/hono/docs/js/html5shiv-printshiv.min.js?1580955828"></script>
- <script src="/hono/docs/js/highlight.pack.js?1580955828"></script>
+ <script src="/hono/docs/js/clipboard.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.min.js?1581042223"></script>
+ <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1581042223"></script>
+ <script src="/hono/docs/js/jquery.sticky.js?1581042223"></script>
+ <script src="/hono/docs/js/featherlight.min.js?1581042223"></script>
+ <script src="/hono/docs/js/html5shiv-printshiv.min.js?1581042223"></script>
+ <script src="/hono/docs/js/highlight.pack.js?1581042223"></script>
<script>hljs.initHighlightingOnLoad();</script>
- <script src="/hono/docs/js/modernizr.custom.71422.js?1580955828"></script>
- <script src="/hono/docs/js/learn.js?1580955828"></script>
- <script src="/hono/docs/js/hugo-learn.js?1580955828"></script>
+ <script src="/hono/docs/js/modernizr.custom.71422.js?1581042223"></script>
+ <script src="/hono/docs/js/learn.js?1581042223"></script>
+ <script src="/hono/docs/js/hugo-learn.js?1581042223"></script>
- <link href="/hono/docs/mermaid/mermaid.css?1580955828" type="text/css" rel="stylesheet" />
- <script src="/hono/docs/mermaid/mermaid.js?1580955828"></script>
+ <link href="/hono/docs/mermaid/mermaid.css?1581042223" type="text/css" rel="stylesheet" />
+ <script src="/hono/docs/mermaid/mermaid.js?1581042223"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>