Default include file
Below is the include file that OrgFlow suggests as the default when initializing a new stack.
txt
# This is an include file used by OrgFlow. Edit this file to control which metadata types and components
# are included in the flow of changes between Salesforce and the Git repository, and between the different
# environments in your stack.
# Please refer to https://www.orgflow.io/goto/include-specs for details.
# Development:
unpackaged/~/ApexClass
unpackaged/~/ApexComponent
unpackaged/~/ApexPage
unpackaged/~/ApexTestSuite
unpackaged/~/ApexTrigger
unpackaged/~/AuraDefinitionBundle
unpackaged/~/LightningComponentBundle
unpackaged/~/Scontrol
unpackaged/~/StaticResource
# Objects and their nested types:
unpackaged/~/CustomObject
unpackaged/~/BusinessProcess
unpackaged/~/CompactLayout
unpackaged/~/CustomField
unpackaged/~/FieldSet
unpackaged/~/Index
unpackaged/~/ListView
unpackaged/~/RecordType
unpackaged/~/SharingReason
unpackaged/~/ValidationRule
unpackaged/~/WebLink
# Object customization:
unpackaged/~/Layout
unpackaged/~/QuickAction
# Workflows and their nested types:
unpackaged/~/Workflow
unpackaged/~/WorkflowAlert
unpackaged/~/WorkflowFieldUpdate
unpackaged/~/WorkflowFlowAction
unpackaged/~/WorkflowKnowledgePublish
unpackaged/~/WorkflowOutboundMessage
unpackaged/~/WorkflowRule
unpackaged/~/WorkflowTask
# NOTE:
# It can be necessary to include a subset of ContentAsset metadata in the flow because ContentAsset items
# are often referenced by other metadata such as CustomApplication and CustomTab.
# Because all ContentAsset items in a production org can amount to storage space much larger than what a
# normal Developer sandbox allows, Salesforce omits ContentAsset metadata from the sandbox copy process
# and automatically removes references to them from other metadata.
# For the same reason, this file does not include ContentAsset metadata by default.
# When preparing a new sandbox environment, OrgFlow attempts to reinitialize the newly created sandbox and
# revert the mutations done by Salesforce during the copy process in order to establish a starting point with
# parity between production and the new environment and between the environment's branch and the sandbox.
# If all ContentAsset items were included, this reinitialization might fail because the attempted deployment
# would exceed the sandbox storage limits.
# On the other hand, if referenced ContentAsset items are not included in the flow, but other metadata that
# reference them is, the reinitialization may only partially succeed, but fail to archive initial parity for any
# components that reference ContentAsset items.
# For that reason, we recommend that that you standardize on a naming pattern for ContentAsset items that
# allows you to easily identify and include only those ContentAsset items that are referenced by other metadata
# in the flow, while excluding other ContentAsset metadata that would risk exceeding the Developer sandbox
# storage limits.
# For example, you might prefix such ContentAsset items with "FLOW_" and always name them accordingly.
# You could then uncomment the following line to include those content assets in the flow:
# unpackaged/~/ContentAsset/FLOW_*
# General customization:
unpackaged/~/CustomApplication
unpackaged/~/CustomApplicationComponent
unpackaged/~/CustomFeedFilter
unpackaged/~/CustomIndex
unpackaged/~/CustomLabel
unpackaged/~/CustomLabels
unpackaged/~/CustomMetadata
unpackaged/~/CustomNotificationType
unpackaged/~/CustomPageWebLink
unpackaged/~/CustomPermission
unpackaged/~/CustomSite
# Translations and value sets:
unpackaged/~/CustomObjectTranslation
unpackaged/~/GlobalValueSet
unpackaged/~/GlobalValueSetTranslation
unpackaged/~/StandardValueSet
unpackaged/~/StandardValueSetTranslation
unpackaged/~/Translations
# Process customization:
unpackaged/~/ApprovalProcess
unpackaged/~/EntitlementProcess
unpackaged/~/EntitlementTemplate
unpackaged/~/Flow
unpackaged/~/FlowCategory
unpackaged/~/FlowTest
# UI and navigation customization:
unpackaged/~/CustomHelpMenuSection
unpackaged/~/CustomTab
unpackaged/~/FlexiPage
unpackaged/~/HomePageComponent
unpackaged/~/HomePageLayout
unpackaged/~/NavigationMenu
unpackaged/~/Prompt
# Rules:
unpackaged/~/AnimationRule
unpackaged/~/AssignmentRule
unpackaged/~/AssignmentRules
unpackaged/~/AutoResponseRule
unpackaged/~/AutoResponseRules
unpackaged/~/DuplicateRule
unpackaged/~/EscalationRule
unpackaged/~/EscalationRules
unpackaged/~/KeywordList
unpackaged/~/MatchingRule
unpackaged/~/MatchingRules
unpackaged/~/ModerationRule
unpackaged/~/RestrictionRule
unpackaged/~/SchedulingRule
unpackaged/~/SharingRules
unpackaged/~/SharingCriteriaRule
unpackaged/~/SharingGuestRule
unpackaged/~/SharingOwnerRule
unpackaged/~/Territory2
unpackaged/~/Territory2Model
unpackaged/~/Territory2Rule
unpackaged/~/Territory2Type
# Permission sets:
unpackaged/~/PermissionSet
unpackaged/~/PermissionSetGroup
# Some notes about the standard object exclusions below:
# Both the objects themselves and any other components specific to those objects need to be excluded
# The first syntax '!unpackaged/~/*/SomeStandardObject' matches any component with the exact name of the object. This covers the object itself and other components that share the exact object name, for example sharing rules.
# The second syntax '!unpackaged/~/*/SomeStandardObject[.-]*' matches any component whose name begins with the exact name of the object, followed by either '.' or '-' as a delimiter, followed by any string. The '.' delimiter covers any nested components (such as fields) and the '-' delimiter covers any related components such as layouts and object translations.
# It would be more precise to include all the above things more explicitly (without using a wildcard '*') for the type segment, but it would be significantly more verbose require more maintenance. In practice, metadata naming rules more or less guarantee that these patterns don't match any unrelated metadata.
# NOTE: These exclusions should be continuously reviewed against the Salesforce Object Reference at https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_custom_objects_list.htm
# Exclude standard objects that are only applicable to a DevHub org:
!unpackaged/~/*/ActiveScratchOrg
!unpackaged/~/*/ActiveScratchOrg[.-]*
!unpackaged/~/*/NamespaceRegistry
!unpackaged/~/*/NamespaceRegistry[.-]*
!unpackaged/~/*/ScratchOrgInfo
!unpackaged/~/*/ScratchOrgInfo[.-]*
# Exclude learning paths related standard objects because MDAPI does not seem to reliably retrieve them.
# NOTE: This excludes any components (standard or custom) starting with the word "Learning". If you have
# unrelated custom metadata that matches this pattern that you need to include in the flow, add rules below
# to re-include those components.
!unpackaged/~/*/Learning*
!unpackaged/~/*/Learning*[.-]*
# Exclude some standard objects known to usually be missing from newly created sandboxes:
!unpackaged/~/*/DataKitDeploymentLog
!unpackaged/~/*/DataKitDeploymentLog[.-]*
!unpackaged/~/*/Macro
!unpackaged/~/*/Macro[.-]*
!unpackaged/~/*/OrgMetric
!unpackaged/~/*/OrgMetric[.-]*
!unpackaged/~/*/OrgMetricScanResult
!unpackaged/~/*/OrgMetricScanResult[.-]*
!unpackaged/~/*/OrgMetricScanSummary
!unpackaged/~/*/OrgMetricScanSummary[.-]*
# SendEmail quick actions requires "all email" deliverability to be enabled in the target org
# which is not the case for newly created sandboxes:
!unpackaged/~/QuickAction/SendEmail
!unpackaged/~/QuickAction/*.SendEmail