This is an automated email from the ASF dual-hosted git repository.

mcgilman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/master by this push:
     new a1b02ec  NIFI-6558 Added Parameters to User Guide and Sys Admin Guide 
NIFI-6558 Edited/Improved new Parameters Context
a1b02ec is described below

commit a1b02ec1137025858239e821d5db0c249b92ff45
Author: Andrew Lim <[email protected]>
AuthorDate: Thu Sep 12 12:23:23 2019 -0400

    NIFI-6558 Added Parameters to User Guide and Sys Admin Guide
    NIFI-6558 Edited/Improved new Parameters Context
    
    This closes #3725
---
 .../src/main/asciidoc/administration-guide.adoc    |  37 ++-
 ...parameter-during-parameter-context-creation.png | Bin 0 -> 72860 bytes
 .../images/autocomplete-parameter-example.png      | Bin 0 -> 173374 bytes
 .../images/configure-parameter-on-the-fly.png      | Bin 0 -> 131883 bytes
 .../images/context-menu-parameters-option.png      | Bin 0 -> 146871 bytes
 .../images/convert-property-to-parameter.png       | Bin 0 -> 171069 bytes
 .../asciidoc/images/edit-parameter-context.png     | Bin 0 -> 68513 bytes
 .../asciidoc/images/el-param-support-help-text.png | Bin 0 -> 187659 bytes
 .../main/asciidoc/images/el-support-help-text.png  | Bin 0 -> 204879 bytes
 .../images/existing-parameter-selected.png         | Bin 0 -> 165231 bytes
 .../images/existing-parameters-example.png         | Bin 0 -> 103913 bytes
 .../asciidoc/images/iconConvertToParameter.png     | Bin 0 -> 548 bytes
 .../individual-parameter-context-polices.png       | Bin 0 -> 67042 bytes
 .../asciidoc/images/new-parameter-referenced.png   | Bin 0 -> 166341 bytes
 .../images/parameter-contexts-selection.png        | Bin 0 -> 154709 bytes
 .../images/parameter-contexts-settings.png         | Bin 0 -> 67836 bytes
 .../parameters-validate-affected-components.png    | Bin 0 -> 141063 bytes
 .../process-group-configuration-parameters.png     | Bin 0 -> 145217 bytes
 .../process-group-parameter-context-menu.png       | Bin 0 -> 79032 bytes
 .../reference-parameter-available-parameters.png   | Bin 0 -> 83156 bytes
 .../asciidoc/images/reference-parameter-option.png | Bin 0 -> 71003 bytes
 .../asciidoc/images/update-parameter-context.png   | Bin 0 -> 147201 bytes
 nifi-docs/src/main/asciidoc/user-guide.adoc        | 322 +++++++++++++++++----
 23 files changed, 286 insertions(+), 73 deletions(-)

diff --git a/nifi-docs/src/main/asciidoc/administration-guide.adoc 
b/nifi-docs/src/main/asciidoc/administration-guide.adoc
index 8c5cac9..9715ab0 100644
--- a/nifi-docs/src/main/asciidoc/administration-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/administration-guide.adoc
@@ -958,20 +958,22 @@ The following tables summarize the global and component 
policies assigned to eac
 ===== Global Access Policies
 [cols=">s,^s,^s,^s,^s,^s,^s", options="header"]
 |==========================
-|                                  | Admin | DFM | Monitor | Provenance | NiFi 
| Proxy
-|view the UI                       |*      |*    |*        |            |      
|
-|access the controller - view      |*      |*    |*        |            |*     
|
-|access the controller - modify    |       |*    |         |            |      
|
-|query provenance                  |       |     |         |*           |      
|
-|access restricted components      |       |*    |         |            |      
|
-|access all policies - view        |*      |     |         |            |      
|
-|access all policies - modify      |*      |     |         |            |      
|
-|access users/user groups - view   |*      |     |         |            |      
|
-|access users/user groups - modify |*      |     |         |            |      
|
-|retrieve site-to-site details     |       |     |         |            |*     
|
-|view system diagnostics           |       |*    |*        |            |      
|
-|proxy user requests               |       |     |         |            |      
|*
-|access counters                   |       |     |         |            |      
|
+|                                   | Admin | DFM | Monitor | Provenance | 
NiFi | Proxy
+|view the UI                        |*      |*    |*        |            |     
 |
+|access the controller - view       |*      |*    |*        |            |*    
 |
+|access the controller - modify     |       |*    |         |            |     
 |
+|access parameter contexts - view   |       |     |         |            |     
 |
+|access parameter contexts - modify |       |     |         |            |     
 |
+|query provenance                   |       |     |         |*           |     
 |
+|access restricted components       |       |*    |         |            |     
 |
+|access all policies - view         |*      |     |         |            |     
 |
+|access all policies - modify       |*      |     |         |            |     
 |
+|access users/user groups - view    |*      |     |         |            |     
 |
+|access users/user groups - modify  |*      |     |         |            |     
 |
+|retrieve site-to-site details      |       |     |         |            |*    
 |
+|view system diagnostics            |       |*    |*        |            |     
 |
+|proxy user requests                |       |     |         |            |     
 |*
+|access counters                    |       |     |         |            |     
 |
 |==========================
 
 ===== Component Access Policies on the Root Process Group
@@ -1095,10 +1097,15 @@ Global access policies govern the following system 
level authorizations:
 |`/flow`
 
 |access the controller
-|Allows users to view/modify the controller including Reporting Tasks, 
Controller Services, and Nodes in the Cluster
+|Allows users to view/modify the controller including Reporting Tasks, 
Controller Services, Parameter Contexts and Nodes in the Cluster
 |Controller Settings
 |`/controller`
 
+|access parameter contexts
+|Allows users to view/modify Parameter Contexts. Access to Parameter Contexts 
are inherited from the "access the controller" policies unless overridden.
+|Parameter Contexts
+|`/parameter-contexts`
+
 |query provenance
 |Allows users to submit a Provenance Search and request Event Lineage
 |Data Provenance
diff --git 
a/nifi-docs/src/main/asciidoc/images/add-parameter-during-parameter-context-creation.png
 
b/nifi-docs/src/main/asciidoc/images/add-parameter-during-parameter-context-creation.png
new file mode 100644
index 0000000..5b6edfb
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/add-parameter-during-parameter-context-creation.png
 differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/autocomplete-parameter-example.png 
