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