Many Salto users utilize 3rd party installed packages in SFDC.
By default, Salto does not include managed installed packages when you fetch (i.e. packages with namespaces).
This may introduce issues, such as unresolved references due to missing elements.
Whenever you are using installed packages and wish to reflect them in Salto, you need to include the namespace
of the packages in the adapter configuration (e.g. salesforce.nacl
).
All elements of a managed installed package have direct dependency on the InstalledPackage
metadata instance they belong to. This helps to identify misalignments between your SFDC environments. It may also improve deployment experience of such Elements.
Example
Let's consider you are using the Ironclad 3rd party package, which is using the ironclad
namespace.
You will need to update the adapter configuration as follows:
"fetch": {
"preferActiveFlowVersions": true,
"metadata": {
"include": [
{
"metadataType": ".*",
"namespace": "",
"name": ".*"
},
{
"metadataType": ".*",
"namespace": "ironclad",
"name": ".*"
},
],
"exclude": [
...
]
},
"data": {
...
}
},
...
},
...
}
What can happen if you don't?
In case you forgot to include a 3rd party package, or maybe you weren't aware you were using custom objects that are included as part of a 3rd party package, you may experience some of the following issues with Salto.
You can't find elements in your Salto SFDC Production, which exist in your actual SFDC environment, but you can find them in your Salto SFDC Sandbox.
You can't find elements in your Salto SFDC Production, which exist in your actual SFDC environment, but you can find them in your Salto SFDC Sandbox.
Explanation
Explanation
Your Salto SFDC Sandbox environment configuration is set to include a namespace that contains these elements. However, your Salto SFDC Production environment is not configured to do so.
You need to copy the relevant namespace configuration from the working Salto adapter configuration (e.g. Sandbox) into the not working one (e.g. Production), and then run fetch again.
While validating a deployment to another environment, you get an error like this:
While validating a deployment to another environment, you get an error like this:
Failed to validate IronClad_... with error: The field "..._c" for the object "ironcladIronclad_..._c" doesn't exist.
Explanation
Explanation
Salto couldn't deploy a required dependency "..._c"
(the ... will be replaced with some field you can find in SFDC), because this field doesn't exist in the source environment in Salto.
The reason for that is that the field was not fetched, because it belongs in a namespace (typically, the 3rd party package name), and that package was not included.
While searching for a field/component, you can only find it in the Contents tab but not in the Elements tab
While searching for a field/component, you can only find it in the Contents tab but not in the Elements tab
Explanation
Explanation
The field/component is referenced by another component (e.g. a Workflow is referencing a Field), which is fetched in Salto.
However, the referenced field is not fetched, because it belongs in a namespace that is not included, and therefore it doesn't exist in the elements tree.