nifi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bbe...@apache.org
Subject svn commit: r1794596 [31/36] - in /nifi/site/trunk/docs: ./ nifi-docs/ nifi-docs/components/ nifi-docs/components/org.apache.nifi/ nifi-docs/components/org.apache.nifi/nifi-ambari-nar/ nifi-docs/components/org.apache.nifi/nifi-ambari-nar/1.2.0/ nifi-do...
Date Tue, 09 May 2017 15:27:47 GMT
Added: nifi/site/trunk/docs/nifi-docs/html/user-guide.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/user-guide.html?rev=1794596&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/user-guide.html (added)
+++ nifi/site/trunk/docs/nifi-docs/html/user-guide.html Tue May  9 15:27:39 2017
@@ -0,0 +1,3484 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 1.5.2">
+<meta name="author" content="Apache NiFi Team">
+<title>Apache NiFi User Guide</title>
+<style>
+/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Copyright (C) 2012-2015 Dan Allen, Ryan Waldron and the Asciidoctor Project
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE. */
+/* Remove the comments around the @import statement below when using this as a custom stylesheet */
+@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+[hidden],template{display:none}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+body{margin:0}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none!important}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+.antialiased,body{-webkit-font-smoothing:antialiased}
+img{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9);padding-right: 1px;}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ul.no-bullet{list-style:none}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite:before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7;font-weight:bold}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
+.clearfix:after,.float-group:after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em .5em;vertical-align:middle;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menu{color:rgba(0,0,0,.8)}
+b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
+b.button:before{content:"[";padding:0 3px 0 2px}
+b.button:after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
+#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
+#content{margin-top:1.25em}
+#content:before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span:before{content:"\00a0\2013\00a0"}
+#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark:before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber:after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+.sect1{padding-bottom:.625em}
+@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
+.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]:before{display:block}
+.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote:before{display:none}
+.verseblock{margin:0 1em 1.25em 1em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
+.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
+table.spread{width:100%}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
+table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
+table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
+table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
+table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
+table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
+table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot{border-width:1px 0}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
+ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
+ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
+ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
+ul.inline>li>*{display:block}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1{padding-right:.75em;font-weight:bold}
+td.hdlist1,td.hdlist2{vertical-align:top}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:last-of-type{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none}
+span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
+span.footnote a,span.footnoteref a{text-decoration:none}
+span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
+#footnotes .footnote{padding:0 .375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]:after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+h1,h2{letter-spacing:-.01em}
+dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
+p,td.content{letter-spacing:-.01em}
+p strong,td.content strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@media print{@page{margin:1.25cm .75cm}
+*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]:after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img{page-break-inside:avoid}
+thead{display:table-header-group}
+img{max-width:100%!important}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+.sect1{padding-bottom:0!important}
+.sect1+.sect1{border:0!important}
+#header>h1:first-child{margin-top:1.25rem}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span:before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]:before{display:block}
+#footer{background:none!important;padding:0 .9375em}
+#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+</style>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.min.css">
+</head>
+<body class="article">
+<div id="header">
+<h1>Apache NiFi User Guide</h1>
+<div class="details">
+<span id="author" class="author">Apache NiFi Team</span><br>
+<span id="email" class="email"><a href="mailto:dev@nifi.apache.org">dev@nifi.apache.org</a></span><br>
+</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="user-guide.html#introduction">Introduction</a></li>
+<li><a href="user-guide.html#browser-support">Browser Support</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#unsupported-browsers">Unsupported Browsers</a></li>
+<li><a href="user-guide.html#viewing-the-ui-in-variably-sized-browsers">Viewing the UI in Variably Sized Browsers</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#terminology">Terminology</a></li>
+<li><a href="user-guide.html#User_Interface">NiFi User Interface</a></li>
+<li><a href="user-guide.html#UI-with-multi-tenant-authorization">Accessing the UI with Multi-Tenant Authorization</a></li>
+<li><a href="user-guide.html#logging-in">Logging In</a></li>
+<li><a href="user-guide.html#building-dataflow">Building a DataFlow</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#adding-components-to-the-canvas">Adding Components to the Canvas</a></li>
+<li><a href="user-guide.html#component-versioning">Component Versions</a></li>
+<li><a href="user-guide.html#Configuring_a_Processor">Configuring a Processor</a></li>
+<li><a href="user-guide.html#additional-help">Additional Help</a></li>
+<li><a href="user-guide.html#Using_Custom_Properties">Using Custom Properties with Expression Language</a></li>
+<li><a href="user-guide.html#Controller_Services">Controller Services</a></li>
+<li><a href="user-guide.html#Reporting_Tasks">Reporting Tasks</a></li>
+<li><a href="user-guide.html#Connecting_Components">Connecting Components</a></li>
+<li><a href="user-guide.html#processor-validation">Processor Validation</a></li>
+<li><a href="user-guide.html#site-to-site">Site-to-Site</a></li>
+<li><a href="user-guide.html#example-dataflow">Example Dataflow</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#command-and-control-of-the-dataflow">Command and Control of the DataFlow</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#starting-a-component">Starting a Component</a></li>
+<li><a href="user-guide.html#stopping-a-component">Stopping a Component</a></li>
+<li><a href="user-guide.html#enabling-disabling-a-component">Enabling/Disabling a Component</a></li>
+<li><a href="user-guide.html#Remote_Group_Transmission">Remote Process Group Transmission</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#navigating">Navigating within a DataFlow</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#component_linking">Component Linking</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#monitoring">Monitoring of DataFlow</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#processor_anatomy">Anatomy of a Processor</a></li>
+<li><a href="user-guide.html#process_group_anatomy">Anatomy of a Process Group</a></li>
+<li><a href="user-guide.html#remote_group_anatomy">Anatomy of a Remote Process Group</a></li>
+<li><a href="user-guide.html#Queue_Interaction">Queue Interaction</a></li>
+<li><a href="user-guide.html#Summary_Page">Summary Page</a></li>
+<li><a href="user-guide.html#Status_History">Historical Statistics of a Component</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#templates">Templates</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#Create_Template">Creating a Template</a></li>
+<li><a href="user-guide.html#Import_Template">Importing a Template</a></li>
+<li><a href="user-guide.html#instantiating-a-template">Instantiating a Template</a></li>
+<li><a href="user-guide.html#Manage_Templates">Managing Templates</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#data_provenance">Data Provenance</a>
+<ul class="sectlevel2">
+<li><a href="user-guide.html#provenance_events">Provenance Events</a></li>
+<li><a href="user-guide.html#searching-for-events">Searching for Events</a></li>
+<li><a href="user-guide.html#event_details">Details of an Event</a></li>
+<li><a href="user-guide.html#replaying-a-flowfile">Replaying a FlowFile</a></li>
+<li><a href="user-guide.html#viewing-flowfile-lineage">Viewing FlowFile Lineage</a></li>
+<li><a href="user-guide.html#encrypted-provenance">Encrypted Provenance Repository</a></li>
+</ul>
+</li>
+<li><a href="user-guide.html#other_management_features">Other Management Features</a></li>
+</ul>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="introduction"><a class="anchor" href="user-guide.html#introduction"></a>Introduction</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Apache NiFi is a dataflow system based on the concepts of flow-based programming. It supports
+powerful and scalable directed graphs of data routing, transformation, and system mediation logic. NiFi has
+a web-based user interface for design, control, feedback, and monitoring of dataflows. It is highly configurable
+along several dimensions of quality of service, such as loss-tolerant versus guaranteed delivery, low latency versus
+high throughput, and priority-based queuing. NiFi provides fine-grained data provenance for all data received, forked, joined
+cloned, modified, sent, and ultimately dropped upon reaching its configured end-state.</p>
+</div>
+<div class="paragraph">
+<p>See the <a href="administration-guide.html">System Administrator’s Guide</a> for information about system requirements, installation, and configuration. Once NiFi is installed,
+use a supported web browser to view the UI.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="browser-support"><a class="anchor" href="user-guide.html#browser-support"></a>Browser Support</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Browser</th>
+<th class="tableblock halign-left valign-top">Version</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Chrome</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Current and Current - 1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">FireFox</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Current and Current - 1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Edge</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Current and Current - 1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Safari</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Current and Current - 1</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Current and Current - 1 indicates that the UI is supported in the current stable release of that browser and the preceding one. For instance, if
+the current stable release is 45.X then the officially supported versions will be 45.X and 44.X.</p>
+</div>
+<div class="paragraph">
+<p>For Safari, which releases major versions much less frequently, Current and Current - 1 simply represent the two latest releases.</p>
+</div>
+<div class="paragraph">
+<p>The supported browser versions are driven by the capabilities the UI employs and the dependencies it uses. UI features will be developed and tested
+against the supported browsers. Any problem using a supported browser should be reported to Apache NiFi.</p>
+</div>
+<div class="sect2">
+<h3 id="unsupported-browsers"><a class="anchor" href="user-guide.html#unsupported-browsers"></a>Unsupported Browsers</h3>
+<div class="paragraph">
+<p>While the UI may run successfully in unsupported browsers, it is not actively tested against them. Additionally, the UI is designed as a desktop
+experience and is not currently supported in mobile browsers.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="viewing-the-ui-in-variably-sized-browsers"><a class="anchor" href="user-guide.html#viewing-the-ui-in-variably-sized-browsers"></a>Viewing the UI in Variably Sized Browsers</h3>
+<div class="paragraph">
+<p>In most environments, all of the UI is visible in your browser. However, the UI has a responsive design that allows you
+to scroll through screens as needed, in smaller sized browsers or tablet environments.</p>
+</div>
+<div class="paragraph">
+<p>In environments where your browser width is less than 800 pixels and the height less than 600 pixels, portions of the
+UI may become unavailable.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="terminology"><a class="anchor" href="user-guide.html#terminology"></a>Terminology</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>DataFlow Manager</strong>: A DataFlow Manager (DFM) is a NiFi user who has permissions to add, remove, and modify components of a NiFi dataflow.</p>
+</div>
+<div class="paragraph">
+<p><strong>FlowFile</strong>: The FlowFile represents a single piece of data in NiFi. A FlowFile is made up of two components:
+	FlowFile Attributes and FlowFile Content.
+	Content is the data that is represented by the FlowFile. Attributes are characteristics that provide information or
+	context about the data; they are made up of key-value pairs.
+	All FlowFiles have the following Standard Attributes:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>uuid</strong>: A unique identifier for the FlowFile</p>
+</li>
+<li>
+<p><strong>filename</strong>: A human-readable filename that may be used when storing the data to disk or in an external service</p>
+</li>
+<li>
+<p><strong>path</strong>: A hierarchically structured value that can be used when storing data to disk or an external service so that the data is not stored in a single directory</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p><strong>Processor</strong>: The Processor is the NiFi component that is used to listen for incoming data; pull data from external sources;
+	publish data to external sources; and route, transform, or extract information from FlowFiles.</p>
+</div>
+<div class="paragraph">
+<p><strong>Relationship</strong>: Each Processor has zero or more Relationships defined for it. These Relationships are named to indicate the result of processing a FlowFile.
+	After a Processor has finished processing a FlowFile, it will route (or “transfer”) the FlowFile to one of the Relationships.
+	A DFM is then able to connect each of these Relationships to other components in order to specify where the FlowFile should
+	go next under each potential processing result.</p>
+</div>
+<div class="paragraph">
+<p><strong>Connection</strong>: A DFM creates an automated dataflow by dragging components from the Components part of the NiFi toolbar to the canvas
+	and then connecting the components together via Connections. Each connection consists of one or more Relationships.
+	For each Connection that is drawn, a DFM can determine which Relationships should be used for the Connection.
+	This allows data to be routed in different ways based on its processing outcome. Each connection houses a FlowFile Queue.
+	When a FlowFile is transferred to a particular Relationship, it is added to the queue belonging to the associated Connection.</p>
+</div>
+<div class="paragraph">
+<p><strong>Controller Service</strong>: Controller Services are extension points that, after being added and configured by a DFM in the User Interface, will start up when NiFi starts up and provide information for use by other components (such as processors or other controller services). A common Controller Service used by several components is the StandardSSLContextService. It provides the ability to configure keystore and/or truststore properties once and reuse that configuration throughout the application. The idea is that, rather than configure this information in every processor that might need it, the controller service provides it for any processor to use as needed.</p>
+</div>
+<div class="paragraph">
+<p><strong>Reporting Task</strong>: Reporting Tasks run in the background to provide statistical reports about what is happening in the NiFi instance. The DFM adds and configures Reporting Tasks in the User Interface as desired. Common reporting tasks include the ControllerStatusReportingTask, MonitorDiskUsage reporting task, MonitorMemory reporting task, and the StandardGangliaReporter.</p>
+</div>
+<div class="paragraph">
+<p><strong>Funnel</strong>: A funnel is a NiFi component that is used to combine the data from several Connections into a single Connection.</p>
+</div>
+<div class="paragraph">
+<p><strong>Process Group</strong>: When a dataflow becomes complex, it often is beneficial to reason about the dataflow at a higher, more abstract level.
+	NiFi allows multiple components, such as Processors, to be grouped together into a Process Group.
+	The NiFi User Interface then makes it easy for a DFM to connect together multiple Process Groups into a logical dataflow,
+	as well as allowing the DFM to enter a Process Group in order to see and manipulate the components within the Process Group.</p>
+</div>
+<div class="paragraph">
+<p><strong>Port</strong>: Dataflows that are constructed using one or more Process Groups need a way to connect a Process Group to other dataflow components.
+	This is achieved by using Ports. A DFM can add any number of Input Ports and Output Ports to a Process Group and name these ports appropriately.</p>
+</div>
+<div class="paragraph">
+<p><strong>Remote Process Group</strong>: Just as data is transferred into and out of a Process Group, it is sometimes necessary to transfer data from one instance of NiFi to another.
+	While NiFi provides many different mechanisms for transferring data from one system to another, Remote Process Groups are often the easiest way to accomplish
+	this if transferring data to another instance of NiFi.</p>
+</div>
+<div class="paragraph">
+<p><strong>Bulletin</strong>: The NiFi User Interface provides a significant amount of monitoring and feedback about the current status of the application.
+	In addition to rolling statistics and the current status provided for each component, components are able to report Bulletins.
+	Whenever a component reports a Bulletin, a bulletin icon is displayed on that component. System-level bulletins are displayed on the Status bar near the top of the page.
+	Using the mouse to hover over that icon will provide a tool-tip that shows the time and severity (Debug, Info, Warning, Error) of the Bulletin,
+	as well as the message of the Bulletin.
+	Bulletins from all components can also be viewed and filtered in the Bulletin Board Page, available in the Global Menu.</p>
+</div>
+<div class="paragraph">
+<p><strong>Template</strong>: Often times, a dataflow is comprised of many sub-flows that could be reused. NiFi allows DFMs to select a part of the dataflow
+	(or the entire dataflow) and create a Template. This Template is given a name and can then be dragged onto the canvas just like the other components.
+	As a result, several components may be combined together to make a larger building block from which to create a dataflow.
+	These templates can also be exported as XML and imported into another NiFi instance, allowing these building blocks to be shared.</p>
+</div>
+<div class="paragraph">
+<p><strong>flow.xml.gz</strong>: Everything the DFM puts onto the NiFi User Interface canvas is written, in real time, to one file called the flow.xml.gz. This file is located in the nifi/conf directory by default.
+	Any change made on the canvas is automatically saved to this file, without the user needing to click a "save" button.
+	In addition, NiFi automatically creates a backup copy of this file in the archive directory when it is updated.
+	You can use these archived files to rollback flow configuration. To do so, stop NiFi, replace flow.xml.gz with a desired backup copy, then restart NiFi.
+	In a clustered environment, stop the entire NiFi cluster, replace the flow.xml.gz of one of nodes, and restart the node. Remove flow.xml.gz from other nodes.
+	Once you confirmed the node starts up as a one-node cluster, start the other nodes. The replaced flow configuration will be synchronized across the cluster.
+	The name and location of flow.xml.gz, and auto archive behavior are configurable. See the <a href="administration-guide.html#core-properties-br">System Administrator’s Guide</a> for further details.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="User_Interface"><a class="anchor" href="user-guide.html#User_Interface"></a>NiFi User Interface</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The NiFi UI provides mechanisms for creating automated dataflows, as well as visualizing,
+editing, monitoring, and administering those dataflows. The UI can be broken down into several segments,
+each responsible for different functionality of the application. This section provides screenshots of the
+application and highlights the different segments of the UI. Each segment is discussed in further detail later
+in the document.</p>
+</div>
+<div class="paragraph">
+<p>When the application is started, the user is able to navigate to the UI by going to the default address of
+<code>http://&lt;hostname&gt;:8080/nifi</code> in a web browser. There are no permissions configured by default, so anyone is
+able to view and modify the dataflow. For information on securing the system, see the <a href="administration-guide.html">System Administrator’s Guide</a>.</p>
+</div>
+<div class="paragraph">
+<p>When a DFM navigates to the UI for the first time, a blank canvas is provided on which a dataflow can be built:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/nifi-toolbar-components.png" alt="NiFi Components Toolbar">
+</div>
+</div>
+<div class="paragraph">
+<p>The Components Toolbar runs across the top left portion of your screen. It consists of the components you can drag onto the
+canvas to build your dataflow. Each component is described in more detail in <a href="http://localhost:8080/nifi-docs/html/building-dataflow.html">Building a Dataflow</a>.</p>
+</div>
+<div class="paragraph">
+<p>The Status Bar is under the Components Toolbar. The Status bar provides information about how many Processors exist on the canvas in
+each state (Stopped, Running, Invalid, Disabled), how many Remote Process Groups exist on the canvas in each state
+(Transmitting, Not Transmitting), the number of threads that are currently active in the flow, the amount of data that currently
+exists in the flow, and the timestamp at which all of this information was last refreshed. Additionally, if the instance of NiFi is clustered, the Status bar shows how many nodes
+are in the cluster and how many are currently connected.</p>
+</div>
+<div class="paragraph">
+<p>The Operate Palette sits to the left-hand side of the screen. It consists of buttons that are
+used by DFMs to manage the flow, as well as by administrators who manage user access
+and configure system properties, such as how many system resources should be provided to the application.</p>
+</div>
+<div class="paragraph">
+<p>On the right side of the canvas is Search, and the Global Menu. You can use Search to easily find components on the
+canvas and can to search by component name, type, identifier, configuration properties, and their values. The Global Menu
+contains options that allow you to manipulate existing components on the canvas:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/global-menu.png" alt="NiFi Global Menu">
+</div>
+</div>
+<div class="paragraph">
+<p>Additionally, the UI has some features that allow you to easily navigate around the canvas. You can use the
+Navigate Palette to pan around the canvas, and to zoom in and out. The “Birds Eye View” of the dataflow provides a high-level
+view of the dataflow and allows you to pan across large portions of the dataflow. You can also find breadcrumbs along the
+bottom of the screen. As you navigate into and out of Process Groups, the breadcrumbs show
+the depth in the flow, and each Process Group that you entered to reach this depth. Each of the Process Groups listed in the
+breadcrumbs is a link that will take you back up to that level in the flow.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/nifi-navigation.png" alt="NiFi Navigation">
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="UI-with-multi-tenant-authorization"><a class="anchor" href="user-guide.html#UI-with-multi-tenant-authorization"></a>Accessing the UI with Multi-Tenant Authorization</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Multi-tenant authorization enables multiple groups of users (tenants) to command, control, and observe different parts of the dataflow,
+with varying levels of authorization. When an authenticated user attempts to view or modify a NiFi resource, the system checks whether the
+user has privileges to perform that action. These privileges are defined by policies that you can apply system wide or to individual
+components. What this means from a Dataflow Manager perspective is that once you have access to the NiFi canvas, a range of functionality
+is visible and available to you, depending on the privileges assigned to you.</p>
+</div>
+<div class="paragraph">
+<p>The available global access policies are:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Policy</th>
+<th class="tableblock halign-left valign-top">Privilege</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">view the UI</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view the UI</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">access the controller</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view and modify the controller including reporting tasks, Controller Services, and nodes in the cluster</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">query provenance</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to submit a provenance search and request even lineage</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">access restricted components</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to create/modify restricted components assuming otherwise sufficient permissions</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">access all policies</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view and modify the policies for all components</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">access users/groups</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users view and modify the users and user groups</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">retrieve site-to-site details</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows other NiFi instances to retrieve Site-To-Site details</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">view system diagnostics</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view System Diagnostics</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">proxy user requests</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows proxy machines to send requests on the behalf of others</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">access counters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view and modify counters</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The available component-level access policies are:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Policy</th>
+<th class="tableblock halign-left valign-top">Privilege</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">view the component</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view component configuration details</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">modify the component</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to modify component configuration details</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">view the data</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view metadata and content for this component through provenance data and flowfile queues in outbound connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">modify the data</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to empty flowfile queues in outbound connections and to submit replays</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">view the policies</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to view the list of users who can view and modify a component</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">modify the policies</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows users to modify the list of users who can view and modify a component</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">retrieve data via site-to-site</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows a port to receive data from NiFi instances</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send data via site-to-site</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allows a port to send data from NiFi instances</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>If you are unable to view or modify a NiFi resource, contact your System Administrator or see Configuring Users and Access Policies in the
+<a href="administration-guide.html">System Administrator’s Guide</a> for more information.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logging-in"><a class="anchor" href="user-guide.html#logging-in"></a>Logging In</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If NiFi is configured to run securely, users will be able to request access to the DataFlow. For information on configuring NiFi to run
+securely, see the <a href="administration-guide.html">System Administrator’s Guide</a>. If NiFi supports anonymous access, users will be given access
+accordingly and given an option to log in.</p>
+</div>
+<div class="paragraph">
+<p>Clicking the <em>login</em> link will open the log in page. If the user is logging in with their username/password they will be presented with
+a form to do so. If NiFi is not configured to support anonymous access and the user is logging in with their username/password, they will
+be immediately sent to the login form bypassing the canvas.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/login.png" alt="Log In">
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="building-dataflow"><a class="anchor" href="user-guide.html#building-dataflow"></a>Building a DataFlow</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A DFM is able to build an automated dataflow using the NiFi UI. Simply drag components from the toolbar to the canvas,
+configure the components to meet specific needs, and connect
+the components together.</p>
+</div>
+<div class="sect2">
+<h3 id="adding-components-to-the-canvas"><a class="anchor" href="user-guide.html#adding-components-to-the-canvas"></a>Adding Components to the Canvas</h3>
+<div class="paragraph">
+<p>The User Interface section above outlined the different segments of the UI and pointed out a Components Toolbar.
+This section looks at each of the Components in that toolbar:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/components.png" alt="Components">
+</div>
+</div>
+<div id="processor" class="paragraph">
+<p><span class="image"><img src="images/iconProcessor.png" alt="Processor" width="32"></span>
+<strong>Processor</strong>: The Processor is the most commonly used component, as it is responsible for data ingress, egress, routing, and
+	manipulating. There are many different types of Processors. In fact, this is a very common Extension Point in NiFi,
+	meaning that many vendors may implement their own Processors to perform whatever functions are necessary for their use case.
+	When a Processor is dragged onto the canvas, the user is presented with a dialog to choose which type of Processor to use:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/add-processor.png" alt="Add Processor Dialog">
+</div>
+</div>
+<div class="paragraph">
+<p>In the top-right corner, the user is able to filter the list based on the Processor Type or the Tags associated with a Processor.
+Processor developers have the ability to add Tags to their Processors. These tags are used in this dialog for filtering and are
+displayed on the left-hand side in a Tag Cloud. The more Processors that exist with a particular Tag, the larger the Tag appears
+in the Tag Cloud. Clicking a Tag in the Cloud will filter the available Processors to only those that contain that Tag. If multiple
+Tags are selected, only those Processors that contain all of those Tags are shown. For example, if we want to show only those
+Processors that allow us to ingest data via HTTP, we can select both the <code>http</code> Tag and the <code>ingest</code> Tag:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/add-processor-with-tag-cloud.png" alt="Add Processor with Tag Cloud">
+</div>
+</div>
+<div class="paragraph">
+<p>Restricted components will be marked with a
+<span class="image"><img src="images/restricted.png" alt="Restricted"></span>
+icon next to their name. These are components that can be used to execute arbitrary unsanitized code provided by the operator
+through the NiFi REST API/UI or can be used to obtain or alter data on the NiFi host system using the NiFi OS credentials.
+These components could be used by an otherwise authorized NiFi user to go beyond the intended use of the application, escalate
+privilege, or could expose data about the internals of the NiFi process or the host system. All of these capabilities should
+be considered privileged, and admins should be aware of these capabilities and explicitly enable them for a subset of trusted users.</p>
+</div>
+<div class="paragraph">
+<p>Before a user is allowed to create and modify restricted components they must be granted access to restricted components. Refer to
+<a href="user-guide.html#UI-with-multi-tenant-authorization">multi-tenant</a> documentation.</p>
+</div>
+<div class="paragraph">
+<p>Clicking the <code>Add</code> button or double-clicking on a Processor Type will add the selected Processor to the canvas at the
+location that it was dropped.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+For any component added to the canvas, it is possible to select it with the mouse and move it anywhere on the canvas.
+Also, it is possible to select multiple items at once by either holding down the Shift key and selecting each item or by holding
+down the Shift key and dragging a selection box around the desired components.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Once you have dragged a Processor onto the canvas, you can interact with it by right-clicking on the Processor and
+selecting an option from the context menu. The options available to you from the context menu vary, depending on the privileges assigned to you.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/nifi-processor-menu.png" alt="Processor Menu">
+</div>
+</div>
+<div class="paragraph">
+<p>While the options available from the context menu vary, the following options are typically available when you have full privileges to work with a Processor:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Configure</strong>: This option allows the user to establish or change the configuration of the Processor (see <a href="user-guide.html#Configuring_a_Processor">Configuring a Processor</a>).</p>
+</li>
+<li>
+<p><strong>Start</strong> or <strong>Stop</strong>: This option allows the user to start or stop a Processor; the option will be either Start or Stop, depending on the current state of the Processor.</p>
+</li>
+<li>
+<p><strong>Status History</strong>: This option opens a graphical representation of the Processor&#8217;s statistical information over time.</p>
+</li>
+<li>
+<p><strong>Upstream connections</strong>: This option allows the user to see and "jump to" upstream connections that are coming into the Processor. This is particularly useful when processors connect into and out of other Process Groups.</p>
+</li>
+<li>
+<p><strong>Downstream connections</strong>: This option allows the user to see and "jump to" downstream connections that are going out of the Processor. This is particularly useful when processors connect into and out of other Process Groups.</p>
+</li>
+<li>
+<p><strong>Data provenance</strong>: This option displays the NiFi Data Provenance table, with information about data provenance events for the FlowFiles routed through that Processor (see <a href="user-guide.html#data_provenance">Data Provenance</a>).</p>
+</li>
+<li>
+<p><strong>Usage</strong>: This option takes the user to the Processor&#8217;s usage documentation.</p>
+</li>
+<li>
+<p><strong>Change color</strong>: This option allows the user to change the color of the Processor, which can make the visual management of large flows easier.</p>
+</li>
+<li>
+<p><strong>Center in view</strong>: This option centers the view of the canvas on the given Processor.</p>
+</li>
+<li>
+<p><strong>Copy</strong>: This option places a copy of the selected Processor on the clipboard, so that it may be pasted elsewhere on the canvas by right-clicking on the canvas and selecting Paste. The Copy/Paste actions also may be done using the keystrokes Ctrl-C (Command-C) and Ctrl-V (Command-V).</p>
+</li>
+<li>
+<p><strong>Delete</strong>: This option allows the DFM to delete a Processor from the canvas.</p>
+</li>
+</ul>
+</div>
+<div id="input_port" class="paragraph">
+<p><span class="image"><img src="images/iconInputPort.png" alt="Input Port" width="32"></span>
+<strong>Input Port</strong>: Input Ports provide a mechanism for transferring data into a Process Group. When an Input Port is dragged
+onto the canvas, the DFM is prompted to name the Port. All Ports within a Process Group must have unique names.</p>
+</div>
+<div class="paragraph">
+<p>All components exist only within a Process Group. When a user initially navigates to the NiFi page, the user is placed
+in the Root Process Group. If the Input Port is dragged onto the Root Process Group, the Input Port provides a mechanism
+to receive data from remote instances of NiFi via <a href="user-guide.html#site-to-site">Site-to-Site</a>. In this case, the Input Port can be configured
+to restrict access to appropriate users, if NiFi is configured to run securely. For information on configuring NiFi to run
+securely, see the
+<a href="administration-guide.html">System Administrator’s Guide</a>.</p>
+</div>
+<div id="output_port" class="paragraph">
+<p><span class="image"><img src="images/iconOutputPort.png" alt="Output Port" width="32"></span>
+<strong>Output Port</strong>: Output Ports provide a mechanism for transferring data from a Process Group to destinations outside
+of the Process Group. When an Output Port is dragged onto the canvas, the DFM is prompted to name the Port. All Ports
+within a Process Group must have unique names.</p>
+</div>
+<div class="paragraph">
+<p>If the Output Port is dragged onto the Root Process Group, the Output Port provides a mechanism for sending data to
+remote instances of NiFi via <a href="user-guide.html#site-to-site">Site-to-Site</a>. In this case, the Port acts as a queue. As remote instances
+of NiFi pull data from the port, that data is removed from the queues of the incoming Connections. If NiFi is configured
+to run securely, the Output Port can be configured to restrict access to appropriate users. For information on configuring
+NiFi to run securely, see the
+<a href="administration-guide.html">System Administrator’s Guide</a>.</p>
+</div>
+<div id="process_group" class="paragraph">
+<p><span class="image"><img src="images/iconProcessGroup.png" alt="Process Group" width="32"></span>
+<strong>Process Group</strong>: Process Groups can be used to logically group a set of components so that the dataflow is easier to understand
+and maintain. When a Process Group is dragged onto the canvas, the DFM is prompted to name the Process Group. All Process
+Groups within the same parent group must have unique names. The Process Group will then be nested within that parent group.</p>
+</div>
+<div class="paragraph">
+<p>Once you have dragged a Process Group onto the canvas, you can interact with it by right-clicking on the Process Group and selecting an option from
+context menu.The options available to you from the context menu vary, depending on the privileges assigned to you.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/nifi-process-group-menu.png" alt="Process Group Menu">
+</div>
+</div>
+<div class="paragraph">
+<p>While the options available from the context menu vary, the following options are typically available when you have full privileges to work with the Process Group:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Configure</strong>: This option allows the user to establish or change the configuration of the Process Group.</p>
+</li>
+<li>
+<p><strong>Enter group</strong>: This option allows the user to enter the Process Group. It is also possible to double-click on the Process Group to enter it.</p>
+</li>
+<li>
+<p><strong>Start</strong>: This option allows the user to start a Process Group.</p>
+</li>
+<li>
+<p><strong>Stop</strong>: This option allows the user to stop a Process Group.</p>
+</li>
+<li>
+<p><strong>Status History</strong>: This option opens a graphical representation of the Process Group&#8217;s statistical information over time.</p>
+</li>
+<li>
+<p><strong>Upstream connections</strong>: This option allows the user to see and "jump to" upstream connections that are coming into the Process Group.</p>
+</li>
+<li>
+<p><strong>Downstream connections</strong>: This option allows the user to see and "jump to" downstream connections that are going out of the Process Group.</p>
+</li>
+<li>
+<p><strong>Center in view</strong>: This option centers the view of the canvas on the given Process Group.</p>
+</li>
+<li>
+<p><strong>Copy</strong>: This option places a copy of the selected Process Group on the clipboard, so that it may be pasted elsewhere on the canvas by right-clicking on the canvas and selecting Paste. The Copy/Paste actions also may be done using the keystrokes Ctrl-C (Command-C) and Ctrl-V (Command-V).</p>
+</li>
+<li>
+<p><strong>Delete</strong>: This option allows the DFM to delete a Process Group.</p>
+</li>
+</ul>
+</div>
+<div id="remote_process_group" class="paragraph">
+<p><span class="image"><img src="images/iconRemoteProcessGroup.png" alt="Remote Process Group" width="32"></span>
+<strong>Remote Process Group</strong>: Remote Process Groups appear and behave similar to Process Groups. However, the Remote Process Group (RPG)
+references a remote instance of NiFi. When an RPG is dragged onto the canvas, rather than being prompted for a name, the DFM
+is prompted for the URL of the remote NiFi instance. If the remote NiFi is a clustered instance, the URL that should be used
+is the URL of any NiFi instance in that cluster. When data is transferred to a clustered instance of NiFi
+via an RPG, the RPG will first connect to the remote instance whose URL is configured to determine which nodes are in the cluster and
+how busy each node is. This information is then used to load balance the data that is pushed to each node. The remote instances are
+then interrogated periodically to determine information about any nodes that are dropped from or added to the cluster and to
+recalculate the load balancing based on each node&#8217;s load. For more information, see the section on <a href="user-guide.html#site-to-site">Site-to-Site</a>.</p>
+</div>
+<div class="paragraph">
+<p>Once you have dragged a Remote Process Group onto the canvas, you can may interact with it by right-clicking on the Remote Process Group and selecting an option from
+context menu. The options available to you from the context menu vary, depending on the privileges assigned to you.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/nifi-rpg-menu.png" alt="Remote Process Group Menu">
+</div>
+</div>
+<div class="paragraph">
+<p>While the options available from the context menu vary, the following options are typically available when you have full privileges to work with the Remote Process Group:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Configure</strong>: This option allows the user to establish or change the configuration of the Remote Process Group.</p>
+</li>
+<li>
+<p><strong>Remote Ports</strong>: This option allows the user to see input ports and/or output ports that exist on the remote instance of NiFi that the Remote Process Group is connected to. Note that if the Site-to-Site configuration is secure, only the ports that the connecting NiFi has been given accessed to will be visible.</p>
+</li>
+<li>
+<p><strong>Enable transmission</strong>: Makes the transmission of data between NiFi instances active (see <a href="user-guide.html#Remote_Group_Transmission">Remote Process Group Transmission</a>).</p>
+</li>
+<li>
+<p><strong>Disable transmission</strong>: Disables the transmission of data between NiFi instances.</p>
+</li>
+<li>
+<p><strong>Status History</strong>: This option opens a graphical representation of the Remote Process Group&#8217;s statistical information over time.</p>
+</li>
+<li>
+<p><strong>Upstream connections</strong>: This option allows the user to see and "jump to" upstream connections that are coming into the Remote Process Group.</p>
+</li>
+<li>
+<p><strong>Downstream connections</strong>: This option allows the user to see and "jump to" downstream connections that are going out of the Remote Process Group.</p>
+</li>
+<li>
+<p><strong>Refresh</strong>: This option refreshes the view of the status of the remote NiFi instance.</p>
+</li>
+<li>
+<p><strong>Go to</strong>: This option opens a view of the remote NiFi instance in a new tab of the browser. Note that if the Site-to-Site configuration is secure, the user must have access to the remote NiFi instance in order to view it.</p>
+</li>
+<li>
+<p><strong>Center in view</strong>: This option centers the view of the canvas on the given Remote Process Group.</p>
+</li>
+<li>
+<p><strong>Copy</strong>: This option places a copy of the selected Process Group on the clipboard, so that it may be pasted elsewhere on the canvas by right-clicking on the canvas and selecting Paste. The Copy/Paste actions also may be done using the keystrokes Ctrl-C (Command-C) and Ctrl-V (Command-V).</p>
+</li>
+<li>
+<p><strong>Delete</strong>: This option allows the DFM to delete a Remote Process Group from the canvas.</p>
+</li>
+</ul>
+</div>
+<div id="funnel" class="paragraph">
+<p><span class="image"><img src="images/iconFunnel.png" alt="Funnel"></span>
+<strong>Funnel</strong>: Funnels are used to combine the data from many Connections into a single Connection. This has two advantages.
+First, if many Connections are created with the same destination, the canvas can become cluttered if those Connections
+have to span a large space. By funneling these Connections into a single Connection, that single Connection can then be
+drawn to span that large space instead. Secondly, Connections can be configured with FlowFile Prioritizers. Data from
+several Connections can be funneled into a single Connection, providing the ability to Prioritize all of the data on that
+one Connection, rather than prioritizing the data on each Connection independently.</p>
+</div>
+<div id="template" class="paragraph">
+<p><span class="image"><img src="images/iconTemplate.png" alt="Template"></span>
+<strong>Template</strong>: Templates can be created by DFMs from sections of the flow, or they can be imported from other
+dataflows. These Templates provide larger building blocks for creating a  complex flow quickly. When the Template is
+dragged onto the canvas, the DFM is provided a dialog to choose which Template to add to the canvas:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/instantiate-template.png" alt="Instantiate Template Dialog">
+</div>
+</div>
+<div class="paragraph">
+<p>Clicking the drop-down box shows all available Templates. Any Template that was created with a description will show a question mark
+icon, indicating that there is more information. Hovering over the icon with the mouse will show this description:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/instantiate-template-description.png" alt="Instantiate Template Dialog">
+</div>
+</div>
+<div id="label" class="paragraph">
+<p><span class="image"><img src="images/iconLabel.png" alt="Label"></span>
+<strong>Label</strong>: Labels are used to provide documentation to parts of a dataflow. When a Label is dropped onto the canvas,
+it is created with a default size. The Label can then be resized by dragging the handle in the bottom-right corner.
+The Label has no text when initially created. The text of the Label can be added by right-clicking on the Label and
+choosing <code>Configure</code></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="component-versioning"><a class="anchor" href="user-guide.html#component-versioning"></a>Component Versions</h3>
+<div class="paragraph">
+<p>You have access to information about the version of your Processors, Controller Services, and Reporting Tasks.
+This is especially useful when you are working within a clustered environment with multiple NiFi instances running
+different versions of a component or if you have upgraded to a newer version of a processor. The Add Processor,
+Add Controller Service, and Add Reporting Task dialogs include a column identifying the component version, as well
+as the name of the component, the organization or group that created the component, and the NAR bundle that contains
+the processor. Each component displayed on the canvas also contains this information.</p>
+</div>
+<div class="sect3">
+<h4 id="sorting-and-filtering-components"><a class="anchor" href="user-guide.html#sorting-and-filtering-components"></a>Sorting and Filtering Components</h4>
+<div class="paragraph">
+<p>When you are adding a component, you can filter based on originating source or version number.</p>
+</div>
+<div class="paragraph">
+<p>To sort based on version, click the version column to display in ascending or descending version order.</p>
+</div>
+<div class="paragraph">
+<p>To filter based on source group, click the source drop-down in the upper left of your Add Component dialog,
+and select the source group you want to view.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="changing-component-versions"><a class="anchor" href="user-guide.html#changing-component-versions"></a>Changing Component Versions</h4>
+<div class="paragraph">
+<p>To change a component version, perform the following steps.</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Right-click the component on the canvas to display configuration options.</p>
+</li>
+<li>
+<p>Select Change version.</p>
+</li>
+<li>
+<p>In the Component Version dialog, select the version you want to run from the Version drop-down menu.</p>
+</li>
+</ol>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/component-version-dialog.png" alt="Component Version">
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="understanding-version-dependencies"><a class="anchor" href="user-guide.html#understanding-version-dependencies"></a>Understanding Version Dependencies</h4>
+<div class="paragraph">
+<p>When you are configuring a component, you can also view information about version dependencies.</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Right-click your component and select Configure to display the Configure dialog for your component.</p>
+</li>
+<li>
+<p>Click the Properties tab.</p>
+</li>
+<li>
+<p>Click the information icon to view any version dependency information.</p>
+</li>
+</ol>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/configure-processor-with-version-information.png" alt="Configuration Version Requirements">
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="Configuring_a_Processor"><a class="anchor" href="user-guide.html#Configuring_a_Processor"></a>Configuring a Processor</h3>
+<div class="paragraph">
+<p>To configure a processor, right-click on the Processor and select the <code>Configure</code> option from the context menu. The configuration dialog is opened with four
+different tabs, each of which is discussed below. Once you have finished configuring the Processor, you can apply
+the changes by clicking the <code>Apply</code> button or cancel all changes by clicking the <code>Cancel</code> button.</p>
+</div>
+<div class="paragraph">
+<p>Note that after a Processor has been started, the context menu shown for the Processor no longer has a <code>Configure</code>
+option but rather has a <code>View Configuration</code> option. Processor configuration cannot be changed while the Processor is
+running. You must first stop the Processor and wait for all of its active tasks to complete before configuring
+the Processor again.</p>
+</div>
+<div class="sect3">
+<h4 id="settings-tab"><a class="anchor" href="user-guide.html#settings-tab"></a>Settings Tab</h4>
+<div class="paragraph">
+<p>The first tab in the Processor Configuration dialog is the Settings tab:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/settings-tab.png" alt="Settings Tab">
+</div>
+</div>
+<div class="paragraph">
+<p>This tab contains several different configuration items. First, it allows the DFM to change the name of the Processor.
+The name of a Processor by default is the same as the Processor type. Next to the Processor Name is a checkbox, indicating
+ whether the Processor is Enabled. When a Processor is added to the canvas, it is enabled. If the
+Processor is disabled, it cannot be started. The disabled state is used to indicate that when a group of Processors is started,
+such as when a DFM starts an entire Process Group, this (disabled) Processor should be excluded.</p>
+</div>
+<div class="paragraph">
+<p>Below the Name configuration, the Processor&#8217;s unique identifier is displayed along with the Processor&#8217;s type. These
+values cannot be modified.</p>
+</div>
+<div class="paragraph">
+<p>Next are two dialogues for configuring &#8216;Penalty duration&#8217; and &#8216;Yield duration&#8217;. During the normal course of processing a
+piece of data (a FlowFile), an event may occur that indicates that the data cannot be processed at this time but the
+data may be processable at a later time. When this occurs, the Processor may choose to Penalize the FlowFile. This will
+prevent the FlowFile from being Processed for some period of time. For example, if the Processor is to push the data
+to a remote service, but the remote service already has a file with the same name as the filename that the Processor
+is specifying, the Processor may penalize the FlowFile. The &#8216;Penalty duration&#8217; allows the DFM to specify how long the
+FlowFile should be penalized. The default value is 30 seconds.</p>
+</div>
+<div class="paragraph">
+<p>Similarly, the Processor may determine that some situation exists such that the Processor can no longer make any progress,
+regardless of the data that it is processing. For example, if a Processor is to push data to a remote service and that
+service is not responding, the Processor cannot make any progress. As a result, the Processor should &#8216;yield,&#8217; which will
+prevent the Processor from being scheduled to run for some period of time. That period of time is specified by setting
+the &#8216;Yield duration.&#8217; The default value is 1 second.</p>
+</div>
+<div class="paragraph">
+<p>The last configurable option on the left-hand side of the Settings tab is the Bulletin level. Whenever the Processor writes
+to its log, the Processor also will generate a Bulletin. This setting indicates the lowest level of Bulletin that should be
+shown in the User Interface. By default, the Bulletin level is set to WARN, which means it will display all warning and error-level
+bulletins.</p>
+</div>
+<div class="paragraph">
+<p>The right-hand side of the Settings tab contains an &#8216;Auto-terminate relationships&#8217; section. Each of the Relationships that is
+defined by the Processor is listed here, along with its description. In order for a Processor to be considered valid and
+able to run, each Relationship defined by the Processor must be either connected to a downstream component or auto-terminated.
+If a Relationship is auto-terminated, any FlowFile that is routed to that Relationship will be removed from the flow and
+its processing considered complete. Any Relationship that is already connected to a downstream component cannot be auto-terminated.
+The Relationship must first be removed from any Connection that uses it. Additionally, for any Relationship that is selected to be
+auto-terminated, the auto-termination status will be cleared (turned off) if the Relationship is added to a Connection.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="scheduling-tab"><a class="anchor" href="user-guide.html#scheduling-tab"></a>Scheduling Tab</h4>
+<div class="paragraph">
+<p>The second tab in the Processor Configuration dialog is the Scheduling Tab:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/scheduling-tab.png" alt="Scheduling Tab">
+</div>
+</div>
+<div class="paragraph">
+<p>The first configuration option is the Scheduling Strategy. There are three possible options for scheduling components:</p>
+</div>
+<div class="paragraph">
+<p><strong>Timer driven</strong>: This is the default mode. The Processor will be scheduled to run on a regular interval. The interval
+	at which the Processor is run is defined by the &#8216;Run schedule&#8217; option (see below).</p>
+</div>
+<div class="paragraph">
+<p><strong>Event driven</strong>: When this mode is selected, the Processor will be triggered to run by an event, and that event occurs when FlowFiles enter Connections
+	feeding this Processor. This mode is currently considered experimental and is not supported by all Processors. When this mode is
+	selected, the &#8216;Run schedule&#8217; option is not configurable, as the Processor is not triggered to run periodically but
+        as the result of an event. Additionally, this is the only mode for which the &#8216;Concurrent tasks&#8217;
+	option can be set to 0. In this case, the number of threads is limited only by the size of the Event-Driven Thread Pool that
+	the administrator has configured.</p>
+</div>
+<div class="paragraph">
+<p><strong>CRON driven</strong>: When using the CRON driven scheduling mode, the Processor is scheduled to run periodically, similar to the
+		Timer driven scheduling mode. However, the CRON driven mode provides significantly more flexibility at the expense of
+		increasing the complexity of the configuration. The CRON driven scheduling value is a string of six required fields and one
+		optional field, each separated by a space. These fields are:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>

[... 2115 lines stripped ...]


Mime
View raw message