[
https://issues.apache.org/jira/browse/NIFI-16235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard updated NIFI-16235:
----------------------------------
Status: Patch Available (was: Open)
> 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
> Priority: Major
>
> 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)