b/nifi-docs/src/main/asciidoc/images/autocomplete-parameter-example.png
new file mode 100644
index 0000000..99605d6
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/autocomplete-parameter-example.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/configure-parameter-on-the-fly.png 
b/nifi-docs/src/main/asciidoc/images/configure-parameter-on-the-fly.png
new file mode 100644
index 0000000..cd2d1b9
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/configure-parameter-on-the-fly.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/context-menu-parameters-option.png 
b/nifi-docs/src/main/asciidoc/images/context-menu-parameters-option.png
new file mode 100644
index 0000000..5b70cc0
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/context-menu-parameters-option.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/convert-property-to-parameter.png 
b/nifi-docs/src/main/asciidoc/images/convert-property-to-parameter.png
new file mode 100644
index 0000000..693477c
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/convert-property-to-parameter.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/edit-parameter-context.png 
b/nifi-docs/src/main/asciidoc/images/edit-parameter-context.png
new file mode 100644
index 0000000..0dfe2ec
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/edit-parameter-context.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/el-param-support-help-text.png 
b/nifi-docs/src/main/asciidoc/images/el-param-support-help-text.png
new file mode 100644
index 0000000..2a341ed
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/el-param-support-help-text.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/el-support-help-text.png 
b/nifi-docs/src/main/asciidoc/images/el-support-help-text.png
new file mode 100644
index 0000000..fa72a61
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/el-support-help-text.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/existing-parameter-selected.png 
b/nifi-docs/src/main/asciidoc/images/existing-parameter-selected.png
new file mode 100644
index 0000000..172b7ea
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/existing-parameter-selected.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/existing-parameters-example.png 
b/nifi-docs/src/main/asciidoc/images/existing-parameters-example.png
new file mode 100644
index 0000000..fceb57c
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/existing-parameters-example.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/iconConvertToParameter.png 
b/nifi-docs/src/main/asciidoc/images/iconConvertToParameter.png
new file mode 100644
index 0000000..11f2a40
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/iconConvertToParameter.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/individual-parameter-context-polices.png 
b/nifi-docs/src/main/asciidoc/images/individual-parameter-context-polices.png
new file mode 100644
index 0000000..7cde481
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/individual-parameter-context-polices.png 
differ
diff --git a/nifi-docs/src/main/asciidoc/images/new-parameter-referenced.png 
b/nifi-docs/src/main/asciidoc/images/new-parameter-referenced.png
new file mode 100644
index 0000000..044b3c0
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/new-parameter-referenced.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/parameter-contexts-selection.png 
b/nifi-docs/src/main/asciidoc/images/parameter-contexts-selection.png
new file mode 100644
index 0000000..38f4d61
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/parameter-contexts-selection.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/parameter-contexts-settings.png 
b/nifi-docs/src/main/asciidoc/images/parameter-contexts-settings.png
new file mode 100644
index 0000000..2e3f1fc
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/parameter-contexts-settings.png differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/parameters-validate-affected-components.png
 
b/nifi-docs/src/main/asciidoc/images/parameters-validate-affected-components.png
new file mode 100644
index 0000000..223c279
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/parameters-validate-affected-components.png
 differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/process-group-configuration-parameters.png 
b/nifi-docs/src/main/asciidoc/images/process-group-configuration-parameters.png
new file mode 100644
index 0000000..cdb9915
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/process-group-configuration-parameters.png 
differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/process-group-parameter-context-menu.png 
b/nifi-docs/src/main/asciidoc/images/process-group-parameter-context-menu.png
new file mode 100644
index 0000000..a46a59b
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/process-group-parameter-context-menu.png 
differ
diff --git 
a/nifi-docs/src/main/asciidoc/images/reference-parameter-available-parameters.png
 
b/nifi-docs/src/main/asciidoc/images/reference-parameter-available-parameters.png
new file mode 100644
index 0000000..8b0c33c
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/reference-parameter-available-parameters.png
 differ
diff --git a/nifi-docs/src/main/asciidoc/images/reference-parameter-option.png 
b/nifi-docs/src/main/asciidoc/images/reference-parameter-option.png
new file mode 100644
index 0000000..1706967
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/reference-parameter-option.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/update-parameter-context.png 
b/nifi-docs/src/main/asciidoc/images/update-parameter-context.png
new file mode 100644
index 0000000..14c1cda
Binary files /dev/null and 
b/nifi-docs/src/main/asciidoc/images/update-parameter-context.png differ
diff --git a/nifi-docs/src/main/asciidoc/user-guide.adoc 
b/nifi-docs/src/main/asciidoc/user-guide.adoc
index 5ef7a9e..2900035 100644
--- a/nifi-docs/src/main/asciidoc/user-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/user-guide.adoc
@@ -282,7 +282,7 @@ be assigned access to specific restrictions. If the user 
has been granted access
 have access to that component assuming otherwise sufficient permissions. For 
more information refer to
 <<UI-with-multi-tenant-authorization>> and 
<<Restricted_Components_in_Versioned_Flows>>.
 
-Clicking the `Add` button or double-clicking on a Processor Type will add the 
selected Processor to the canvas at the
+Clicking the "Add" button or double-clicking on a Processor Type will add the 
selected Processor to the canvas at the
 location that it was dropped.
 
 NOTE: For any component added to the canvas, it is possible to select it with 
