anchor.diff:  |*Data model version*|*Since NiFi Registry*|*Description*
   |2|0.2|JSON formatted text file. The root object contains header and Flow content object.
   |1|0.1|Binary format having header bytes at the beginning followed by Flow content represented as XML.
  +|====
  +
  +=== Bundle Persistence Providers
  +
  +The bundle persistence provider stores the content of extension bundles saved to the registry. NiFi Registry provides `<<FileSystemBundlePersistenceProvider>>` and `<<S3BundlePersistenceProvider>>`.
  +
  +The XML configuration file looks like below. It has a `extensionBundlePersistenceProvider` element in which the qualified class name of a persistence provider implementation and its configuration properties are defined. See following sections for available configurations for each provider.
  +
  +.Example extension bundle persistence provider in providers.xml
  +[source,xml]
  +....
  +<extensionBundlePersistenceProvider>
  +    <class>persistence-provider-qualified-class-name</class>
  +    <property name="property-1">property-value-1</property>
  +    <property name="property-2">property-value-2</property>
  +    <property name="property-n">property-value-n</property>
  +</extensionBundlePersistenceProvider>
  +....
  +
  +==== FileSystemBundlePersistenceProvider
  +
  +The FileSystemBundlePersistenceProvider stores the content of extension bundles on the local file-system. The bundles are organized in directories according to bucket id, group, artifact, and version.
  +
  +Example of persisted extension bundles:
  +....
  +Extension Bundle Storage Directory/
  +├── {bucket-id}/
  +   └── {group-id}/
  +       └── {artifact-id}
  +           └── {version}/{artifact-id}-{version}.{extension}
  +├── d1beba88-32e9-45d1-bfe9-057cc41f7ce8/
  +    └── org.apache.nifi
  +        └── nifi-example-nar
  +            └── 1.0.0/nifi-example-nar-1.0.0.nar
  +            └── 2.0.0/nifi-example-nar-2.0.0.nar
  +....
  +
  +===== Configuration
  +
  +Qualified class name: `org.apache.nifi.registry.provider.extension.FileSystemBundlePersistenceProvider`
  +
  +|====
  +|*Property*|*Description*
  +|`Extension Bundle Storage Directory`|REQUIRED: File system path for a directory where extension bundle contents files are persisted to. If the directory does not exist when NiFi Registry starts, it will be created. If the directory exists, it must be readable and writable from NiFi Registry.
  +|====
  +
  +==== S3BundlePersistenceProvider
  +
  +The S3BundlePersistenceProvider stores the content of extension bundles in AWS S3 bucket. The bucket is expected to already exist and be accessible to the credentials provided to the persistence providcer.
  +
  +NOTE: This provider must be added to the classpath by specifying a custom extension directory in nifi-registry.properties, such as nifi.registry.extension.dir.aws=./ext/aws/lib, where ./ext/aws/ contains the contents of the extracted nifi-registry-aws-assembly-<version>-bin.zip.
  +
  +The key of an extension bundle in the S3 bucket will be the following:
  +....
  +/{registry-bucket-id}/{group-id}/{artifact-id}/{version}/{artifact-id}-{version}.{extension}
  +....
  +
  +If an optional Key Prefix is specified, then that prefix will be applied to the beginning of the above key.
  +
  +===== Configuration
  +
  +Qualified class name: `org.apache.nifi.registry.aws.S3BundlePersistenceProvider`
  +
  +|====
  +|*Property*|*Description*
  +|`Region`|REQUIRED: The name of the S3 region where the bucket exists.
  +|`Bucket Name`|REQUIRED: The name of an existing bucket to store extension bundles.
  +|`Key Prefix`|An optional prefix that if specified will be added to the beginning of all S3 keys.
  +|`Credentials Provider`|REQUIRED: Indicates how credentials will be provided, must be a value of DEFAULT_CHAIN or STATIC. DEFAULT_CHAIN will consider in order: Java system properties, environment variables, credential profiles (~/.aws/credentials). STATIC requires that "Access Key" and "Secret Access Key" be specified directly in this file.
  +|`Access Key`| The access key to use when using STATIC credentials provider.
  +|`Secret Access Key`| The secret access key to use when using STATIC credentials provider.
  +|`Endpoint URL`| An optional URL that overrides the default AWS S3 endpoint URL. Set this when using an AWS S3 API compatible service hosted at a different URL.
   |====
   
   == Event Hooks
  
positive.code: |`Remote Access Password`|Used with `Remote Access User`.
  |====
  
  ==== Initialize Git directory
  
  In order to use `GitFlowPersistenceRepository`, you need to prepare a Git directory on the local file system. You can do so by initializing a directory with `git init` command, or clone an existing Git project from a remote Git repository by `git clone` command.
  
  
negative.code:   IdentityFile ~/.ssh/key-for-bitbucket
  ....
  
  ==== Switching from other Flow Persistence Provider
  
  In order to switch the Flow Persistence Provider, it is necessary to reset NiFi Registry.
  For example, to switch from `FileSystemFlowPersistenceProvider` to `GitFlowPersistenceProvider`, follow these steps:
  
  . Stop version control on all ProcessGroups in NiFi
  