[
https://issues.apache.org/jira/browse/NIFI-15341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18046548#comment-18046548
]
Joe Gresock edited comment on NIFI-15341 at 12/19/25 10:29 AM:
---------------------------------------------------------------
Yes, the problem is isolated to External Controller Services. Here's the
scenario that is affected:
# User downloads a NiFI 2.4.0 flow definition for a Process Group, with an
External Controller Service referenced (say, a MongoDBControllerService with
property "ssl-context-service" referencing a
StandardRestrictedSSLContextService named "SSL Context Service")
# User then creates a StandardRestrictedSSLContextService called "SSL Context
Service" at the root level of another NiFi instance, version 2.6.0
# User imports the flow definition. The External Controller Service is not
identified and requires manual intervention to select it.
I'm contending that the user is reasonable to expect that the External
Controller Service in this scenario should be automatically selected. They
would probably be puzzled why it was not selected, and if they got as far as to
realize that it was because the property was renamed, they would probably
wonder why this "property migration" feature didn't work that NiFi claims to
have.
I realize that the "second pass External Controller Service resolution" is a
relatively complex change, but I feel that it was an oversight from the initial
implementation of property migration, and should have been there all along.
Property migration is a big feature, and it's understandable that this was
missed, but I think it would be beneficial to add.
was (Author: jgresock):
Yes, the problem is isolated to External Controller Services. Here's the
scenario that is affected:
# User downloads a NiFI 2.4.0 flow definition for a Process Group, with an
External Controller Service referenced (say, a MongoDBControllerService with
property "ssl-context-service" referencing a
StandardRestrictedSSLContextService named "SSL Context Service")
# User then creates a StandardRestrictedSSLContextService called "SSL Context
Service" at the root level of another NiFi instance, version 2.6.0
# User imports the flow definition. The External Controller Service is not
identified and requires manual intervention to select it.
I'm contending that the user is reasonable to expect that the External
Controller Service in this scenario should be automatically selected. They
would probably be puzzled why it was not selected, and if they got as far as to
realize that it was because the property was renamed, they would probably
wonder why this "property migration" feature didn't work that NiFi claims to
have.
> External Controller Service resolution can break with property migration
> ------------------------------------------------------------------------
>
> Key: NIFI-15341
> URL: https://issues.apache.org/jira/browse/NIFI-15341
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 2.7.1
> Reporter: Joe Gresock
> Assignee: Joe Gresock
> Priority: Minor
> Attachments: CS_Resolution.json
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> When importing or replacing a Process Group, External Controller Services can
> fail to resolve if a component property was renamed between the versioned
> flow and the currently installed bundle using property migration.
> To reproduce in 2.4.0 or later, download attached JSON file representing a
> Process Group Replace request. Then log into NiFi and copy the Bearer token.
> Then create a new blank process group in NiFi and copy its identifier for
> below.
> Next, create a new StandardRestrictedSSLContextService at the root canvas and
> name it "SSL Context Service".
> {code:java}
> BEARER_TOKEN=<paste bearer token>
> PG_ID=<pg id>
> curl -k -vv -X POST
> https://localhost:8443/nifi-api/process-groups/$PG_ID/replace-requests -H
> "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" -d
> @CS_Resolution.json
> {code}
> Observe that the SSL Context Service property in the MongoDBControllerService
> now references a UUID instead of the "SSL Context Service" service.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)