Configuration

This topic describes the ways in which you can control OrgFlow's various options and settings.

Passthrough arguments

Passthrough arguments are a way to provide advanced configuration options to OrgFlow. They can be provided to every command, even if they might not affect every command (for example, Git specific options would not affect the operation of a command that does not interact with Git).

You can provide a passthrough argument either as an environment variable, or as a command line argument (for example orgflow <command> <passthrough argument>). The following passthrough arguments are available:

Git

Control the way that OrgFlow interacts with Git.

Environment Variable Command Option Description Default Value
ORGFLOW_GIT__EXECUTABLEPATH --c:git:executablePath The location of the Git executable on disk. git
ORGFLOW_GIT__UNKNOWNAUTHORNAME --c:git:unknownAuthorName The name to use in the commit signature for changes where OrgFlow is unable to determine the author (for example, deletes). Unknown Author
ORGFLOW_GIT__UNKNOWNAUTHOREMAIL --c:git:unknownAuthorEmail The email address to use in the commit signature for changes where OrgFlow is unable to determine the author (for example, deletes). unknownauthor@orgflow.io
ORGFLOW_GIT__COMMITTERNAME --c:git:committerName The name to use in the committer's commit signature. OrgFlow
ORGFLOW_GIT__COMMITTEREMAIL --c:git:committerEmail The email address to use in the committer's commit signature. orgflow@orgflow.io
ORGFLOW_GIT__MERGESTRATEGY --c:git:mergeStrategy The merge strategy option passed to Git. recursive
ORGFLOW_GIT__MERGESTRATEGYOPTIONS --c:git:mergeStrategyOptions The merge strategy specific options passed to Git. diff-algorithm=patience

Metadata API

Control the way that OrgFlow interacts with Salesforce's Metadata API.

This includes options to change how many metadata items are included in a single retrieve batch, the composition of retrive batches, and and how many concurrent calls OrgFlow will make to the Metadata API. You may be able to reduce the time that retrieves take by tweaking these values to better suit your org size and compute resources.

Environment Variable Command Option Description Default Value
ORGFLOW_METADATAPI__MAXNUMBERCONCURRENTLISTCALLS --c:metadataapi:maxnumberconcurrentlistcalls The maximum number of concurrent API calls to Salesforce's metadata list API endpoint. 8
ORGFLOW_METADATAPI__MAXNUMBERCONCURRENTRETRIEVEOPERATIONS --c:metadataapi:maxnumberconcurrentretrieveoperations The maximum number of retrieve batches to be concurrently retrieved from Salesforce's metadata retrieve API. 16
ORGFLOW_METADATAPI__MINRETRIEVEBATCHSIZE --c:metadataapi:minretrievebatchsize The minimum number of metadata items that OrgFlow should aim to include in each retrieve batch. 200
ORGFLOW_METADATAPI__MAXRETRIEVEBATCHSIZE --c:metadataapi:maxretrievebatchsize The maximum number of metadata items that OrgFlow should aim to include in each retrieve batch. 1000
ORGFLOW_METADATAPI__MINNUMBERRETRIEVEBATCHES --c:metadataapi:minnumberretrievebatches The minimum number of retrieve batches that OrgFlow should aim to create. This value does not impact the minimum number of metadata items that OrgFlow should aim to include in each retrieve batch, but it can impact the maximum number of metadata items that OrgFlow should aim to include in each retrieve batch. For example, if there aren't enough metadata items to fill each batch, OrgFlow will lower the maximum number of metadata items in each batch in order to try and hit the minimum number of retrieve batches target. However, if there aren't enough metadata items to hit the minimum number of retrieve batches target, then OrgFlow will favor reducing the number of batches that it creates as opposed to lowering the minimum number of metadata items that OrgFlow should aim to include in each retrieve batch. 16
ORGFLOW_METADATAPI__MAXDEPENDENTSBATCHUTILIZATIONPERCENT --c:metadataapi:maxdependentsbatchutilizationpercent Metadata items such as Profiles (which depend on CustomObjects, CustomTabs, and ApexClasses among others) and Translations (which depend on CustomLabels, CustomTabs, and QuickActions among others) can be included in more than one batch because they need to be retrieved in that same batches as their dependencies. This value aims to reduce the duplication of these items between batches by increasing the maximum number of metadata items that OrgFlow should aim to include in each retrieve batch if the number of dependent items is too large compared to their dependencies. For example: if the target retrieve batch size is 1,000 items, a batch contains 600 Profiles, and this value is set to 50%, then OrgFlow will add more items to the retrieve batch to in order to ensure that the retrieve batch is made up of no more than 50% Profiles (i.e. OrgFlow will aim to put 1,200 items in this batch). 50

Metadata Archives

Environment Variable Command Option Description Default Value
ORGFLOW_METADATARCHIVE__DISALLOWCASEONLYRENAMES --c:metadataarchive:disallowcaseonlyrenames Whether or not OrgFlow will allow case-ony renames of metadata files1. true

Notes

1 OrgFlow disallows this by default because case-only renames can confuse Git on a case-insensitive file system. If you encounter this situation (and OrgFlow is configured to disallow it) then OrgFlow will error with a message like Cannot apply archive changes: The file '[...]' has changed in case only (to '[...]]').