MINIFI-532: Support more configurable properties for content and provenance repositories

This closes #191.

Signed-off-by: Andy LoPresto <alopresto@apache.org>
diff --git a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
index 677080c..f42d6ce 100644
--- a/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
+++ b/minifi-bootstrap/src/main/java/org/apache/nifi/minifi/bootstrap/util/ConfigTransformer.java
@@ -226,9 +226,9 @@
             orderedProperties.setProperty("nifi.content.repository.implementation", "org.apache.nifi.controller.repository.FileSystemRepository", System.lineSeparator() + "# Content Repository");
             orderedProperties.setProperty("nifi.content.claim.max.appendable.size", contentRepoProperties.getContentClaimMaxAppendableSize());
             orderedProperties.setProperty("nifi.content.claim.max.flow.files", String.valueOf(contentRepoProperties.getContentClaimMaxFlowFiles()));
-            orderedProperties.setProperty("nifi.content.repository.archive.max.retention.period", "");
-            orderedProperties.setProperty("nifi.content.repository.archive.max.usage.percentage", "");
-            orderedProperties.setProperty("nifi.content.repository.archive.enabled", "false");
+            orderedProperties.setProperty("nifi.content.repository.archive.max.retention.period", contentRepoProperties.getContentRepoArchiveMaxRetentionPeriod());
+            orderedProperties.setProperty("nifi.content.repository.archive.max.usage.percentage", contentRepoProperties.getContentRepoArchiveMaxUsagePercentage());
+            orderedProperties.setProperty("nifi.content.repository.archive.enabled", Boolean.toString(contentRepoProperties.getContentRepoArchiveEnabled()));
             orderedProperties.setProperty("nifi.content.repository.directory.default", "./content_repository");
             orderedProperties.setProperty("nifi.content.repository.always.sync", Boolean.toString(contentRepoProperties.getAlwaysSync()));
 
@@ -237,7 +237,12 @@
 
             orderedProperties.setProperty("nifi.provenance.repository.rollover.time", provenanceRepositorySchema.getProvenanceRepoRolloverTimeKey());
 
-            orderedProperties.setProperty("nifi.provenance.repository.buffer.size", "10000", System.lineSeparator() + "# Volatile Provenance Respository Properties");
+            orderedProperties.setProperty("nifi.provenance.repository.index.shard.size", provenanceRepositorySchema.getProvenanceRepoIndexShardSize());
+            orderedProperties.setProperty("nifi.provenance.repository.max.storage.size", provenanceRepositorySchema.getProvenanceRepoMaxStorageSize());
+            orderedProperties.setProperty("nifi.provenance.repository.max.storage.time", provenanceRepositorySchema.getProvenanceRepoMaxStorageTime());
+
+            orderedProperties.setProperty("nifi.provenance.repository.buffer.size", String.valueOf(provenanceRepositorySchema.getProvenanceRepoBufferSize()),
+                    System.lineSeparator() + "# Volatile Provenance Respository Properties");
 
             orderedProperties.setProperty("nifi.components.status.repository.implementation", "org.apache.nifi.controller.status.history.VolatileComponentStatusRepository",
                     System.lineSeparator() + "# Component Status Repository");
diff --git a/minifi-bootstrap/src/test/resources/MINIFI-216/nifi.properties.before b/minifi-bootstrap/src/test/resources/MINIFI-216/nifi.properties.before
index 22b02ad..5741bf1 100644
--- a/minifi-bootstrap/src/test/resources/MINIFI-216/nifi.properties.before
+++ b/minifi-bootstrap/src/test/resources/MINIFI-216/nifi.properties.before
@@ -64,8 +64,8 @@
 nifi.content.repository.implementation=org.apache.nifi.controller.repository.FileSystemRepository
 nifi.content.claim.max.appendable.size=10 MB
 nifi.content.claim.max.flow.files=100
-nifi.content.repository.archive.max.retention.period=
-nifi.content.repository.archive.max.usage.percentage=
+nifi.content.repository.archive.max.retention.period=12 hours
+nifi.content.repository.archive.max.usage.percentage=50%
 nifi.content.repository.archive.enabled=false
 nifi.content.repository.directory.default=./content_repository
 nifi.content.repository.always.sync=false
