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)