[ 
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)

Reply via email to