diff --git a/minifi-bootstrap/src/test/resources/MINIFI-277/nifi.properties b/minifi-bootstrap/src/test/resources/MINIFI-277/nifi.properties
index 53c4ad8..771d8f5 100644
--- a/minifi-bootstrap/src/test/resources/MINIFI-277/nifi.properties
+++ b/minifi-bootstrap/src/test/resources/MINIFI-277/nifi.properties
@@ -66,8 +66,8 @@
 nifi.content.repository.implementation=org.apache.nifi.controller.repository.FileSystemRepository
 nifi.content.claim.max.appendable.size=10 MB
 nifi.content.claim.max.flow.files=100
-nifi.content.repository.archive.max.retention.period=
-nifi.content.repository.archive.max.usage.percentage=
+nifi.content.repository.archive.max.retention.period=12 hours
+nifi.content.repository.archive.max.usage.percentage=50%
 nifi.content.repository.archive.enabled=false
 nifi.content.repository.directory.default=./content_repository
 nifi.content.repository.always.sync=false
diff --git a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ContentRepositorySchema.java b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ContentRepositorySchema.java
index e96bb75..89afafa 100644
--- a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ContentRepositorySchema.java
+++ b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ContentRepositorySchema.java
@@ -31,13 +31,23 @@
 public class ContentRepositorySchema extends BaseSchema implements WritableSchema {
     public static final String CONTENT_CLAIM_MAX_APPENDABLE_SIZE_KEY = "content claim max appendable size";
     public static final String CONTENT_CLAIM_MAX_FLOW_FILES_KEY = "content claim max flow files";
+    public static final String CONTENT_REPO_ARCHIVE_ENABLED_KEY = "content repository archive enabled";
+    public static final String CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD_KEY = "content repository archive max retention period";
+    public static final String CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE_KEY = "content repository archive max usage percentage";
 
     public static final String DEFAULT_CONTENT_CLAIM_MAX_APPENDABLE_SIZE = "10 MB";
     public static final int DEFAULT_CONTENT_CLAIM_MAX_FLOW_FILES = 100;
+    public static final boolean DEFAULT_CONTENT_REPO_ARCHIVE_ENABLED = false;
+    public static final String DEFAULT_CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD = "12 hours";
+    public static final String DEFAULT_CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE = "50%";
     public static final boolean DEFAULT_ALWAYS_SYNC = false;
 
     private String contentClaimMaxAppendableSize = DEFAULT_CONTENT_CLAIM_MAX_APPENDABLE_SIZE;
     private Number contentClaimMaxFlowFiles = DEFAULT_CONTENT_CLAIM_MAX_FLOW_FILES;
+    private Boolean contentRepoArchiveEnabled = DEFAULT_CONTENT_REPO_ARCHIVE_ENABLED;
+    private String contentRepoArchiveMaxRetentionPeriod = DEFAULT_CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD;
+    private String contentRepoArchiveMaxUsagePercentage = DEFAULT_CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE;
+
     private Boolean alwaysSync = DEFAULT_ALWAYS_SYNC;
 
     public ContentRepositorySchema() {
@@ -48,6 +58,12 @@
                 CONTENT_REPO_KEY, DEFAULT_CONTENT_CLAIM_MAX_APPENDABLE_SIZE);
         contentClaimMaxFlowFiles = getOptionalKeyAsType(map, CONTENT_CLAIM_MAX_FLOW_FILES_KEY, Number.class,
                 CONTENT_REPO_KEY, DEFAULT_CONTENT_CLAIM_MAX_FLOW_FILES);
+        contentRepoArchiveEnabled = getOptionalKeyAsType(map, CONTENT_REPO_ARCHIVE_ENABLED_KEY, Boolean.class,
+                CONTENT_REPO_KEY, DEFAULT_CONTENT_REPO_ARCHIVE_ENABLED);
+        contentRepoArchiveMaxRetentionPeriod = getOptionalKeyAsType(map, CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD_KEY, String.class,
+                CONTENT_REPO_KEY, DEFAULT_CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD);
+        contentRepoArchiveMaxUsagePercentage = getOptionalKeyAsType(map, CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE_KEY, String.class,
+                CONTENT_REPO_KEY, DEFAULT_CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE);
         alwaysSync = getOptionalKeyAsType(map, ALWAYS_SYNC_KEY, Boolean.class, CONTENT_REPO_KEY, DEFAULT_ALWAYS_SYNC);
     }
 
