The [Configure CMS](🔗) topic describes the syntax used in the description of the configuration elements.

## \<episerver.packaging\>

### \<episerver.packaging\> element attributes
Name | Default value | Description |
[allowPrereleaseVersions](🔗) | false | Indicates whether pre-release package versions can be installed on site. |
[allowUnlisted](🔗) | false | Indicates whether unlisted packages can be installed on site. |
`installationMode ` | UI | Indicates where add-ons are installed. Set to **Code** to manage add-ons from Visual Studio, see also [Installing add-ons](🔗). |
[packageListCacheTime](🔗) | 0.0:5:0 | The length of time that package listings from remote repositories are cached. |
[packagesTemporaryFolder](🔗) |  | Uploaded and cached packages are temporarily stored in this location. If no value is configured the system designated temporary directory is used. |
[protectedPath](🔗) |  | Physical path where protected add-ons should be installed. This value is set to \*Siteroot\\modules\\\_protected\* during installation. |
[protectedVirtualPath](🔗) |  | Virtual path where protected add-ons are installed. During installation this value is set to _~/<EPiServerProtectedPath>/modules_ where _~/<EPiServerProtectedPath>_ is equal to protected virtual root path for Optimizely dashboard and user interface. |
[publicPath](🔗) |  | Physical path where public add-ons should be installed. During installation this value is set to physical path to \_modules_subfolder in the site root directory. |
[publicVirtualPath](🔗) |  | Virtual path where public add-ons are installed. During installation this value is set to \_~/modules_and is equal to virtual root path to public Shell modules. |
[repositoryPath](🔗) |  | Installed packages are stored in this location. During installation this value is set to subpath in site VPP directory, for example _C:\\EPiServer\\VPP\<SiteName>\\ModulesRepository._ |
Note
Virtual path providers should be configured to map virtual paths of public and protected add-ons to corresponding physical paths where public and protected add-ons are installed. By default, additional virtual path provider is registered to map virtual and physical paths for protected add-ons.
## \<packageRepositories\>

### \<add\> element attributes
Name | Default value | Description |
`name ` |  | **_Required_** – A unique name identifying this package repository. |
`url ` |  | **_Required_** – The full URL or path to the package repository. |
`isEnabled ` | true | Enables or disables this repository. |
[apiKey](🔗) |  | If you have a static API key for accessing this repository, it should be set here. |
[filterTag](🔗) |  | If this is set, only packages with this tag set are included in the listing. (This can be used to separate listings based on the same repository url.) |
[requestApiKey](🔗) | false | If you want to request an API key from the repository this option should be enabled. (This is required for the default Optimizely repository.) |
[sendLicense](🔗) | false | Whether your Optimizely license information should be included with the API key request. (This is required for the default Optimizely repository.) |
### Default Optimizely repository
Optimizely central repository feed is added to the `packageRepositories
` collection implicitly by default. You can remove this default repository repository using **clear** statement.