The structure of an SCCPL transformation

Version:

A Sitecore Cargo Payload (SCCPL) package is the extension of a ZIP package with the following structure:

CommandDescription
CopyToWebsite/*Copies files to the Website folder in the target installation. You can use this to deploy new files or overwrite existing files, such as resource files, DLLs, and configuration files.
CopyToRoot/*Copies files to the root of the Web Deployment Package (WDP). You usually use this, for example, to inject .dacpac or .sql files to perform database changes.
Xdts/*XDT transformations for XML files are under the Website root. Use XDT transformations to tweak configuration files that the WDP deploys without adding new configuration files. The file name convention is: {original file name}.xdt.
Note

SCCPL transformations use the 

XDT syntax to transform XML files, not the Sitecore configuration patch syntax.
IOActions/*.ioxmlAn XML file that describes the actions that are going to happen to the files in a WDP package. See the example in the following IO Actions section.

The structure of a SCCPL package

The following example shows the structure of a SCCPL package.

PackageDescription
CopyToWebsite\App_Config\Include\Component.configConfiguration file for a new component, integration into Sitecore.
CopyToWebsite\bin\Component.dllDLL file for the component.
CopyToWebsite/sitecore/shell/client/Applications/Component/page.cshtmlResource file - MVC page view.
Xdts\App_Config\ConnectionStrings.config.xdtXDT transformation: adding connection string for the new component.
IOActions\Component.ioxmlEnable/disable configuration files.

Basic SCCPL packages

You can fine-tune your Sitecore solution to match your needs by using SCCPL packages. There are two different approaches to doing this:

  • Adjust your current SCCPL.

    Note

    If you choose this option, you must branch and merge on updates.

  • Create a new SCCPL based on your current SCCPL in the Cargo folder, (the Cargo folder includes SCCPLs). Then, include the relevant SKU file, (in $SKU.packaging.config.json, you can learn how to process a SCCPL).

    The following table outlines the basic Sitecore SCCPL packages:

    PackageDescription
    Sitecore.Cloud.Search.Azure.sccplTransforms the web.config file using the Azure Cognitive Search provider. It is also a patch to add the ConnectionStrings.config file to the cloud.search connection string.
    Sitecore.Cloud.ApplicationInsights.sccplCopies the Application Insights configuration files to both the*/base and the App_Config/Sitecore/Azure/* folders, and the assemblies files to the*/bin* folder. The ConnectionStrings.config file also transforms to add the appinsights.instrumentationkey connection and updates the web.config file with the Application Insights configuration.
    Sitecore.Cloud.DisableAnalytics.sccplApplies the current SCCPL for the XM WDPs. This disables the Analytics and XConnect connection strings in the ConnectionStrings.config file and turns off the Xdb.Enabled setting in the Sitecore.Xdb.config file.
    Sitecore.Cloud.DisableExm.sccplApplies the current SCCPL for the XM WDPs. This disables the EXM connection strings in the ConnectionStrings.config file and turns off the EXM.Enabled setting in the Sitecore.EmailExperience.Core.config file.
    Sitecore.Cloud.Common.sccplA common SCCPL for all WDPs. The main actions of this package include:

    • Setting the data folder to D:\home\site\wwwroot\App_Data
    • Preparing a placeholder for a Sitecore license
    • Disabling the Sitecore.Diagnostics.config file
    • Changing the value of the customErrors modesetting to "Off" (customErrors mode="Off")
    Sitecore.Cloud.HttpsRedirection.sccplA common SCCPL for all WDPs. This package transforms the web.config file to apply https redirection.
    Sitecore.Cloud.IPSecurity.sccplUpdates the web.config file with an example of IP filtering to limit access to the CM, Processing, and DDS roles.
    Sitecore.Cloud.Redis_CD.sccplApplies the SCCPL for the CD WDP to the XM and XP topologies, and enables the Redis cache configuration and connection strings.
    Sitecore.Cloud.RoleSpecific_CD.sccplApplies the SCCPL for the CD WDP to the XM and XP topologies.

    The main actions of this package include:

    • Setting the WDProle to ContentDelivery in the web.config file.
    • Setting the correct connection strings list for the CDrole in the connectionstrings.config file.
    Sitecore.Cloud.RoleSpecific_CM.sccplApplies the SCCPL for the CM WDP to the XM and XP topologies.

    The main actions of this package include:

    • Setting the WDProle to ContentManagement in the web.config file.
    • Setting the correct connection strings list for the CMrole in the connectionstrings.config file
    Sitecore.Cloud.RoleSpecific_DDS.sccplApplies the SCCPL for the DDS role to the XP topology.

    The main action of this package is:

    • Setting the WDP role to ContentManagement, DedicatedDispatch in the web.config file.
    Sitecore.Cloud.RoleSpecific_PRC.sccplSets the correct connection strings list for the DDS role and applies the PRC WDP for the XP and xDB topologies.

    The main actions of this package include:

    • Setting the WDP role to Processingin the web.config file.
    • Setting the correct connection strings list for the PRCrole in the connectionstrings.config file.
    Sitecore.Cloud.RoleSpecific_REP.sccplApplies the SCCPL for the CM WDP to the XP and xDB topologies.

    The main actions of this package include:

    • Setting the WDP role to Reportingin the web.config file.
    • Setting the correct connection strings list for the REProle in the connectionstrings.config file.
    Sitecore.Cloud.RoleSpecific_XDBSingle.sccplApplies the SCCPL for the Sitecore Single WDP to the xDB Single topology.

    The main actions of this package include:

    • Setting the WDP role to Processing, Reporting in the web.config file.
    • Setting the correct connection strings list for the Single (PRC+REP) role in the connectionstrings.config file.
    Sitecore.Cloud.RoleSpecific_XMSingle.sccplApplies the SCCPL for the Sitecore Single WDP to the XM Single topology.

    The main actions of this package include:

    • Setting the WDP role to ContentManagementContentDeliveryin the web.config file.
    • Setting the correct connection strings list for the Single (CM+CD) role in the connectionstrings.config file.
    Sitecore.Cloud.RoleSpecific_XPSingle.sccplApplies the SCCPL for Sitecore Single WDP to the XP Single topology.

    The main action of this package is:

    • Setting the correct connection strings list for the Single (CM+CD+PRC+REP) role in the connectionstrings.config file.
    Sitecore.Cloud.Security.sccplCopies database accounts creation scripts to the website root and transforms the web.config file with security rules.
    Sitecore.Cloud.Security_CD.sccplTransforms the web.config file with security rules for the CD role.
    Sitecore.Cloud.SetCompatibilityLevel.sccplCopies the SQL server compatibility level scripts to the website root.
    Sitecore.Cloud.Thundercracker.sccplThe main actions of this package include:

    • Removing the UploadWatcherfolder functionality, (because it is not applicable for Azure).
    • Changing the location of the Media.CacheFolder folder.
    • Changing the PageStateStore and ViewStateStore settings to write to the DB.

IOActions

The IOActions are described in .ioxml files with path and action attributes; the enable, disable, and delete action values; and the following structure:

<IOActions><IOAction path="App_Config\Include\001.Sitecore.Speak.Important.config" action="disable" />…</IOActions>
AttributesDescription
pathThe path to the file that you want to change, relative to the Websitefolder.

The value must be the exact path to a single file, including the expected extension(s). Wildcards are not supported.
actionA file-level action (enable, disable, or delete) that is performed on the file.
IO actionsDescription
enableEnable a configuration file by renaming it from *.config.disabled, or *.config.example, to *.config.
disableDisable a configuration file by renaming it from *.config to *.config.disabled.
deleteDelete the file from the package.
If you have suggestions for improving this article, let us know!