Configuration file definition for sfdx-hardis Salesforce DX plugin
No Additional PropertiesTypes of orgs allowed for config & development. If not set, sandbox and scratch are allowed by default
[
"sandbox"
]
When saving a sfdx-hardis task, the list of cleanings will be automatically applied to sfdx sources
[
"dashboards",
"datadotcom",
"destructivechanges"
]
When saving a sfdx-hardis task, these permissions will be removed from profiles
[
"EnableCommunityAppLauncher",
"FieldServiceAccess",
"OmnichannelInventorySync"
]
When calling hardis:scratch:pull, if you define metadatas (named or not), they will also be retrieved using force:source:retrieve
[
"CustomApplication"
]
[
"CustomApplication:MyApp1",
"CustomApplication:MyApp2"
]
Minimum percentage of apex code coverage accepted
80.0
95.0
When calling hardis:work:new, you can override the default branch prefixes. Input title, value and description for each of them
[
{
"title": "Feature",
"value": "feat",
"description": "New feature, evolution of an existing feature... If you don't know, just select Feature"
},
{
"title": "Debug",
"value": "fix",
"description": "A bug has been identified and you are the right person to solve it !"
}
]
List of patterns to automatically clean XML files
Clean XML pattern and xpaths
No Additional PropertiesGlob pattern to identify XML files to clean
"/**/*.flexipage-meta.xml"
XPaths to identify elements to remove
[
"//ns:flexiPageRegions//ns:name[contains(text(),'dashboardName')]"
]
[
{
"globPattern": "/**/*.flexipage-meta.xml",
"xpaths": [
"//ns:flexiPageRegions//ns:name[contains(text(),'dashboardName')]"
]
},
{
"globPattern": "/**/*.layout-meta.xml",
"xpaths": [
"//ns:relatedLists//ns:relatedList[contains(text(),'RelatedSolutionList')]"
]
}
]
List of custom commands for VsCode SFDX-Hardis extension
Custom command definition
No Additional PropertiesIdentifier of the menu (can be any string)
Label of the menu
List of commands of the menu
Custom command definition
No Additional PropertiesIdentifier of the command (can be any string)
Label of the command that will appear in menu
Icon (can be any of svg icons of this list: https://github.com/hardisgroupcom/vscode-sfdx-hardis/tree/master/resources
Text that will appear when user will hover the command
Command line to run when clicking on the menu
URL for help page of the command
[
{
"id": "custom-menu",
"label": "Custom commands",
"commands": [
{
"id": "generate-manifest-xml",
"label": "Generate manifest",
"icon": "file.svg",
"tooltip": "Generates a manifest package.xml using local sfdx source files",
"command": "sfdx force:source:manifest:create --sourcepath force-app --manifestname myNewManifest"
},
{
"id": "list-all-orgs",
"label": "List all orgs",
"icon": "salesforce.svg",
"tooltip": "List all orgs that has already been authenticated using sfdx",
"command": "sfdx force:org:list --all"
}
]
},
{
"id": "custom-menu-2",
"label": "Another custom menu",
"commands": [
{
"id": "echo",
"label": "Echo something",
"icon": "user.svg",
"tooltip": "Useless commands just to show that we can use not sfdx commands too",
"command": "echo \"Something\""
}
]
}
]
Position of custom commands in the menu (first or last)
"first"
"last"
Custom colors set by VsCode SFDX Hardis
Additional Properties of any type are allowed.
Type: objectList of additional plugins that will be displayed in VsCode SFDX-Hardis Dependencies panel
Plugin definition
No Additional PropertiesName of the plugin npm package
"mo-dx-plugin"
"shane-sfdx-plugins"
Url of plugin documentation
"https://github.com/msrivastav13/mo-dx-plugin"
"https://github.com/mshanemc/shane-sfdx-plugins"
[
{
"name": "mo-dx-plugin",
"helpUrl": "https://github.com/msrivastav13/mo-dx-plugin"
},
{
"name": "shane-sfdx-plugins",
"helpUrl": "https://github.com/mshanemc/shane-sfdx-plugins"
}
]
List of data packages
Data package
No Additional PropertiesPath to SFDMU project
Path to SFDMU project
When generating a new package version protected with password, use this value as default package installation key
"hardis"
"myPassword"
"dFGGF43656YfdFDG{{{dhgfh:::;FSEDSFd78"
When creating a new sfdx-hardis task, this git branch is used as base to create the feature/debug sub branch. The merge request will later have this branch as target.
"developpement"
"dev_lot2"
"hotfixes"
Deployment plan that will be performed during deployments. Can be based on packageXmlFile for sources or on dataPath for sfdmu data deployments
{
"packages": [
{
"label": "Import EmailTemplate records",
"dataPath": "scripts/data/EmailTemplate",
"order": -21
},
{
"label": "Deploy EmailTemplate",
"packageXmlFile": "manifest/splits/packageXmlEmails.xml",
"order": -20
},
{
"label": "Deploy Flow-Workflow",
"packageXmlFile": "manifest/splits/packageXmlFlowWorkflow.xml",
"order": 6
}
]
}
During deployment, main package.xml will be split into these packages. Can also contain data packages
Source or data package to deploy
No Additional Properties"scripts/data/EmailTemplate"
"Deploy EmailTemplate"
"Import EmailTemplate records"
-20
13
50
"manifest/splits/packageXmlEmails.xml"
Delay to wait before installing the next package
10
20
[
{
"label": "Import EmailTemplate records",
"dataPath": "scripts/data/EmailTemplate",
"order": -21
},
{
"label": "Deploy EmailTemplate",
"packageXmlFile": "manifest/splits/packageXmlEmails.xml",
"order": -20
}
]
Dev Hub alias, usually DevHub_ProjectName
"DevHub_MyClientMyProject"
"DevHub_GoogleGmail"
"DevHub_AppleIWatch"
Dev Hub username, used to authenticate to DevHub from CI jobs
"cicd-user@myclient.com"
"scratch-user@google.fr"
"scratch-user@apple.fr"
You can base your local sfdx-hardis configuration on a remote config file. That allows you to have the same config base for all your projects
"https://raw.githubusercontent.com/worldcompany/shared-config/main/.sfdx-hardis.yml"
When creating a scratch org, Admin user will be automatically assigned to those permission sets
Permission Set or Permission Set Group
No Additional PropertiesPermission Set or Permission Set Group name
[
"MyPermissionSet",
"MyPermissionSetGroup",
"MyPermissionSetGroup2"
]
[
"MyPermissionSet",
"MyPermissionSetGroup"
]
Defines the list of packages installed on the project. Use
Salesforce package info (managed, unlocked or unmanaged)
No Additional Properties"0A35r000000GveVCAS"
"033b0000000Pf2AAAS"
"Files Attachment Notes"
"fan_astrea"
"04t0o000003nRWAAA2"
"Summer2021"
"1.22.0.2"
If true, during deployments this package will be installed in target org if not installed yet
true
false
If true, this package will be installed when creating a new scratch org with sfdx-hardis
true
false
Installation key for key-protected package
"MyInstallationKey"
"4FzkMzUSwFfP#@"
[
{
"Id": "0A30N000000ALWrSAO",
"SubscriberPackageId": "033b0000000Pf2AAAS",
"SubscriberPackageName": "Declarative Lookup Rollup Summaries Tool",
"SubscriberPackageNamespace": "dlrs",
"SubscriberPackageVersionId": "04t0N000000IyYrQAK",
"SubscriberPackageVersionName": "2.11",
"SubscriberPackageVersionNumber": "2.11.0.1",
"installOnScratchOrgs": false,
"installDuringDeployments": true,
"installationkey": "MyInstallationKey"
},
{
"Id": "0A35r000000GveVCAS",
"SubscriberPackageId": "0330o000000B3vIAAS",
"SubscriberPackageName": "Files Attachment Notes",
"SubscriberPackageNamespace": "fan_astrea",
"SubscriberPackageVersionId": "04t0o000003nRWAAA2",
"SubscriberPackageVersionName": "Summer2021",
"SubscriberPackageVersionNumber": "1.22.0.2",
"installOnScratchOrgs": true,
"installDuringDeployments": true
}
]
When calling deployment check command, installs any package referred within installedPackages property
true
Salesforce instance URL used by CI for deployment or backups
"https://myclient.force.com"
"https://google.force.com"
"https://apple.force.com"
List of ListView items to set to Mine after a delivery (that does not accept value 'Everything')
List of metadata to retrieve for retrofit job
[
"CustomField",
"Layout",
"PermissionSet"
]
List of monitoring commands to run with command hardis:org:monitor:all
Monitoring command
No Additional PropertiesUnique identifier of the monitoring command. Can be used with monitoringDisable
Title of the command (will appear in logs)
Bash command to run
daily or weekly
[
{
"title": "Detect calls to deprecated API versions",
"key": "LEGACYAPI",
"command": "sfdx hardis:org:diagnose:legacyapi",
"frequency": "weekly"
},
{
"title": "My custom command",
"key": "MY_CUSTOM_KEY",
"command": "sfdx my:custom:command",
"frequency": "daily"
}
]
Override list of Setup Audit Trail elements that won't be considered as suspect by monitoring tools
Additional Properties of any type are allowed.
Type: objectList of commands to skip during monitoring jobs
[
"METADATA_STATUS",
"UNUSED_METADATAS"
]
List of usernames to exclude while running monitoring commands
[
"deploymentuser@cloudity.com",
"mc-cloud-user@cloudity.com"
]
Url of the Ms Teams channel Web Hook that can be used to send ALL notifications
"https://my.msteams.webhook.url"
Url of the Ms Teams channel Web Hook that can be used to send CRITICAL notifications
"https://my.msteams.webhook.url"
Url of the Ms Teams channel Web Hook that can be used to send SEVERE notifications
"https://my.msteams.webhook.url"
Url of the Ms Teams channel Web Hook that can be used to send WARNING notifications
"https://my.msteams.webhook.url"
Url of the Ms Teams channel Web Hook that can be used to send INFO notifications
"https://my.msteams.webhook.url"
List of notifications types to skip sending
[
"METADATA_STATUS",
"UNUSED_METADATAS"
]
Configuration allowing to generate and fetch scratch orgs from scratch org pool
{
"maxScratchOrgsNumber": 10,
"storageService": "kvdb.io"
}
When pool scratch org is less than this number, it is deleted and another one is created
Maximum number of active scratch orgs in the scratch org pool
Maximum number of scratch orgs to create in one CI job
Remote service allowing to store scratch org pool details
Name of the git branch corresponding to production environment
"master"
"main"
"production"
Identifier for the project (can be the client and project)
"MyClientMyProject"
"GoogleGmail"
"AppleIWatch"
Name of the git branch where retrofit merge requests targets to
"preprod"
"dev"
"maintenance"
When calling hardis:org:retrieve:sources:retrofit, list of files to ignore (discard just after retrieve)
[
"force-app/main/default/applications/MyAppIWantToManageInProduction.app-meta.xml",
"force-app/main/default/flexipages/MyFlexipageWithDashboards.flexipage-meta.xml"
]
Apex scripts to call after scratch org initialization
[
"scripts/apex/init-scratch.apex",
"scripts/apex/init-custom-settings.apex"
]
Defines the lifespan of the scratch org in number of days, from 1 to 30
Value must be greater or equal to 1
and lesser or equal to 30
Instance host name to allow SFDMU to deploy data in a production org
"myproject.force.com"
Defines if sfdx-hardis will propose to upgrade local .forceignore file
Defines if sfdx-hardis will propose to upgrade local .gitignore file
Salesforce username used by CI for deployment or backups
"deployments@myclient.com"
"deployments@google.fr"
"deployments@apple.com"
Defines if sfdx-hardis will deploy in delta from minor to major branches
Ignore profiles or permission sets
"Profile"
"Profile:ProfileA"
"PermissionSet"
"PermissionSet:PermissionSetA, Profile:ProfileA"