You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2019/09/20 19:30:00 UTC

[nifi] branch master updated: NIFI-6558 Improved import/export versioned flows section and also edited managing local changes section

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 4cf9616  NIFI-6558 Improved import/export versioned flows section and also edited managing local changes section
4cf9616 is described below

commit 4cf961690acef8d41a55b0f928eb2532443bcf3e
Author: Andrew Lim <an...@gmail.com>
AuthorDate: Wed Sep 18 11:15:48 2019 -0400

    NIFI-6558 Improved import/export versioned flows section and also edited managing local changes section
    
    This closes #3753
---
 .../main/asciidoc/images/nifi_pc1_parameters.png   | Bin 0 -> 79044 bytes
 .../asciidoc/images/nifi_pc1_parameters_new.png    | Bin 0 -> 85571 bytes
 .../src/main/asciidoc/images/pc1_parameters.png    | Bin 0 -> 85249 bytes
 nifi-docs/src/main/asciidoc/user-guide.adoc        |  45 +++++++++++++++++----
 4 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters.png b/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters.png
new file mode 100644
index 0000000..f006f44
Binary files /dev/null and b/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters_new.png b/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters_new.png
new file mode 100644
index 0000000..c0b0524
Binary files /dev/null and b/nifi-docs/src/main/asciidoc/images/nifi_pc1_parameters_new.png differ
diff --git a/nifi-docs/src/main/asciidoc/images/pc1_parameters.png b/nifi-docs/src/main/asciidoc/images/pc1_parameters.png
new file mode 100644
index 0000000..b4bb379
Binary files /dev/null and b/nifi-docs/src/main/asciidoc/images/pc1_parameters.png differ
diff --git a/nifi-docs/src/main/asciidoc/user-guide.adoc b/nifi-docs/src/main/asciidoc/user-guide.adoc
index 2900035..89d1c41 100644
--- a/nifi-docs/src/main/asciidoc/user-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/user-guide.adoc
@@ -873,7 +873,7 @@ Hovering over the question mark icon (image:iconInfo.png["Info"]) displays the p
 
 
 ===== 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>>.
+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-in-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.
 
@@ -908,12 +908,6 @@ In order to modify a Parameter, a user must have view and modify policies for an
 
 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
@@ -2122,11 +2116,14 @@ The following actions are not considered local changes:
 * modifying sensitive property values
 * modifying remote process group URLs
 * updating a processor that was referencing a non-existent controller service to reference an externally available controller service
+* assigning, creating, modifying or deleting parameter contexts
 * creating, modifying or deleting variables
 
+NOTE: Assigning or creating a parameter context does not trigger a local change because assigning or creating a parameter context on its own has not changed anything about what the flow processes. A component will have to be created or modified that uses a parameter in the parameter context, which will trigger a local change. Modifying a parameter context does not trigger a local change because parameters are intended to be different in each environment. When a versioned flow is imported [...]
+
 NOTE: Creating a variable does not trigger a local change because creating a variable on its own has not changed anything about what the flow processes. A component will have to be created or modified that uses the new variable, which will trigger a local change. Modifying a variable does not trigger a local change because variable values are intended to be different in each environment. When a versioned flow is imported, it is assumed there is a one-time operation required to set those  [...]
 
-WARNING: Variables do not support sensitive values and will be included when versioning a Process Group. See <<Variables_in_Versioned_Flows>> for more information.
+WARNING: Variables do not support sensitive values and will be included when versioning a Process Group. Variables 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 will be removed in a future release. As a result, it is highly recommended to switch to Parameters.
 
 ==== Show Local Changes
 The local changes made to a versioned process group can be viewed in the Show Local Changes dialog by selecting "Version->Show local changes" from the context menu.
@@ -2188,6 +2185,38 @@ image::process-group-version-control-stopped.png["Version Control Stopped on Pro
 === Nested Versioned Flows
 A versioned process group can contain other versioned process groups.  However, local changes to a parent process group cannot be reverted or saved if it contains a child process group that also has local changes.  The child process group must first be reverted or have its changes committed for those actions to be performed on the parent process group.
 
+[[parameters-in-versioned-flows]]
+=== Parameters in Versioned Flows
+When exporting a versioned flow to a Flow Registry, the name of the Parameter Context is sent for each process group that is stored. The Parameters (names, descriptions, values, whether or not sensitive) are also stored with the flow. However, Sensitive Parameter values are not stored.
+
+When a versioned flow is imported, a Parameter Context will be created for each one that doesn't already exist in the NiFi instance. When importing a versioned flow from Flow Registry, if NiFi has a Parameter Context with the same name, the values are merged, as described in the following example:
+
+A flow has a Parameter Context "PC1" with the following parameters:
+
+image::pc1_parameters.png[PC1 Parameters]
+
+The flow is exported and saved to the Flow Registry.
+
+A NiFi instance has a Parameter Context also named "PC1" with the following parameters:
+
+image::nifi_pc1_parameters.png[NiFi PC1 Parameters]
+
+The versioned flow is imported into the NiFi instance. The Parameter Context "PC1" now has the following parameters:
+
+image::nifi_pc1_parameters_new.png[New NiFi PC1 Parameters]
+
+The "Letters" parameter did not exist in the NiFi instance and was added. The "Numbers" parameter existed in both the versioned flow and NiFi instance with identical values, so no changes were made. "Password" is a sensitive Parameter missing from the NiFi instance, so it was added but with no value. "Port" existed in the NiFi instance with a different value than the versioned flow, so its value remained unchanged.
+
+Parameter Contexts are handled similarly when a flow version is changed. Consider the following two examples:
+
+If the versioned flow referenced earlier is changed to another version (Version 2) and Version 2's Parameter Context "PC1" has a "Colors" Parameter, "Colors" will be added to "PC1" in the NiFi instance.
+
+Version 1 of a flow does not have a Parameter Context associated with it. A new version (Version 2) does. When the flow is changed from Version 1 to Version 2, one of the following occurs:
+
+- A new Parameter Context is created if it does not already exist
+- An existing Parameter Context is assigned (by name) to the Process Group and the values of the Parameter Contexts are merged
+
+
 [[Variables_in_Versioned_Flows]]
 === Variables in Versioned Flows
 Variables are included when a process group is placed under version control.  If a versioned flow is imported that references a variable not defined in the versioned process group, the reference is maintained if the variable exists.  If the referenced variable does not exist, a copy of the variable will be defined in the process group.  To illustrate, assume the variable “RPG_Var" is defined in the root process group: