Manifest File
In Salesforce DX, the package.xml file that lists which metadata components to retrieve from or deploy to a Salesforce org, specifying component types and their members for migration operations.
Definition
In Salesforce DX, the package.xml file that lists which metadata components to retrieve from or deploy to a Salesforce org, specifying component types and their members for migration operations.
In plain English
“In Salesforce DX, a Manifest File is the package.xml file that lists which metadata components you want to retrieve from or deploy to a Salesforce org. It specifies what types of components and which specific ones, like 'all custom objects' or 'these particular Apex classes'.”
Worked example
When the release engineer at Skyhaven Software deploys metadata from sandbox to production via Salesforce DX, she writes a Manifest File (package.xml) listing exactly which components to include: <types><members>*</members><name>ApexClass</name></types> for all Apex classes, <types><members>Account-LayoutA, Order-LayoutB</members><name>Layout</name></types> for two specific layouts. The CLI command sf project deploy start --manifest package.xml processes the Manifest File and deploys only the listed components. The Manifest File is the deploy's declarative scope - without it, deploys would either include everything (slow, risky) or require ad-hoc component-by-component specification.
Why Manifest File matters
In Salesforce DX (and the older Force.com Migration Tool), a Manifest File is the package.xml file that lists which metadata components to retrieve from or deploy to a Salesforce org. It specifies component types (CustomObject, ApexClass, Layout, etc.) and their members (specific names or wildcards like '*' for all). The manifest is used by deployment tools to know exactly what to move between orgs or between local source and an org.
Manifest files are how source-driven Salesforce development handles the metadata API. Tools like the Salesforce CLI and the Salesforce Extensions for VS Code can use manifest files to specify deployments. For source-tracked workflows with Scratch Orgs, manifest files matter less because source tracking handles which files need pushing. For non-source-tracked deployments and for working with managed metadata, manifest files remain essential for specifying exactly what should move.
How organizations use Manifest File
Uses manifest files for deployments to non-source-tracked sandboxes, specifying exactly which metadata to push.
Generates manifest files programmatically as part of their CI/CD pipeline for deployments to client orgs.
Maintains hand-crafted manifest files for specific deployment scenarios where source tracking isn't sufficient.
Trust & references
Straight from the source - Salesforce's reference material on Manifest File.
- Salesforce DX Developer GuideSalesforce Developers
Test your knowledge
Q1. What is a Manifest File in Salesforce DX?
Q2. When are manifest files necessary?
Q3. What's the file format?
Discussion
Loading discussion…