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
users
* 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
(v7.6.3#76005)