@@ -56,6 +72,9 @@
         Map<String, Object> result = mapSupplier.get();
         result.put(CONTENT_CLAIM_MAX_APPENDABLE_SIZE_KEY, contentClaimMaxAppendableSize);
         result.put(CONTENT_CLAIM_MAX_FLOW_FILES_KEY, contentClaimMaxFlowFiles);
+        result.put(CONTENT_REPO_ARCHIVE_ENABLED_KEY, contentRepoArchiveEnabled);
+        result.put(CONTENT_REPO_ARCHIVE_MAX_RETENTION_PERIOD_KEY, contentRepoArchiveMaxRetentionPeriod);
+        result.put(CONTENT_REPO_ARCHIVE_MAX_USAGE_PERCENTAGE_KEY, contentRepoArchiveMaxUsagePercentage);
         result.put(ALWAYS_SYNC_KEY, alwaysSync);
         return result;
     }
@@ -68,6 +87,18 @@
         return contentClaimMaxFlowFiles;
     }
 
+    public Boolean getContentRepoArchiveEnabled() {
+        return contentRepoArchiveEnabled;
+    }
+
+    public String getContentRepoArchiveMaxRetentionPeriod() {
+        return contentRepoArchiveMaxRetentionPeriod;
+    }
+
+    public String getContentRepoArchiveMaxUsagePercentage() {
+        return contentRepoArchiveMaxUsagePercentage;
+    }
+
     public boolean getAlwaysSync() {
         return alwaysSync;
     }
diff --git a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceRepositorySchema.java b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceRepositorySchema.java
index ef1b0fa..e34d62e 100644
--- a/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceRepositorySchema.java
+++ b/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/ProvenanceRepositorySchema.java
@@ -27,13 +27,26 @@
 public class ProvenanceRepositorySchema extends BaseSchema implements WritableSchema {
 
     public static final String PROVENANCE_REPO_ROLLOVER_TIME_KEY = "provenance rollover time";
+    public static final String PROVENANCE_REPO_INDEX_SHARD_SIZE = "provenance index shard size";
+    public static final String PROVENANCE_REPO_MAX_STORAGE_SIZE = "provenance max storage size";
+    public static final String PROVENANCE_REPO_MAX_STORAGE_TIME = "provenance max storage time";
     public static final String DEFAULT_PROVENANCE_ROLLOVER_TIME = "1 min";
-
     public static final String PROVENANCE_REPOSITORY_KEY = "implementation";
     public static final String DEFAULT_PROVENANCE_REPOSITORY = "org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository";
+    public static final String DEFAULT_PROVENANCE_REPO_INDEX_SHARD_SIZE = "500 MB";
+    public static final String DEFAULT_PROVENANCE_REPO_MAX_STORAGE_SIZE = "1 GB";
+    public static final String DEFAULT_PROVENANCE_REPO_MAX_STORAGE_TIME = "24 hours";
+
+    // Volatile repo properties
+    public static final String PROVENANCE_REPO_BUFFER_SIZE = "provenance buffer size";
+    public static final Integer DEFAULT_PROVENANCE_REPO_BUFFER_SIZE = 10000;
 
     private String provenanceRepoRolloverTime = DEFAULT_PROVENANCE_ROLLOVER_TIME;
     private String provenanceRepository = DEFAULT_PROVENANCE_REPOSITORY;
+    private String provenanceRepoIndexShardSize = DEFAULT_PROVENANCE_REPO_INDEX_SHARD_SIZE;
+    private String provenanceRepoMaxStorageSize = DEFAULT_PROVENANCE_REPO_MAX_STORAGE_SIZE;
+    private String provenanceRepoMaxStorageTime = DEFAULT_PROVENANCE_REPO_MAX_STORAGE_TIME;
+    private Integer provenanceRepoBufferSize = DEFAULT_PROVENANCE_REPO_BUFFER_SIZE;
 
     public ProvenanceRepositorySchema(){
     }
@@ -43,6 +56,14 @@
                 PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_ROLLOVER_TIME);
         provenanceRepository = getOptionalKeyAsType(map, PROVENANCE_REPOSITORY_KEY, String.class,
                 PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_REPOSITORY);
