Koji Kawamura created NIFIREG-162:

             Summary: Add Git backed persistence provider
                 Key: NIFIREG-162
                 URL: https://issues.apache.org/jira/browse/NIFIREG-162
             Project: NiFi Registry
          Issue Type: Improvement
            Reporter: Koji Kawamura
            Assignee: Koji Kawamura

Currently, NiFi Registry provides FileSystemFlowPersistenceProvider, which 
stores Flow snapshot files into local file system. It simply manages snapshot 
versions by creating directories with version numbers.

While it works, there are also demands for using Git as a version control and 
persistence mechanism.

A Git backend persistence repository would be beneficial in following aspects:

* Git is a SCM (Source Control Management) that manages commits, branches, file 
diffs, patches natively and provide ways to contribute and apply changes among 
* Local and remote Git repositories can construct a distributed reliable storage
* There are several Git repository services on the internet which can be used 
as remote Git repositories those can be used as backup storages

There are few things with current NiFi Registry framework and existing 
FileSystemFlowPersistenceProvider those may not be Git friendly:
* Bucket id and Flow id are UUID and not recognizable by human, if those files 
have human readable names, many Git commands and tools can be used easier.
* Current serialized Flow snapshots are binary files having header bytes and 
XML encoded flow contents. If those are pure ASCII format, Git can provide 
better diffs among commits, that can provide better UX in terms of controlling 
Flow snapshot versions
* NiFi Registry userid which can be used as author in Git commit is not 
available in FlowSnapshotContext

Also, if we are going to add another Persistence Provider implementation, we 
also need to provide a way to migrate existing persisted files so that those 
can be used by new one.

This message was sent by Atlassian JIRA

Reply via email to