Starting on adding feature support for content distribution
diff --git a/feature/src/main/features/distribution.json b/feature/src/main/features/distribution.json
index 0de723a..52d467f 100644
--- a/feature/src/main/features/distribution.json
+++ b/feature/src/main/features/distribution.json
@@ -1,14 +1,79 @@
-
 {
-    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:distribution:${cms.version}",
-    "bundles":[
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:distribution:${cms.version}",
+    "bundles": [
         {
-            "id":"org.apache.sling:org.apache.sling.distribution.api:0.4.0",
-            "start-order":"20"
+            "id": "org.apache.sling:org.apache.sling.distribution.api:0.4.0",
+            "start-order": "20"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.distribution.core:0.4.2",
-            "start-order":"20"
+            "id": "org.apache.sling:org.apache.sling.distribution.core:0.4.2",
+            "start-order": "20"
         }
+    ],
+    "configurations": {
+        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~agent": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/agents",
+            "kind": "agent"
+        },
+        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~exporter": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/exporters",
+            "kind": "exporter"
+        },
+        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~importer": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/importers",
+            "kind": "importer"
+        },
+        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~agent": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/agents",
+            "kind": "agent"
+        },
+        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~exporter": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/exporter",
+            "kind": "exporter"
+        },
+        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~importer": {
+            "provider.roots": "/libs/sling-cms/content/distribution/services/importer",
+            "kind": "importer"
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~distribution": {
+            "user.mapping": [
+                "org.apache.sling.distribution.core=sling-package-install"
+            ]
+        },
+        "org.apache.sling.distribution.agent.impl.PrivilegeDistributionRequestAuthorizationStrategyFactory~default": {
+            "name": "default",
+            "jcrPrivilege": "sling:publish"
+        },
+        "org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default": {
+            "fileThreshold": 1,
+            "cleanupDelay": 60,
+            "autoSaveThreshold": -1,
+            "package.roots": "",
+            "type": "jcrvlt",
+            "MEGA_BYTES": "MEGA_BYTES",
+            "property.filters": [
+                ""
+            ],
+            "pathsMapping": [
+                ""
+            ],
+            "strictImport": true,
+            "aclHandling": "IGNORE",
+            "importMode": "",
+            "digestAlgorithm": "MD5",
+            "tempFsFolder": "",
+            "monitoringQueueSize": 0,
+            "useOffHeapMemory": false,
+            "cugHandling": "",
+            "useBinaryReferences": false,
+            "package.filters": [
+                "/home/users|-.*/.tokens",
+                "/home/users|-.*/.rep:cache"
+            ],
+            "name": "default"
+        }
+    },
+    "repoinit:TEXT|true": [
+        "register privilege sling:publish"
     ]
 }
\ No newline at end of file
diff --git a/feature/src/main/features/runmode-author/runmode-author.json b/feature/src/main/features/runmode-author/runmode-author.json
new file mode 100644
index 0000000..31bb8f6
--- /dev/null
+++ b/feature/src/main/features/runmode-author/runmode-author.json
@@ -0,0 +1,40 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:runmode-author:${cms.version}",
+    "configurations": {
+        "org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl": {
+            "publicationMode": "CONTENT_DISTRIBUTION",
+            "agents": []
+        },
+        "org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory~default": {
+            "packageBuilder.target": "(name=default)",
+            "name": "default"
+        },
+        "org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default": {
+            "fileThreshold": 1,
+            "cleanupDelay": 60,
+            "autoSaveThreshold": -1,
+            "package.roots": "",
+            "type": "jcrvlt",
+            "MEGA_BYTES": "MEGA_BYTES",
+            "property.filters": [
+                ""
+            ],
+            "pathsMapping": [
+                ""
+            ],
+            "strictImport": true,
+            "aclHandling": "",
+            "importMode": "REPLACE",
+            "digestAlgorithm": "NONE",
+            "tempFsFolder": "",
+            "monitoringQueueSize": 0,
+            "useOffHeapMemory": false,
+            "cugHandling": "",
+            "useBinaryReferences": false,
+            "package.filters": [
+                ""
+            ],
+            "name": "default"
+        }
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/runmode-renderer/runmode-renderer.json b/feature/src/main/features/runmode-renderer/runmode-renderer.json
new file mode 100644
index 0000000..ac2bcd0
--- /dev/null
+++ b/feature/src/main/features/runmode-renderer/runmode-renderer.json
@@ -0,0 +1,13 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:runmode-author:${cms.version}",
+    "configurations": {
+        "org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl": {
+            "publicationMode": "CONTENT_DISTRIBUTION",
+            "agents": []
+        },
+        "org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory~default": {
+            "packageBuilder.target": "(name=default)",
+            "name": "default"
+        }
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/runmode-standalone/runmode-standalone.json b/feature/src/main/features/runmode-standalone/runmode-standalone.json
new file mode 100644
index 0000000..0b3834b
--- /dev/null
+++ b/feature/src/main/features/runmode-standalone/runmode-standalone.json
@@ -0,0 +1,17 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:runmode-standalone:${cms.version}",
+    "configurations": {
+        "org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl": {
+            "publicationMode": "STANDALONE",
+            "agents": []
+        },
+        "org.apache.sling.cms.core.internal.filters.CMSSecurityConfigInstance": {
+            "hostDomains": [],
+            "allowedPatterns": [
+                "^\/content\/starter/.*$",
+                "^\/static/.*$",
+                "^\/system\/sling\/form\/login$"
+            ]
+        }
+    }
+}
\ No newline at end of file