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=1811008&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/user-guide.html (added)
+++ nifi/site/trunk/docs/nifi-docs/html/user-guide.html Tue Oct  3 13:30:16 2017
@@ -0,0 +1,3745 @@
+<!--
+                        Licensed to the Apache Software Foundation (ASF) under 
one or more
+                        contributor license agreements.  See the NOTICE file 
distributed with
+                        this work for additional information regarding 
copyright ownership.
+                        The ASF licenses this file to You under the Apache 
License, Version 2.0
+                        (the "License"); you may not use this file except in 
compliance with
+                        the License.  You may obtain a copy of the License at
+
+                        http://www.apache.org/licenses/LICENSE-2.0
+
+                        Unless required by applicable law or agreed to in 
writing, software
+                        distributed under the License is distributed on an "AS 
IS" BASIS,
+                        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.
+                        See the License for the specific language governing 
permissions and
+                        limitations under the License.
+                        -->
+                        <!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:d...@nifi.apache.org";>d...@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>
+<li><a href="user-guide.html#component_alignment">Component Alignment</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#writeahead-provenance">Write Ahead Provenance 
Repository</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 files, we can select both the 
<code>files</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. For more information refer to
+<a href="user-guide.html#UI-with-multi-tenant-authorization">Accessing the UI 
with Multi-Tenant Authorization</a>.</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>
+</ul>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+For Processors, Ports, Remote Process Groups, Connections and Labels, it is 
possible to open the configuration dialog by double-clicking on desired 
component.
+</td>
+</tr>
+</table>
+</div>
+<div class="ulist">
+<ul>
+<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>Enable</strong> or <strong>Disable</strong>: This option allows the 
user to enable or enable a Processor; the option will be either Enable or 
Disable, 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>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>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>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.</p>
+</li>
+</ul>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+It is also possible to double-click on the Process Group to enter it.
+</td>
+</tr>
+</table>
+</div>
+<div class="ulist">
+<ul>
+<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>Group</strong>: This option allows the user to create a new Process 
Group that contains the selected Process Group and any other components 
selected on the canvas.</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>Group</strong>: This option allows the user to create a new Process 
Group that contains the selected Remote Process Group and any other components 
selected on the canvas.</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 component.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/add-processor-version-example.png" alt="Add Processor Version 
Example">
+</div>
+</div>
+<div class="paragraph">
+<p>Each component displayed on the canvas also contains this information.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/processor-version-information-example.png" alt="Processor 
Version Information Example">
+</div>
+</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 sort on version number or filter 
based on originating source.</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 group you want to view.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/add-processor-version-sort-filter.png" alt="Add Processor 
Version Sort and Filter">
+</div>
+</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>
+</ol>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/processor-change-version.png" alt="Processor Change Version">
+</div>
+</div>
+<div class="olist arabic">
+<ol class="arabic" start="3">
+<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 class="paragraph">
+<p>In the following example, MyProcessor version 1.0 is configured properly 
with the controller service StandardMyService version 1.0:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/processor-cs-version-match.png" alt="Processor and Controller 
Service Version Match">
+</div>
+</div>
+<div class="paragraph">
+<p>If the version of MyProcessor is changed to an incompatible version 
(MyProcessor 2.0), validation errors will be displayed on the processor:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/processor-cs-version-mismatch-warnings.png" alt="Processor 
and Controller Service Version Mismatch Warnings">
+</div>
+</div>
+<div class="paragraph">
+<p>and an error message will be displayed in the processor&#8217;s controller 
service configuration since the service is no longer valid:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="images/processor-cs-version-mismatch-config.png" alt="Processor and 
Controller Service Version Mismatch Property">
+</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. Alternatively, just 
double-click on the Processor. 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="paragraph">
+<p>Note that entering certain control characters are not supported and will be 
automatically filtered out when entered. The following characters and any
+unpaired Unicode surrogate codepoints will not be retained in any 
configuration:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>[#x0], [#x1], [#x2], [#x3], [#x4], [#x5], [#x6], [#x7], [#x8], [#xB], 
[#xC], [#xE], [#xF], [#x10], [#x11], [#x12], [#x13], [#x14], [#x15], [#x16], 
[#x17], [#x18], [#x19], [#x1A], [#x1B], [#x1C], [#x1D], [#x1E], [#x1F], 
[#xFFFE], [#xFFFF]</pre>
+</div>
+</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 and NAR bundle. These values 
cannot be modified.</p>

[... 2329 lines stripped ...]

Reply via email to