the mouse and move it anywhere on the canvas.
@@ -500,7 +500,7 @@ image::processor-cs-version-mismatch-config.png["Processor 
and Controller Servic
 
 To configure a processor, right-click on the Processor and select the 
`Configure` 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 `Apply` button or cancel all changes by clicking 
the `Cancel` button.
+the changes by clicking "Apply" or cancel all changes by clicking "Cancel".
 
 Note that after a Processor has been started, the context menu shown for the 
Processor no longer has a `Configure`
 option but rather has a `View Configuration` option. Processor configuration 
cannot be changed while the Processor is
@@ -675,8 +675,8 @@ must define which Properties make sense for its use case. 
Below, we see the Prop
 image::properties-tab.png["Properties Tab"]
 
 This Processor, by default, has only a single property: 'Routing Strategy'. 
The default value is 'Route to Property name'. Next to
-the name of this property is a small question-mark symbol (
-image:iconInfo.png["Question Mark"]
+the name of this property is a small question mark symbol (
+image:iconInfo.png["Info"]
 ). This help symbol is seen in other places throughout the User Interface, and 
it indicates that more information is available.
 Hovering over this symbol with the mouse will provide additional details about 
the property and the default value, as well as
 historical values that have been set for the Property.
@@ -697,7 +697,7 @@ Note that after a User-Defined property has been added, an 
icon will appear on t
 image:iconDelete.png["Delete Icon"]
 ). Clicking it will remove the User-Defined property from the Processor.
 
-Some processors also have an Advanced User Interface (UI) built into them. For 
example, the UpdateAttribute processor has an Advanced UI. To access the 
Advanced UI, click the `Advanced` button that appears at the bottom of the 
Configure Processor window. Only processors that have an Advanced UI will have 
this button.
+Some processors also have an Advanced User Interface (UI) built into them. For 
example, the UpdateAttribute processor has an Advanced UI. To access the 
Advanced UI, click the "Advanced" button that appears at the bottom of the 
Configure Processor window. Only processors that have an Advanced UI will have 
this button.
 
 Some processors have properties that refer to other components, such as 
Controller Services, which also need to be configured. For example, the GetHTTP 
processor has an SSLContextService property, which refers to the 
StandardSSLContextService controller service. When DFMs want to configure this 
property but have not yet created and configured the controller service, they 
have the option to create the service on the spot, as depicted in the image 
below. For more information about configur [...]
 
@@ -711,15 +711,215 @@ whatever comments are appropriate for this component. 
Use of the Comments tab is
 image::comments-tab.png["Comments Tab"]
 
 
-=== Additional Help
+==== Additional Help
 
 You can access additional documentation about each Processor's usage by 
right-clicking on the Processor and selecting 'Usage' from the context menu. 
Alternatively, select Help from the Global Menu in the top-right corner of the 
UI to display a Help page with all of the documentation, including usage 
documentation for all the Processors that are available. Click on the desired 
Processor to view usage documentation.
 
+[[Parameters]]
+=== Parameters
+The values of properties in the flow, including sensitive properties, can be 
parameterized using Parameters. Parameters are created and configured within 
the NiFi UI. Any property can be configured to reference a Parameter with the 
following conditions:
+
+ - A sensitive property can only reference a Sensitive Parameter
+ - A non-sensitive property can only reference a Non-Sensitive Parameter
+ - Properties that reference Controller Services can not use Parameters
+ - Parameters cannot be referenced in Reporting Tasks or in controller-level 
Controller Services
+
+The UI indicates whether a Parameter can be used for a property value.
+
+image::el-param-support-help-text.png[Expression Language and Parameters Help 
Text]
+
+NOTE: Parameters have numerous advantages over <<Variables>>. In addition to 
sensitive value support, Parameters offer more granular control over access 
policies. Additionally, properties that reference Parameters are validated 
against the substituted value, unlike most properties that reference Variables 
using Expression Language.
+
+[[parameter-contexts]]
+==== Parameter Contexts
+Parameters are created within Parameter Contexts. Parameter Contexts are 
globally defined/accessible to the NiFi instance. Access policies can be 
applied to Parameter Contexts to determine which users can create them. Once 
created, policies to read and write to a specific Parameter Context can also be 
applied (see <<accessing-parameters>> for more information).
+
+===== Creating a Parameter Context
+To create a Parameter Context, select Parameter Contexts from the Global Menu:
+
+image:parameter-contexts-selection.png["Global Menu - Parameter Contexts"]
+
+In the Parameter Contexts window, click the `+` button in the upper-right 
corner and the Add Parameter Context window opens. The window has two tabs: 
Settings and Parameters.
+
+image:parameter-contexts-settings.png["Parameter Contexts - Settings"]
+
+On the "Settings" tab, add a name for the Parameter Context and a description 
if desired.  Select "Apply" to save the Parameter Context or select the 
"Parameters" tab to add parameters to the context.
+
+==== Adding a Parameter to a Parameter Context
+Parameters can be added during Parameter Context creation or added to existing 
Parameter Contexts.
+
+During Parameter Context creation, select the "Parameters" tab. Click the `+` 
button to open the Add Parameter window.
+
+image:add-parameter-during-parameter-context-creation.png[Add Parameter]
+
+To add parameters to an existing Parameter Context, open the Parameter Context 
window and click the Edit button (image:iconEdit.png["Edit"]) in the row of the 
desired Parameter Context.
+
+image:edit-parameter-context.png[Edit Parameter Context]
+
+On the "Parameters" tab, click the `+` button to open the Add Parameter window.
+
+The Add Parameter window has the following settings:
+
+- *Name* - A name that is used to denote the Parameter. Only alpha-numeric 
characters (a-z, A-Z, 0-9), hyphens ( - ), underscores ( _ ), periods ( . ), 
and spaces are allowed.
+
+- *Value* - The value that will be used when the Parameter is referenced. 
Parameter values do not support Expression Language or embedded parameter 
references.
+
+- *Set empty string* - Check to explicitly set the value of the Parameter to 
an empty string. Unchecked by default. (Note: If checked but a value is set, 
the checkbox is ignored.)
+
+- *Sensitive Value* -  Set to "Yes" if the Parameter's Value should be 
considered sensitive. If sensitive, the value of the Parameter will not be 
shown in the UI once applied. The default setting is "No". Sensitive Parameters 
can only be referenced by sensitive properties and Non-Sensitive Parameters by 
non-sensitive properties. Once a Parameter is created, its sensitivity flag 
cannot be changed.
+
+- *Description* - A description that explains what the Parameter is, how it is 
to be used, etc. This field is optional.
+
+Once these settings are configured, select "Apply". The Referencing Components 
lists the components referenced by the currently selected parameter. Add 
additional Parameters or edit any existing Parameters.
+
+image:update-parameter-context.png[Update Parameter Context]
+
+To complete the process, select "Apply" from the Parameter Context window. The 
following operations are performed to validate all components that reference 
the added or modified parameters: Stopping/Restarting affected Processors, 
Disabling/Re-enabling affected Controller Services, Updating Parameter Context.
+
+image:parameters-validate-affected-components.png[Validate Affected Components]
+
+The Referencing Components section now lists an aggregation of all the 
components referenced by the set of parameters added/edited/deleted, organized 
by process group.
+
+
+[[assigning_parameter_context_to_PG]]
+==== Assigning a Parameter Context to a Process Group
+For a component to reference a Parameter, its Process Group must first be 
assigned a Parameter Context. Once assigned, processors and controller services 
within that Process Group may only reference Parameters within that Parameter 
Context.
+
+A Process Group can only be assigned one Parameter Context, while a given 
Parameter Context can be assigned to multiple Process Groups.
+
+NOTE: A user can only set the Parameter Context of a Process Group to one of 
the Parameter Contexts that the user has the view policy for. Additionally, in 
order to set the Parameter Context, the user must have the modify policy for 
the Process Group. See <<accessing-parameters>> for more information.
+
+To assign a Parameter Context to a Process Group, click Configure, either from 
the Operate Palette or from the Process Group context menu.
+
+image:process-group-configuration-parameters.png[Configure Process Group 
Parameter Context]
+
+In the Flow Configuration window, select the "General" tab. From the Process 
Group Parameter Context drop-down menu, select an existing Parameter Context or 
create a new one.
+
+image:process-group-parameter-context-menu.png[Process Group Parameter Context 
Menu]
+
+Select "Apply" to save the configuration changes. The Process Group context 
menu now includes a "Parameters" option which allows quick access to the Update 
Parameter Context window for the assigned Parameter Context.
+
+image:context-menu-parameters-option.png[Context Menu Parameters Option]
+
+If the Parameter Context for a Process Group is changed, all components that 
reference any Parameters in that Process Group will be stopped, validated, and 
restarted assuming the components were previously running and are still valid.
+
+NOTE: If a Parameter Context is unset from a Process Group, it does *NOT* 
inherit the Parameter Context from the parent Process Group. Instead, no 
Parameters can be referenced. Any component that does already reference a 
Parameter will become invalid.
+
+==== Referencing Parameters
+
+===== Parameter Reference Syntax
+To configure an eligible property to reference a Parameter, use the `#` symbol 
as the start, with the Parameter's name enclosed in curly braces:
+
+`#{Parameter.Name}`
+
+This can be escaped using an additional `#` character at the beginning. To 
illustrate this, assume that the Parameter `abc` has a value of `xxx` and 
Parameter `def` has a value of `yyy`. Then, the following user-defined property 
values will evaluate to these effective values:
+
+|================================================================================================================================================================
+| *User-Entered Literal Property Value* | *Effective Property Value*           
      | *Explanation*
+| `#{abc}`                              | `xxx`                                
      | Simple substitution
+| `+#{abc}/data+`                       | `xxx/data`                           
      | Simple substitution with additional literal data
+| `+#{abc}/#{def}+`                     | `xxx/yyy`                            
      | Multiple substitution with additional literal data
+| `+#{abc+`                             | `+#{abc+`                            
      | No { } for parameter replacement
+| `+#abc+`                              | `+#abc+`                             
      | No { } for parameter replacement
+| `+##{abc}+`                           | `+#{abc}+`                           
      | Escaped # for literal interpretation
+| `+###{abc}+`                          | `#xxx`                               
      | Escaped # for literal interpretation, followed by simple substitution
+| `+####{abc}+`                         | `+##{abc}+`                          
      | Escaped # for literal interpretation, twice
+| `+#####{abc}+`                        | `+##xxx+`                            
      | Escaped # for literal interpretation, twice, followed by simple 
substitution
+| `+#{abc/data}+`                       | Exception thrown on property set 
operation | `/` not a valid parameter name character
+|================================================================================================================================================================
+
+When referencing a Parameter from within 
link:expression-language-guide.html[Expression Language], the Parameter 
reference is evaluated first. As an example, to replace `xxx` with `zzz` for 
the `abc` Parameter:
+
+`${ #{abc}:replace('xxx', 'zzz') }`
+
+===== Referencing and Creating Parameters During Component Configuration
+Parameters can be easily referenced or created as you configure the components 
in your flow. For example, assume a process group  has the Parameter Context 
"Kafka Settings" assigned to it. "Kafka Settings" contains the parameters 
`kafka.broker` and `kafka.topic1`.
+
+image::existing-parameters-example.png[Existing Parameters]
+
+To reference `kafka.broker` as the value for the "Kafka Brokers" property in 
the PublishKafka processor, clear the default value and begin a new entry with 
the start delimiter `#{`. Next use the keystroke `control+space` to show the 
list of available parameters:
+
+image::autocomplete-parameter-example.png[Autocomplete Parameter Example]
+
+Select `kafka.broker` and complete the entry with a closing curly brace `}`.
+
+image:existing-parameter-selected.png[Existing Parameter Selected]
+
+Help text describing this process is displayed when hovering over the 
Expression Language and Parameters eligibility indicators.
+
+image::el-param-support-help-text.png[Expression Language and Parameters Help 
Text]
+
+Parameters can also be created on the fly. For example, to create a parameter 
for the "Topic Name" property, select the "Convert to Parameter" icon 
(image:iconConvertToParameter.png["Convert to Parameter"]) in that property's 
row. This icon will only be available if the user has appropriate permissions 
to modify the Parameter Context (see <<accessing-parameters>> for more 
information).
+
+image::convert-property-to-parameter.png[Convert Property to Parameter]
+
+The Add Parameter dialog will open. Configure the new parameter as desired.
+
+image::configure-parameter-on-the-fly.png[Configure Parameter On the Fly]
+
+Select "Apply". The process group's Parameter Context will be updated and the 
new parameter will be referenced by the property with the proper syntax applied 
automatically.
+
+image::new-parameter-referenced.png[New Parameter Referenced]
+
+Properties values that are selectable can also reference parameters. In 
addition to applying the "Convert to Parameter" method described earlier, the 
option "Reference parameter.." is available in the value drop-down menu.
+
+image::reference-parameter-option.png[Reference Parameter Option]
+
+Selecting "Reference parameter..." will display a drop-down list of available 
parameters, determined by the parameter context assigned to the component's 
process group and the user's access policies.
+
+image::reference-parameter-available-parameters.png[Reference Parameter 
Available Parameters]
+
+Hovering over the question mark icon (image:iconInfo.png["Info"]) displays the 
parameter's description.
+
+
+===== Using Parameters with Sensitive Properties
+Sensitive properties may only reference sensitive Parameters. This is 
important for <<versioning_dataflow, versioned flows>>. The value of the 
sensitive Parameter itself will NOT be sent to the flow registry, only the fact 
that the property references the sensitive Parameter. For more information see 
<<parameters-and-versioned-flows>>.
+
+The value of a sensitive property must be set to a single Parameter reference. 
For example, values of `+#{password}123+` and `+#{password}#{suffix}+` are not 
allowed. Sending `+#{password}123+` would lead to exposing part of the 
sensitive property's value. This is in contrast to a non-sensitive property, 
where a value such as `+#{path}/child/file.txt+` is valid.
+
+[[accessing-parameters]]
+==== Accessing Parameters
+User privileges to Parameters are managed via access policies on the following 
levels:
+
+- Parameter Context
+- Process Group
+- Component
+
+NOTE: For additional information on how to configure access policies, see the 
<<administration-guide.adoc#access-policies,Access Policies>> section in the 
System Administrator's Guide.
+
+===== Parameter Context Access Policies
+For a user to see Parameter Contexts, they must be added to either the "access 
the controller" view policy or the "access parameter contexts" view policy. For 
a user to modify Parameter Contexts, they must also be added to the 
corresponding modify policies. These policies are accessed via "Policies" from 
the Global Menu. See the 
<<administration-guide.adoc#global-access-policies,Global Access Policies>> 
section in the System Administrator's Guide for more information.
+
+NOTE: The "access parameter contexts" policies are inherited from the "access 
the controller" policies unless overridden.
+
+View and modify policies can also be set on individual parameter contexts to 
determine which users can view or add parameters to the context. Select 
"Parameter Contexts" from the Global Menu. Select the "Access Policies" button 
(image:iconAccessPolicies.png["Access Policies"]) in the row of the desired 
parameter context to manage these policies.
+
+image::individual-parameter-context-polices.png[Individual Parameter Context 
Policies]
+
+See the <<administration-guide.adoc#component-level-access-policies,Component 
Level Access Policies>> section in the System Administrator's Guide for more 
information.
+
+===== Process Group Access Policies
+A user can only set the Parameter Context of a Process Group to one of the 
Parameter Contexts that the user has the view policy for. Additionally, in 
order to set the Parameter Context, the user must have the modify policy for 
the Process Group. The Process Group access policies can be managed by 
highlighting the Process Group and selecting the "Access Policies" button 
(image:iconAccessPolicies.png["Access Policies"]) from the Operate Palette.
+
+===== Component Access Policies
+To reference Parameters or convert properties to a Parameter in a component, a 
user needs to have the view and modify policies for the component. These 
policies are inherited if the user has view and modify policies to the 
component's process group, but these policies can be overridden on the 
component level.
+
+In order to modify a Parameter, a user must have view and modify policies for 
any and all components that reference that Parameter.  This is needed because 
changing the Parameter requires that the components be stopped/started and also 
because by taking that action, the user is modifying the behavior of the 
component.
+
+See the <<administration-guide.adoc#component-level-access-policies,Component 
Level Access Policies>> section in the System Administrator's Guide for more 
information.
+
+[[parameters-and-versioned-flows]]
+==== Parameters and Versioned Flows
+When exporting a flow to a Flow Registry, the name of the Parameter Context is 
sent for each process group that is stored. Additionally, the Parameters 
(names, descriptions, values, whether or not sensitive) are stored with the 
flow. Sensitive Parameter values are not stored.
+
+When a flow is imported, if no Parameter Context is set, NiFi will set the 
Parameter Context with the same name as the one stored in Flow Registry. If 
none exists with that name, NiFi will create one. If a Parameter Context has 
been set and the imported flow contains a Parameter Context with the same name 
and Parameters with the same names but different values, the existing Parameter 
values will not be overwritten by those from the imported flow. However, any 
Parameters missing from the  [...]
+
+
 [[Using_Custom_Properties]]
 === Using Custom Properties with Expression Language
 You can use NiFi Expression Language to reference FlowFile attributes, compare 
them to other values, and manipulate their values when you are creating and 
configuring dataflows. For more information on Expression Language, see the 
link:expression-language-guide.html[Expression Language Guide].
 
-In addition to using FlowFile attributes, system properties, and environment 
properties within Express
+In addition to using FlowFile attributes, system properties, and environment 
properties within Expression
 Language, you can also define custom properties for Expression Language use. 
Defining custom properties
 gives you more flexibility in handling and processing dataflows. You can also 
create custom properties
 for connection, server, and service properties, for easier dataflow 
configuration.
@@ -729,23 +929,33 @@ NiFi properties have resolution precedence of which you 
should be aware when cre
 * Processor-specific attributes
 * FlowFile properties

 * FlowFile attributes

-* From variable registry:

+* From Variable Registry:

 ** User defined properties (custom properties)
 ** System properties

 ** Operating System environment variables
 
-When you are creating custom properties, ensure that each custom property 
contains a distinct property value,
-so that it is not overridden by existing environment properties, system 
properties, or FlowFile attributes.
+When you are creating custom properties, ensure that each custom property 
contains a distinct property value, so that it is not overridden by existing 
environment properties, system properties, or FlowFile attributes.
+
+There are two ways to use and manage custom properties with Expression 
Language:
+
+- *Variables*: Variables are created and configured within the NiFi UI. They 
can be used in any field that supports Expression Language. Variables cannot be 
used for sensitive properties. NiFi automatically picks up new or modified 
variables. Variables are defined at the Process Group level, as a result, the 
access policies for viewing and changing variables are derived from the access 
policies of the Process Group. See <<Variables>> for more information.
+
+- *Custom Properties File*: Key/value pairs are defined in a custom properties 
file that is referenced via the `nifi.variable.registry.properties` in 
_nifi.properties_. NiFi must be restarted for updates to be picked up. See 
<<Custom_Properties>> for more information.
+
+WARNING: Custom properties via Variables and the _nifi.properties_ file are 
still supported for compatibility purposes but do not have the same power as 
Parameters such as support for sensitive properties and more granular control 
over who can create, modify or use them. Variables and the 
`nifi.variable.registry.properties` property will be removed in a future 
release. As a result, it is highly recommended to switch to Parameters.
+
+Expression Language support for a property is indicated in the UI.
 
-There are two ways to use and manage custom properties:
+image::el-support-help-text.png[Expression Language Help Text]
 
-* In the NiFi UI via the Variables window
-* Referencing custom properties via _nifi.properties_
+[[Variables]]
+==== Variables
 
-[[Variables_Window]]
-==== Variables Window
+WARNING: Custom properties via Variables and the _nifi.properties_ file are 
still supported for compatibility purposes but do not have the same power as 
Parameters such as support for sensitive properties and more granular control 
over who can create, modify or use them. Variables and the 
`nifi.variable.registry.properties` property will be removed in a future 
release. As a result, it is highly recommended to switch to Parameters.
 
-Variables can be created and configured within the NiFi UI.  The variables can 
be used in any field that supports Expression Language.  NiFi automatically 
picks up new or modified variables created in the UI.
+Variables are created and configured within the NiFi UI. They can be used in 
any field that supports Expression Language. Variables cannot be used for 
sensitive properties. Variables are defined at the Process Group level, as a 
result, the access policies for viewing and changing variables are derived from 
the access policies of the Process Group. Variable values cannot reference 
other variables or make use of Expression Language.
+
+===== Variables Window
 
 To access the Variables window, right-click on the canvas with nothing 
selected:
 
@@ -805,7 +1015,7 @@ image::variable_insufficient-permissions.png["Insufficient 
Permissions to View V
 
 If a user has access to View a process group but does not have access to 
Modify the process group, the variables can be viewed but not modified.
 
-For information on how to manage privileges on components, see the  
<<administration-guide.adoc#access-policies,Access Policies>> section in the 
System Administrator's Guide.
+For information on how to manage privileges on components, see the 
<<administration-guide.adoc#access-policies,Access Policies>> section in the 
System Administrator's Guide.
 
 ===== Referencing Controller Services
 
@@ -827,7 +1037,11 @@ In the above example, the variable `property1` is 
referenced by a processor that
 
 image::variable-unauthorized-ref-processor-canvas.png["Unauthorized 
Referencing Processor"]
 
+[[Custom_Properties]]
 ==== Referencing Custom Properties via nifi.properties
+
+WARNING: Custom properties via Variables and the _nifi.properties_ file are 
still supported for compatibility purposes but do not have the same power as 
Parameters such as support for sensitive properties and more granular control 
over who can create, modify or use them. Variables and the 
`nifi.variable.registry.properties` property will be removed in a future 
release. As a result, it is highly recommended to switch to Parameters.
+
 Identify one or more sets of key/value pairs, and give them to your system 
administrator.
 
 Once the new custom properties have been added, ensure that the 
`nifi.variable.registry.properties`
@@ -865,16 +1079,16 @@ The Add Controller Service window opens. This window is 
similar to the Add Proce
 
 image:add-controller-service-window.png["Add Controller Service Window"]
 
-Once you have added a Controller Service, you can configure it by clicking the 
`Configure` button in the
-far-right column. Other buttons in this column include `Enable`, `Remove` and 
`Access Policies`.
+Once you have added a Controller Service, you can configure it by clicking the 
"Configure" button in the
+far-right column. Other buttons in this column include "Enable", "Remove" and 
"Access Policies".
 
 image:controller-services-configure-buttons.png["Controller Services Buttons"]
 
-You can obtain information about Controller Services by clicking the `Usage` 
and `Alerts` buttons in the left-hand column.
+You can obtain information about Controller Services by clicking the "Usage" 
and "Alerts" buttons in the left-hand column.
 
 image:controller-services-info-buttons.png["Controller Services Information 
Buttons"]
 
-When the DFM clicks the `Configure` button, a Configure Controller Service 
window opens. It has three tabs: Settings, Properties,and Comments. This window 
is similar to the Configure Processor window. The Settings tab provides a place 
for the DFM to give the Controller Service a unique name (if desired). It also 
lists the UUID, Type, Bundle and Support information for the service and 
provides a list of other components (reporting tasks or other controller 
services) that reference the service.
+When the DFM clicks the "Configure" button, a Configure Controller Service 
window opens. It has three tabs: Settings, Properties,and Comments. This window 
is similar to the Configure Processor window. The Settings tab provides a place 
for the DFM to give the Controller Service a unique name (if desired). It also 
lists the UUID, Type, Bundle and Support information for the service and 
provides a list of other components (reporting tasks or other controller 
services) that reference the service.
 
 image:configure-controller-service-settings.png["Configure Controller Service 
Settings"]
 
@@ -882,7 +1096,7 @@ The Properties tab lists the various properties that apply 
to the particular con
 
 image:configure-controller-service-properties.png["Configure Controller 
Service Properties"]
 
-The Comments tab is just an open-text field, where the DFM may include 
comments about the service. After configuring a Controller Service, click the 
`Apply` button to apply the configuration and close the window, or click the 
`Cancel` button to cancel the changes and close the window.
+The Comments tab is just an open-text field, where the DFM may include 
comments about the service. After configuring a Controller Service, click  
"Apply" to save the configuration and close the window, or click "Cancel" to 
discard the changes and close the window.
 
 
 [[Controller_Services_for_Dataflows]]
@@ -910,7 +1124,7 @@ image::process-group-configuration-window.png["Process 
Group Configuration Windo
 [[Enabling_Disabling_Controller_Services]]
 ==== Enabling/Disabling Controller Services
 
-After a Controller Service has been configured, it must be enabled in order to 
run. Do this using the `Enable` button (image:iconEnable.png["Enable Button"]) 
in the far-right column of the Controller Services tab. In order to modify an 
existing/running controller service, the DFM needs to stop/disable it (as well 
as all referencing reporting tasks and controller services). Do this using the 
`Disable` button (image:iconDisable.png["Disable Button"]). Rather than having 
to hunt down each c [...]
+After a Controller Service has been configured, it must be enabled in order to 
run. Do this using the "Enable" button (image:iconEnable.png["Enable Button"]) 
in the far-right column of the Controller Services tab. In order to modify an 
existing/running controller service, the DFM needs to stop/disable it (as well 
as all referencing reporting tasks and controller services). Do this using the 
"Disable" button (image:iconDisable.png["Disable Button"]). Rather than having 
to hunt down each c [...]
 
 image:enable-controller-service-scope.png["Enable Controller Service Scope"]
 
@@ -929,15 +1143,15 @@ The Add Reporting Task window opens. This window is 
similar to the Add Processor
 
 image:add-reporting-task-window.png["Add Reporting Task Window"]
 
-Once a Reporting Task has been added, the DFM may configure it by clicking the 
`Edit` button in the far-right column. Other buttons in this column include 
`Start`, `Remove`, `State` and `Access Policies`.
+Once a Reporting Task has been added, the DFM may configure it by clicking the 
"Edit" button in the far-right column. Other buttons in this column include 
"Start", "Remove", "State" and "Access Policies".
 
 image:reporting-tasks-edit-buttons.png["Reporting Tasks Edit Buttons"]
 
-You can obtain information about Reporting Tasks by clicking the `View 
Details`, `Usage`, and `Alerts` buttons in the left-hand column.
+You can obtain information about Reporting Tasks by clicking the "View 
Details", "Usage", and "Alerts" buttons in the left-hand column.
 
 image:reporting-tasks-info-buttons.png["Reporting Tasks Information Buttons"]
 
-When the DFM clicks the `Edit` button, a Configure Reporting Task window 
opens. It has three tabs: Settings, Properties, and Comments. This window is 
similar to the Configure Processor window. The Settings tab provides a place 
for the DFM to give the Reporting Task a unique name (if desired). It also 
lists the UUID, Type, and Bundle information for the task and provides settings 
for the task's Scheduling Strategy and Run Schedule (similar to the same 
settings in a processor). The DFM may [...]
+When the DFM clicks the "Edit" button, a Configure Reporting Task window 
opens. It has three tabs: Settings, Properties, and Comments. This window is 
similar to the Configure Processor window. The Settings tab provides a place 
for the DFM to give the Reporting Task a unique name (if desired). It also 
lists the UUID, Type, and Bundle information for the task and provides settings 
for the task's Scheduling Strategy and Run Schedule (similar to the same 
settings in a processor). The DFM may [...]
 
 image:configure-reporting-task-settings.png["Configure Reporting Task 
Settings"]
 
@@ -945,9 +1159,9 @@ The Properties tab lists the various properties that may 
be configured for the t
 
 image:configure-reporting-task-properties.png["Configure Reporting Task 
Properties"]
 
-The Comments tab is just an open-text field, where the DFM may include 
comments about the task. After configuring the Reporting Task, click the 
`Apply` button to apply the configuration and close the window, or click the 
`Cancel` button to cancel the changes and close the window.
+The Comments tab is just an open-text field, where the DFM may include 
comments about the task. After configuring the Reporting Task, click "Apply" to 
save the configuration and close the window, or click "Cancel" to discard the 
changes and close the window.
 
-When you want to run the Reporting Task, click the `Start` button 
(image:iconStart.png["Start Button"]).
+When you want to run the Reporting Task, click the "Start" button 
(image:iconStart.png["Start Button"]).
 
 
 [[Connecting_Components]]
@@ -1247,7 +1461,6 @@ NOTE: For information on how to configure access 
policies, see the
 link:administration-guide.html#access-policies[Access Policies] section of the
 link:administration-guide.html[System Administrator’s Guide].
 
-
 === Example Dataflow
 
 This section has described the steps required to build a dataflow. Now, to put 
it all together. The following example dataflow
@@ -1294,7 +1507,7 @@ In order to start a component, the following conditions 
must be met:
 - The component must have no active tasks. For more information about active 
tasks, see the "Anatomy of ..."
 sections under <<monitoring>> (<<processor_anatomy>>, 
<<process_group_anatomy>>, <<remote_group_anatomy>>).
 
-Components can be started by selecting all of the components to start and then 
clicking the `Start` button (
+Components can be started by selecting all of the components to start and then 
clicking the "Start" button (
 image:buttonStart.png["Start"]
 ) in the
 Operate Palette or by right-clicking a single component and choosing Start 
from the context menu.
@@ -1310,7 +1523,7 @@ image:iconRun.png["Run"]
 === Stopping a Component
 
 A component can be stopped any time that it is running. A component is stopped 
by right-clicking on the component
-and clicking Stop from the context menu, or by selecting the component and 
clicking the `Stop` button (
+and clicking Stop from the context menu, or by selecting the component and 
clicking the "Stop" button (
 image:buttonStop.png["Stop"]
 ) in the Operate Palette.
 
@@ -1334,8 +1547,7 @@ intentionally not running and those that may have been 
stopped temporarily (for
 configuration) and inadvertently were never restarted.
 
 When it is desirable to re-enable a component, it can be enabled by selecting 
the component and
-clicking the `Enable` button (
-image:buttonEnable.png["Enable"]
+clicking the "Enable" button (image:buttonEnable.png["Enable"]
 ) in the Operate Palette. This is available only when the selected component 
or components are disabled.
 Alternatively, a component can be enabled by checking the checkbox next  to 
the "Enabled" option in
 the Settings tab of the Processor configuration dialog or the configuration 
dialog for a Port.
@@ -1346,7 +1558,7 @@ image:iconAlert.png["Invalid"]
 image:iconStop.png["Stopped"]
 ), depending on whether or not the component is valid.
 
-A component is then disabled by selecting the component and clicking the 
`Disable` button (
+A component is then disabled by selecting the component and clicking the 
"Disable" button (
 image:buttonDisable.png["Disable"]
 ) in the Operate Palette, or by clearing the checkbox next to the "Enabled" 
option in the Settings tab
 of the Processor configuration dialog or the configuration dialog for a Port.
@@ -1676,7 +1888,7 @@ The FlowFiles enqueued in a Connection can be viewed when 
necessary. The Queue l
 a Connection's context menu. The listing will return the top 100 FlowFiles in 
the active queue according to the
 configured priority. The listing can be performed even if the source and 
destination are actively running.
 
-Additionally, details for a Flowfile in the listing can be viewed by clicking 
the `Details` button (image:iconDetails.png["Details"]) in the left most 
column. From here, the FlowFile details and attributes are available as well as 
buttons for
+Additionally, details for a Flowfile in the listing can be viewed by clicking 
the "Details" button (image:iconDetails.png["Details"]) in the left most 
column. From here, the FlowFile details and attributes are available as well as 
buttons for
 downloading or viewing the content. Viewing the content is only available if 
the `nifi.content.viewer.url` has been configured.
 If the source or destination of the Connection are actively running, there is 
a chance that the desired FlowFile will
 no longer be in the active queue.
@@ -1686,7 +1898,8 @@ via `Empty queue` in the Connection's context menu. This 
action can also be perf
 are actively running.
 
 If the analytics prediction feature is enabled, hovering over the queue will 
also reveal predicted statistics on when the queue may encounter back pressure, 
either due to the object count or content size meeting the current threshold
-settings.  Predictions will only be available when NiFi has enough data in 
it's internal repository and if it's model is accurate enough to broadcast a 
prediction.
+settings.  Predictions will only be available when NiFi has enough data in its 
internal repository and if its model is accurate enough to broadcast a 
prediction. For more information, see the 
<<administration-guide.adoc#analytics_framework,Analytics Framework>> section 
in the System Administrator's Guide.
+
 
 [[Summary_Page]]
 === Summary Page
@@ -1729,8 +1942,8 @@ The Summary page also includes the following elements:
 - *Status History*: Clicking the Status History icon will open a new dialog 
that shows a historical view of the statistics that
        are rendered for this component. See the section <<Status_History>> for 
more information.
 
-- *Refresh*: The `Refresh` button allows the user to refresh the information 
displayed without closing the dialog and opening it
-       again. The time at which the information was last refreshed is shown 
just to the right of the `Refresh` button. The information
+- *Refresh*: The "Refresh" button allows the user to refresh the information 
displayed without closing the dialog and opening it
+       again. The time at which the information was last refreshed is shown 
just to the right of the "Refresh" button. The information
        on the page is not automatically refreshed.
 
 - *Filter*: The Filter element allows users to filter the contents of the 
Summary table by typing in all or part of some criteria,
@@ -1741,7 +1954,7 @@ The Summary page also includes the following elements:
        entries exist in the table.
 
 - *Pop-Out*: When monitoring a flow, it is helpful to be able to open the 
Summary table in a separate browser tab or window. The
-       "Pop Out" button, next to the `Close` button, will cause the entire 
Summary dialog to be opened in a new browser tab or window
+       "Pop Out" button, next to the "Close" button, will cause the entire 
Summary dialog to be opened in a new browser tab or window
        (depending on the configuration of the browser). Once the page is 
"popped out", the dialog is closed in the original
        browser tab/window. In the new tab/window, the "Pop Out" button and the 
"Go To" button will no longer be available.
 
@@ -2127,16 +2340,14 @@ received from others can then be imported into an 
instance of NiFi and dragged o
 [[Create_Template]]
 === Creating a Template
 To create a Template, select the components that are to be a part of the 
template, and then click the
-`Create Template` (
-image:iconNewTemplate.png["Create Template"]
-) button in the Operate Palette (See <<User_Interface>> for more information 
on the Operate Palette).
+"Create Template" (image:iconNewTemplate.png["Create Template"]) button in the 
Operate Palette (See <<User_Interface>> for more information on the Operate 
Palette).
 
 Clicking this button without selecting anything will create a Template that 
contains all of the contents of the
 current Process Group. This means that creating a Template with nothing 
selected while on the Root Process Group
 will create a single Template that contains the entire flow.
 
 After clicking this button, the user is prompted to provide a name and an 
optional description for the template.
-Each template must have a unique name. After entering the name and optional 
description, clicking the `Create` button
+Each template must have a unique name. After entering the name and optional 
description, clicking the "Create" button
 will generate the template and notify the user that the template was 
successfully created, or provide an appropriate
 error message if unable to create the template for some reason.
 
@@ -2152,12 +2363,10 @@ After receiving a Template that has been exported from 
another NiFi, the first s
 the template into this instance of NiFi. You may import templates into any 
Process Group where you have the appropriate
 authorization.
 
-From the Operate Palette, click the `Upload Template` (
-image:iconUploadTemplate.png["Upload Template"]
-)  button (see <<User_Interface>> for more information on the Operate 
Palette).  This will display the Upload Template
+From the Operate Palette, click the "Upload Template" 
(image:iconUploadTemplate.png["Upload Template"]) button (see 
<<User_Interface>> for more information on the Operate Palette).  This will 
display the Upload Template
 dialog.  Click the find icon and use the File Selection dialog to choose which 
template file to upload.
 Select the file and click Open.
-Clicking the `Upload` button will attempt to import the Template into this 
instance of NiFi.
+Clicking the "Upload" button will attempt to import the Template into this 
instance of NiFi.
 The Upload Template dialog will update to show "Success" or an error message 
if there was a problem importing the template.
 
 
@@ -2169,7 +2378,7 @@ image:iconTemplate.png["Template"]
 ) from the Components Toolbar (see <<User_Interface>>) onto the canvas.
 
 This will present a dialog to choose which Template to add to the canvas. 
After choosing the Template to add, simply
-click the `Add` button. The Template will be added to the canvas with the 
upper-left-hand side of the Template
+click the "Add" button. The Template will be added to the canvas with the 
upper-left-hand side of the Template
 being placed wherever the user dropped the Template icon.
 
 This leaves the contents of the newly instantiated Template selected. If there 
was a mistake, and this Template is no
@@ -2190,16 +2399,13 @@ filter the templates to see only those of interest, 
export, and delete Templates
 ==== Exporting a Template
 Once a Template has been created, it can be shared with others in the Template 
Management page.
 To export a Template, locate the Template in the table. The Filter in the 
top-right corner
-can be used to help find the appropriate Template if several are available. 
Then click the `Download` button (
-image:iconDownloadTemplate.png["Export"]
-). This will download the template as an XML file to your computer. This XML 
file can then be sent to others and imported
-into other instances of NiFi (see <<Import_Template>>).
+can be used to help find the appropriate Template if several are available. 
Then click the "Download" button (image:iconDownloadTemplate.png["Export"]). 
This will download the template as an XML file to your computer. This XML file 
can then be sent to others and imported into other instances of NiFi (see 
<<Import_Template>>).
 
 
 ==== Removing a Template
 
 Once it is decided that a Template is no longer needed, it can be easily 
removed from the Template Management page. To delete a Template, locate it in 
the table (the Filter in the top-right corner
-may be used to find the appropriate Template if several are available) and 
click the `Delete` button (
+may be used to find the appropriate Template if several are available) and 
click the "Delete" button (
 image:iconDelete.png["Delete"]
 ). This will prompt for confirmation. After confirming the deletion, the 
Template will be removed from this table
 and will no longer be available to add to the canvas.
@@ -2257,7 +2463,7 @@ The provenance event types are:
 
 === Searching for Events
 One of the most common tasks performed in the Data Provenance page is a search 
for a given FlowFile to determine what happened to it. To do this,
-click the `Search` button in the upper-right corner of the Data Provenance 
page. This opens a dialog window with parameters that the user can
+click the "Search" button in the upper-right corner of the Data Provenance 
page. This opens a dialog window with parameters that the user can
 define for the search. The parameters include the processing event of 
interest, distinguishing characteristics about the FlowFile or the component 
that produced the event, the timeframe within which to search, and the size of 
the FlowFile.
 
 image:search-events.png["Search Events"]
@@ -2271,7 +2477,7 @@ image:search-receive-event-abc.png["Search for RECEIVE 
Event"]
 
 [[event_details]]
 === Details of an Event
-In the far-left column of the Data Provenance page, there is a `View Details` 
icon for each event (image:iconDetails.png["Details"]).
+In the far-left column of the Data Provenance page, there is a "View Details" 
icon for each event (image:iconDetails.png["Details"]).
 Clicking this button opens a dialog window with three tabs: Details, 
Attributes, and Content.
 
 image:event-details.png["Event Details", width=700]
@@ -2290,8 +2496,8 @@ image:event-attributes.png["Event Attributes", width=700]
 
 A DFM may need to inspect a FlowFile's content at some point in the dataflow 
to ensure that it is being processed as expected. And if it
 is not being processed properly, the DFM may need to make adjustments to the 
dataflow and replay the FlowFile again. The Content tab of the View Details 
dialog window is where the DFM can do these things. The Content tab shows 
information about the FlowFile's content, such as its location in the Content 
Repository
-and its size. In addition, it is here that the user may click the `Download` 
button to download a copy of the FlowFile's content as it existed
-at this point in the flow. The user may also click the `Submit` button to 
replay the FlowFile at this point in the flow. Upon clicking `Submit`,
+and its size. In addition, it is here that the user may click the "Download" 
button to download a copy of the FlowFile's content as it existed
+at this point in the flow. The user may also click the "Submit" button to 
replay the FlowFile at this point in the flow. Upon clicking "Submit",
 the FlowFile is sent to the connection feeding the component that produced 
this processing event.
 
 image:event-content.png["Event Content", width=700]
@@ -2360,7 +2566,7 @@ Many of the same system properties are supported by both 
the Persistent and Writ
 
 Once these property changes have been made, restart NiFi.
 
-**Note:** Detailed descriptions for each of these properties can be found in  
<<administration-guide.adoc#system_properties,System Properties>>.
+**Note:** Detailed descriptions for each of these properties can be found in 
<<administration-guide.adoc#system_properties,System Properties>>.
 
 ==== Encrypted Provenance Considerations
 The above migration recommendations for `WriteAheadProvenanceRepository` also 
apply to the encrypted version of the configuration, 
`EncryptedWriteAheadProvenanceRepository`.

Reply via email to