Skip to content

NIFI-7307 Adding support for setting and retrieving Azure Blob Storag…#10939

Merged
pvillard31 merged 6 commits into
apache:mainfrom
pkelly-nifi:nifi-7307
Jul 16, 2026
Merged

NIFI-7307 Adding support for setting and retrieving Azure Blob Storag…#10939
pvillard31 merged 6 commits into
apache:mainfrom
pkelly-nifi:nifi-7307

Conversation

@pkelly-nifi

Copy link
Copy Markdown
Contributor

…e metadata and tags

Summary

NIFI-7307 Adds support for setting and retrieving Azure Blob Storage object metadata and tags. Modeled after similar functionality which exists for S3.

Tracking

Please complete the following tracking steps prior to pull request creation.

Issue Tracking

Pull Request Tracking

  • Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
  • Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000
  • Pull request contains commits signed with a registered key indicating Verified status

Pull Request Formatting

  • Pull Request based on current revision of the main branch
  • Pull Request refers to a feature branch with one commit containing changes

Verification

Please indicate the verification steps performed prior to pull request creation.

Build

  • Build completed using ./mvnw clean install -P contrib-check
    • JDK 21
    • JDK 25

Licensing

  • New dependencies are compatible with the Apache License 2.0 according to the License Policy
  • New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

  • Documentation formatting appears as expected in rendered files

@pvillard31 pvillard31 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some initial comments. Will be also important to add some test coverage.

@pkelly-nifi

Copy link
Copy Markdown
Contributor Author

Thank you for your review and feedback, @pvillard31. I have made all of the changes you requested and will look into adding tests today. It looks like all of the current Azure blob storage tests only focus on property migration, so it might take me a little time to add for these processors.

@pkelly-nifi
pkelly-nifi force-pushed the nifi-7307 branch 2 times, most recently from 0dc3382 to 7436977 Compare March 3, 2026 20:38

@exceptionfactory exceptionfactory left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this @pkelly-nifi.

Although other Azure Processors have the _v12 suffix, I don't think that convention should be perpetuated for new Processors, so I recommend renaming these new Processors.

@exceptionfactory

Copy link
Copy Markdown
Contributor

Also important to note, all commits must have verified signatures, so it will be necessary to rebase and force-push to the branch to ensure all commits are signed.

@pkelly-nifi

Copy link
Copy Markdown
Contributor Author

Thank you for your feedback @exceptionfactory. I renamed the new processors to remove "_v12" from their names and rebased with signing the previous commit.

@pkelly-nifi

Copy link
Copy Markdown
Contributor Author

Hi @pvillard31 and @exceptionfactory. Do you have any additional feedback for these processors?

@pvillard31 pvillard31 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rebase on top of origin/main for the checks to properly execute.

@pvillard31 pvillard31 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Latest LGTM but I just thought that maybe FetchAzure... would be better than GetAzure... as most of the time Get processors are processors with no input relationship. Thoughts?

Comment on lines +125 to +142
public static final PropertyDescriptor BLOB_TAG_PREFIX = new PropertyDescriptor.Builder()
.name("Blob Tag Prefix")
.description("Specifies the prefix which would be scanned against the incoming FlowFile's attributes and the matching attribute's " +
"name and value would be considered as the outgoing Azure blob's Tag name and Tag value respectively. For Ex: If the " +
"incoming FlowFile carries the attributes tagAzurecountry, tagAzurePII, the tag prefix to be specified would be 'tagAzure'")
.required(false)
.addValidator(StandardValidators.NON_EMPTY_EL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();

public static final PropertyDescriptor REMOVE_TAG_PREFIX = new PropertyDescriptor.Builder()
.name("Remove Tag Prefix")
.description("If set to 'True', the value provided for '" + BLOB_TAG_PREFIX.getDisplayName() + "' will be removed from " +
"the attribute(s) and then considered as the Tag name. For ex: If the incoming FlowFile carries the attributes tagAzurecountry, " +
"tagAzurePII and the prefix is set to 'tagAzure' then the corresponding tag values would be 'country' and 'PII'")
.allowableValues(new AllowableValue("true", "True"), new AllowableValue("false", "False"))
.defaultValue("false")
.build();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use multi line strings here?

@pkelly-nifi

Copy link
Copy Markdown
Contributor Author

I went back and forth on the Get/Fetch name at first, but went with Get to keep it consistent with the equivalent S3 processors. I agree that Fetch is more appropriate for this. Will update.

@pkelly-nifi

Copy link
Copy Markdown
Contributor Author

Looks like the checks were failing. Rebased again.

@pvillard31
pvillard31 merged commit fb432a2 into apache:main Jul 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants