[ https://issues.apache.org/jira/browse/NIFIREG-162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16456550#comment-16456550 ]
ASF GitHub Bot commented on NIFIREG-162: ---------------------------------------- Github user bbende commented on a diff in the pull request: https://github.com/apache/nifi-registry/pull/112#discussion_r184709680 --- Diff: nifi-registry-utils/src/main/java/org/apache/nifi/registry/util/FileUtils.java --- @@ -389,4 +389,38 @@ public static void sleepQuietly(final long millis) { /* do nothing */ } } + + + // The invalid character list is copied from this Stackoverflow page. + // https://stackoverflow.com/questions/1155107/is-there-a-cross-platform-java-method-to-remove-filename-special-chars + private final static int[] INVALID_CHARS = {34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, --- End diff -- Should we add a space to this list? Technically a space is valid, but currently a bucket name of `This / is a / test` becomes `This _ is a _ test` but I was originally thinking it would be `This_is_a_test` or I guess technically it would have multiple underscores like `This___is_a___test` ? > 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 > Priority: Major > > 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)