Pierre Villard created NIFI-16235:
-------------------------------------

             Summary: Support rebasing locally added Controller Services in 
versioned Process Groups
                 Key: NIFI-16235
                 URL: https://issues.apache.org/jira/browse/NIFI-16235
             Project: Apache NiFi
          Issue Type: Improvement
            Reporter: Pierre Villard
            Assignee: Pierre Villard


Versioned Process Group rebase currently rejects all locally added components 
because {{COMPONENT_ADDED}} differences have no supported rebase handler. This 
prevents otherwise compatible local Controller Service changes from being 
preserved when rebasing onto a newer flow version.

Two affected scenarios are:
 # *Processor Controller Service reference*

 ** Version N contains a Processor referencing Controller Service X.
 ** Locally, Controller Service Y is added and the Processor is changed to 
reference Y.
 ** Version N+1 does not modify that Processor property.
 ** Rebase should preserve Y and the Processor reference to Y.
 # *Dynamic Controller Service references*

 ** Version N contains Controller Service A with a dynamic property referencing 
X.
 ** Locally, Controller Services Y and Z are added and dynamic properties are 
added to A referencing them.
 ** Version N+1 does not modify A.
 ** Rebase should preserve Y, Z, and the dynamic references from A.

Add guarded support for {{COMPONENT_ADDED}} differences when the added 
component is a {{{}VersionedControllerService{}}}.

The rebase should:
 * Allow referenced and unreferenced locally added Controller Services.
 * Preserve the complete local Controller Service configuration.
 * Insert the service into its surviving parent Process Group.
 * Preserve compatible Processor and Controller Service properties referencing 
the added service.
 * Reject the rebase if the parent Process Group was removed upstream.
 * Reject identifier collisions with any component in the target snapshot.
 * Keep additions of Processors, Process Groups, ports, connections, and other 
component types unsupported.
 * Preserve the all-or-nothing rebase behavior.
 * Keep preserved changes visible as local modifications against the clean N+1 
baseline.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to