Community Articles
Find and share helpful community-sourced technical articles
Rising Star


Step-by step instructions for enabling the git persistence provider for NiFi in Cloudera Flow Management (CFM) on Cloudera Manager.



The default install of early releases of Cloudera Flow Management (CFM) includes only basic configurations for NiFi Registry in Cloudera Manager.

This article explains how to reconfigure the Nifi Registry persistence providers to use git instead of the filesystem provider.



CFM (CDF) 1.0.1 or later and CM 5.16 or CM 6.2 or later



1. Pick a location where the Nifi Registry will store local git repository files. This location has to be accessible to the NiFi Registry service account (typically: nifiregistry). It must also be initialized as a git repository using git init and linked to a remote repository using git remote add origin. (Alternatively, an existing git repository can be cloned to create the folder using git clone). The substitution variable ${} can be used to point to the install location for NiFi Registry (usually /var/lib/nifiregistry/ when NiFi registry is installed by Cloudera Manager).

2. From the NIFIREGISTRY Configuration tab in Cloudera Manager, search for “flowPersistenceProvider”

3. Locate the “NiFi Registry Advanced Configuration Snippet (Safety Valve) for staging/providers.xml” Safety Valve configuration.

4. Add the following Name/Value Pairs:




Value (example)






Provider java class for git - should always be org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider Storage Directory


Local directory for git project. Must be git initialized and have a remote defined. Use https link To Push


Name of remote to push to - typically "origin" Access User


User account for git remote repository Access Password


Personal access token for Github API


Sample XML



<name> Access Password</name>
<description>Personal access token for Github API</description>
<description>Provider java class for git - should always be org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider</description>
<name> Storage Directory</name>
<description>Local directory for git project. Must be git initialized and have a remote defined. Use https link</description>
<name> To Push</name>
<description>Name of remote to push to - typically "origin"</description>
<name> Access User</name>
<description>User account for git remote repository</description>




5. From the NIFIREGISTRY Configuration tab in Cloudera Manager, search for “providers ignored properties”

6. Locate the “providers ignored properties” (nifi.registry.providers.ignored) configuration.

7. Add the following two properties to the ignored list: Storage Directory



(this prevents NiFi Registry from adding the default filesystem provider to the providers.xml along with the git provider, which would be invalid)


NiFi Ignore Properties.png



After making the changes above and restarting the NiFi Registry service, you should be able to enable a registry client in the NiFi Controller Settings, then start version control in the NiFi canvas and see your changes reflected in the remote git repository (such as GitHub). For more information about versioning and dev/ops workflows using the NiFi Flow Registry with git, check out Pierre Villard’s excellent article here.


NiFi Version Control.png






New Contributor

Note that Storage Directory

in step 7 needs to be Storage Directory

as shown in the picture beneath it.

Rising Star

Thanks, @HorizonNet - I've updated the article with the correction!

Don't have an account?
Version history
Revision #:
2 of 2
Last update:
‎10-21-2019 01:07 PM
Updated by:
Top Kudoed Authors