+        provenanceRepoIndexShardSize = getOptionalKeyAsType(map, PROVENANCE_REPO_INDEX_SHARD_SIZE, String.class,
+                PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_REPO_INDEX_SHARD_SIZE);
+        provenanceRepoMaxStorageSize = getOptionalKeyAsType(map, PROVENANCE_REPO_MAX_STORAGE_SIZE, String.class,
+                PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_REPO_MAX_STORAGE_SIZE);
+        provenanceRepoMaxStorageTime = getOptionalKeyAsType(map, PROVENANCE_REPO_MAX_STORAGE_TIME, String.class,
+                PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_REPO_MAX_STORAGE_TIME);
+        provenanceRepoBufferSize = getOptionalKeyAsType(map, PROVENANCE_REPO_BUFFER_SIZE, Integer.class,
+                PROVENANCE_REPO_KEY, DEFAULT_PROVENANCE_REPO_BUFFER_SIZE);
     }
 
     @Override
@@ -50,6 +71,10 @@
         Map<String, Object> result = mapSupplier.get();
         result.put(PROVENANCE_REPO_ROLLOVER_TIME_KEY, provenanceRepoRolloverTime);
         result.put(PROVENANCE_REPOSITORY_KEY, provenanceRepository);
+        result.put(PROVENANCE_REPO_INDEX_SHARD_SIZE, provenanceRepoIndexShardSize);
+        result.put(PROVENANCE_REPO_MAX_STORAGE_SIZE, provenanceRepoMaxStorageSize);
+        result.put(PROVENANCE_REPO_MAX_STORAGE_TIME, provenanceRepoMaxStorageTime);
+        result.put(PROVENANCE_REPO_BUFFER_SIZE, provenanceRepoBufferSize);
         return result;
     }
 
@@ -60,4 +85,20 @@
     public String getProvenanceRepoRolloverTimeKey() {
         return provenanceRepoRolloverTime;
     }
+
+    public String getProvenanceRepoIndexShardSize() {
+        return provenanceRepoIndexShardSize;
+    }
+
+    public String getProvenanceRepoMaxStorageSize() {
+        return provenanceRepoMaxStorageSize;
+    }
+
+    public String getProvenanceRepoMaxStorageTime() {
+        return provenanceRepoMaxStorageTime;
+    }
+
+    public int getProvenanceRepoBufferSize() {
+        return provenanceRepoBufferSize;
+    }
 }
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/1.5_RPG_Handling.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/1.5_RPG_Handling.yml
index 1bc243e..da5461b 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/1.5_RPG_Handling.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/1.5_RPG_Handling.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
index b3b2772..138cc50 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/CsvToJson.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
index a6ce41e..71e7d03 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/DecompressionCircularFlow.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
index e23027d..43c4e98 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/InvokeHttpMiNiFiTemplateTest.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
index 366846e..c0ae407 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
@@ -37,9 +37,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
index 75706cc..2f5cbbe 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleRelationships.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleUriRPG.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleUriRPG.yml
index f2cfeeb..9af9237 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleUriRPG.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MultipleUriRPG.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
index ee39f51..3a8ea92 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NestedControllerServices.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NoTemplateEncodingVersion.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NoTemplateEncodingVersion.yml
index aa3ee7c..35cf9ac 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NoTemplateEncodingVersion.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/NoTemplateEncodingVersion.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
index ef90687..4c8a3f5 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ProcessGroupsAndRemoteProcessGroups.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
index 6026f0a..b48c6e7 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/ReplaceTextExpressionLanguageCSVReformatting.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleRPGToLogAttributes.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleRPGToLogAttributes.yml
index b43fcdc..c5c4f9f 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleRPGToLogAttributes.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleRPGToLogAttributes.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml
index aa3ee7c..35cf9ac 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/SimpleTailFileToRPG.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
index 0f7ea7e..16e57c1 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFramework.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
index 9ba99b5..286671d 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/StressTestFrameworkFunnel.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/VersionedFlowSnapshot-Simple.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/VersionedFlowSnapshot-Simple.yml
index 28ed652..d4986dd 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/VersionedFlowSnapshot-Simple.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/VersionedFlowSnapshot-Simple.yml
@@ -38,9 +38,16 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
   implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
index 8886205..4db9b13 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/config.yml
@@ -37,8 +37,15 @@
   content claim max appendable size: 10 MB
   content claim max flow files: 100
   always sync: false
+  content repository archive max retention period: 12 hours
+  content repository archive max usage percentage: 50%
+  content repository archive enabled: false
 Provenance Repository:
   provenance rollover time: 1 min
+  provenance max storage time: 24 hours
+  provenance max storage size: 1 GB
+  provenance index shard size: 500 MB
+  provenance buffer size: 10000
 Component Status Repository:
   buffer size: 1440
   snapshot frequency: 1 min