sfdx-hardis
Version:
Swiss-army-knife Toolbox for Salesforce. Allows you to define a complete CD/CD Pipeline. Orchestrate base commands and assist users with interactive wizards
14,847 lines • 557 kB
JSON
{
"commands": {
"hello:world": {
"aliases": [],
"args": {},
"description": "Say hello either to the world or someone you know.",
"examples": [
"Say hello to the world:\n<%= config.bin %> <%= command.id %>",
"Say hello to someone you know:\n<%= config.bin %> <%= command.id %> --name Astro"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"name": {
"char": "n",
"description": "This person can be anyone in the world!",
"name": "name",
"summary": "The name of the person you'd like to say hello to.",
"default": "World",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hello:world",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"summary": "Say hello.",
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hello",
"world.js"
],
"aliasPermutations": [],
"permutations": [
"hello:world",
"world:hello"
]
},
"hardis:cache:clear": {
"aliases": [],
"args": {},
"description": "Clear cache generated by sfdx-hardis",
"examples": [
"$ sf hardis:cache:clear"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:cache:clear",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clear sfdx-hardis cache",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"cache",
"clear.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:cache:clear",
"cache:hardis:clear",
"cache:clear:hardis",
"hardis:clear:cache",
"clear:hardis:cache",
"clear:cache:hardis"
]
},
"hardis:config:get": {
"aliases": [],
"args": {},
"description": "Returns sfdx-hardis project config for a given level",
"examples": [
"$ sf hardis:project:deploy:sources:metadata"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"level": {
"char": "l",
"description": "project,branch or user",
"name": "level",
"default": "project",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"project",
"branch",
"user"
],
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:config:get",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Deploy metadata sources to org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"config",
"get.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:config:get",
"config:hardis:get",
"config:get:hardis",
"hardis:get:config",
"get:hardis:config",
"get:config:hardis"
]
},
"hardis:auth:login": {
"aliases": [],
"args": {},
"description": "\nLogins to a Salesforce org from CI/CD workflows.\n\nWill use the variables and files defined by configuration commands:\n\n- CI/CD repos: [Configure Org CI Authentication](https://sfdx-hardis.cloudity.com/hardis/project/configure/auth/)\n- Monitoring repos: [Configure Org Monitoring](https://sfdx-hardis.cloudity.com/hardis/org/configure/monitoring/)\n\nIf you have a technical org (for example to call Agentforce from another org, you can define variable SFDX_AUTH_URL_TECHNICAL_ORG and it will authenticate it with alias TECHNICAL_ORG)\n\nYou can get SFDX_AUTH_URL_TECHNICAL_ORG value by running the command: `sf org display --verbose --json` and copy the value of the field `sfdxAuthUrl` in the output.\n",
"examples": [
"$ sf hardis:auth:login",
"CI=true sf hardis:auth:login"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"instanceurl": {
"char": "r",
"description": "URL of org instance",
"name": "instanceurl",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"devhub": {
"char": "h",
"description": "Also connect associated DevHub",
"name": "devhub",
"allowNo": false,
"type": "boolean"
},
"scratchorg": {
"char": "s",
"description": "Scratch org",
"name": "scratchorg",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:auth:login",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Login",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"auth",
"login.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:auth:login",
"auth:hardis:login",
"auth:login:hardis",
"hardis:login:auth",
"login:hardis:auth",
"login:auth:hardis"
]
},
"hardis:doc:fieldusage": {
"aliases": [],
"args": {},
"description": "\n Retrieves custom field usage from metadata dependencies for specified sObjects.\n \n ",
"examples": [
"$ sf hardis:doc:fieldusage",
"$ sf hardis:doc:fieldusage --sObjects Account,Contact,Opportunity",
"$ sf hardis:doc:fieldusage --target-org myOrgAlias --sObjects CustomObject__c"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"sObjects": {
"char": "s",
"description": "Comma-separated list of sObjects to filter",
"name": "sObjects",
"required": false,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:doc:fieldusage",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"fieldusage.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:fieldusage",
"doc:hardis:fieldusage",
"doc:fieldusage:hardis",
"hardis:fieldusage:doc",
"fieldusage:hardis:doc",
"fieldusage:doc:hardis"
]
},
"hardis:doc:flow2markdown": {
"aliases": [],
"args": {},
"description": "Generates a markdown documentation from a Flow file\n \nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow. \n ",
"examples": [
"$ sf hardis:doc:flow2markdown",
"$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml",
"$ sf hardis:doc:flow2markdown --pdf",
"$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml --pdf"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"inputfile": {
"char": "x",
"description": "Path to Flow metadata file. If not specified, the command will prompt the user",
"name": "inputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output markdown file. Must end with .md",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"with-history": {
"description": "Generate a markdown file with the history diff of the Flow",
"name": "with-history",
"allowNo": false,
"type": "boolean"
},
"pdf": {
"description": "Also generate the documentation in PDF format",
"name": "pdf",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:doc:flow2markdown",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Flow to Markdown",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"flow2markdown.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:flow2markdown",
"doc:hardis:flow2markdown",
"doc:flow2markdown:hardis",
"hardis:flow2markdown:doc",
"flow2markdown:hardis:doc",
"flow2markdown:doc:hardis"
]
},
"hardis:doc:mkdocs-to-cf": {
"aliases": [],
"args": {},
"description": "Generates MkDocs HTML pages and upload them to Cloudflare as a static pages\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Cloudflare pages app\n- Assigns a policy restricting access to the application\n- Opens the new WebSite in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n\n\n| Variable | Description | Default |\n| :----------------------------------------- | :---------- | :-----: |\n| `CLOUDFLARE_EMAIL` | Cloudflare account email | <!--- Required --> |\n| `CLOUDFLARE_API_TOKEN` | Cloudflare API token | <!--- Required --> |\n| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account | <!--- Required --> |\n| `CLOUDFLARE_PROJECT_NAME` | Project name, that will also be used for site URL | Built from git branch name |\n| `CLOUDFLARE_DEFAULT_LOGIN_METHOD_TYPE` | Cloudflare default login method type | `onetimepin` |\n| `CLOUDFLARE_DEFAULT_ACCESS_EMAIL_DOMAIN` | Cloudflare default access email domain | `@cloudity.com` |\n| `CLOUDFLARE_EXTRA_ACCESS_POLICY_ID_LIST` | Policies to assign to every application access | <!--- Optional --> |\n\n",
"examples": [
"$ sf hardis:doc:mkdocs-to-cf"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:doc:mkdocs-to-cf",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "MkDocs to Cloudflare",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"mkdocs-to-cf.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:mkdocs-to-cf",
"doc:hardis:mkdocs-to-cf",
"doc:mkdocs-to-cf:hardis",
"hardis:mkdocs-to-cf:doc",
"mkdocs-to-cf:hardis:doc",
"mkdocs-to-cf:doc:hardis"
]
},
"hardis:doc:mkdocs-to-salesforce": {
"aliases": [],
"args": {},
"description": "Generates MkDocs HTML pages and upload them to Salesforce as a static resource\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Static Resource, a VisualForce page and a Custom Tab metadata\n- Upload the metadatas to the default org\n- Opens the Custom Tab in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Specify the type of documentation to generate (CICD or Monitoring) using the --type flag. Default is CICD.\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n",
"examples": [
"$ sf hardis:doc:mkdocs-to-salesforce"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"type": {
"char": "t",
"description": "Type of the documentation to generate. Default is \"all\"",
"name": "type",
"default": "CICD",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"CICD",
"Monitoring"
],
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:doc:mkdocs-to-salesforce",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "MkDocs to Salesforce",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"mkdocs-to-salesforce.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:mkdocs-to-salesforce",
"doc:hardis:mkdocs-to-salesforce",
"doc:mkdocs-to-salesforce:hardis",
"hardis:mkdocs-to-salesforce:doc",
"mkdocs-to-salesforce:hardis:doc",
"mkdocs-to-salesforce:doc:hardis"
]
},
"hardis:doc:override-prompts": {
"aliases": [],
"args": {},
"description": "Create local override files for AI prompt templates and variables\n\nThis command creates a folder config/prompt-templates/ and copies all the default AI prompt templates and variables as .txt files that can be customized.\n\nThe templates are used by sfdx-hardis for:\n- Generating documentation with AI\n- Solving deployment errors\n- Describing Salesforce metadata\n\nThe variables contain common instruction patterns that are reused across multiple templates, such as:\n- Role definitions (business analyst, developer, etc.)\n- Formatting requirements for markdown output\n- Security caution instructions\n- Output format specifications\n\nYou can customize these prompts and variables to match your organization's specific needs and terminology.\n\nAfter running this command, you can modify any of the .txt files in config/prompt-templates/ to override the default prompts and variables.\n\n**Important**: Once created, existing template and variable files will never be overwritten with newer versions from sfdx-hardis updates, unless you explicitly use the --overwrite flag. This ensures your customizations are preserved.\n\nAvailable templates:\n- PROMPT_SOLVE_DEPLOYMENT_ERROR\n- PROMPT_DESCRIBE_FLOW\n- PROMPT_DESCRIBE_FLOW_DIFF\n- PROMPT_DESCRIBE_OBJECT\n- PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD\n- PROMPT_DESCRIBE_APEX\n- PROMPT_DESCRIBE_PAGE\n- PROMPT_DESCRIBE_PACKAGE\n- PROMPT_DESCRIBE_PROFILE\n- PROMPT_DESCRIBE_PERMISSION_SET\n- PROMPT_DESCRIBE_PERMISSION_SET_GROUP\n- PROMPT_DESCRIBE_ASSIGNMENT_RULES\n- PROMPT_DESCRIBE_APPROVAL_PROCESS\n- PROMPT_DESCRIBE_LWC\n- PROMPT_DESCRIBE_AUTORESPONSE_RULES\n- PROMPT_DESCRIBE_ESCALATION_RULES\n- PROMPT_DESCRIBE_ROLES\n\nAvailable variables:\n- VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC\n- VARIABLE_FORMATTING_REQUIREMENTS\n- VARIABLE_ADDITIONAL_INSTRUCTIONS\n\nMore info on [AI Prompts documentation](https://sfdx-hardis.cloudity.com/salesforce-ai-prompts/)\n",
"examples": [
"$ sf hardis:doc:override-prompts",
"$ sf hardis:doc:override-prompts --overwrite"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"overwrite": {
"description": "Overwrite existing template files if they already exist",
"name": "overwrite",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:doc:override-prompts",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Override AI Prompt Templates",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"override-prompts.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:override-prompts",
"doc:hardis:override-prompts",
"doc:override-prompts:hardis",
"hardis:override-prompts:doc",
"override-prompts:hardis:doc",
"override-prompts:doc:hardis"
]
},
"hardis:doc:packagexml2markdown": {
"aliases": [],
"args": {},
"description": "Generates a markdown documentation from a package.xml file",
"examples": [
"$ sf hardis:doc:packagexml2markdown",
"$ sf hardis:doc:packagexml2markdown --inputfile manifest/package-all.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"inputfile": {
"char": "x",
"description": "Path to package.xml file. If not specified, the command will look in manifest folder",
"name": "inputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .md",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:doc:packagexml2markdown",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "PackageXml to Markdown",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"packagexml2markdown.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:packagexml2markdown",
"doc:hardis:packagexml2markdown",
"doc:packagexml2markdown:hardis",
"hardis:packagexml2markdown:doc",
"packagexml2markdown:hardis:doc",
"packagexml2markdown:doc:hardis"
]
},
"hardis:doc:project2markdown": {
"aliases": [],
"args": {},
"description": "Generates a markdown documentation from a SFDX project\n\n- Objects (with fields, validation rules, relationships and dependencies)\n- Automations\n - Approval Processes\n - Assignment Rules\n - AutoResponse Rules\n - Escalation Rules\n - Flows\n- Authorizations\n - Profiles\n - Permission Set Groups\n - Permission Sets\n- Code\n - Apex\n - Lightning Web Components\n- Lightning Pages\n- Packages\n- SFDX-Hardis Config\n- Branches & Orgs\n- Manifests\n\nCan work on any sfdx project, no need for it to be a sfdx-hardis flavored one.\n\nGenerates markdown files will be written in **docs** folder (except README.md where a link to doc index is added)\n\n- You can customize the pages following [mkdocs-material setup documentation](https://squidfunk.github.io/mkdocs-material/setup/)\n- You can manually add new markdown files in the \"docs\" folder to extend this documentation and add references to them in \"mkdocs.yml\"\n- You can also add images in folder \"docs/assets\" and embed them in markdown files.\n\nTo read Flow documentations if your markdown reader doesn't handle MermaidJS syntax, this command could require @mermaid-js/mermaid-cli\n\n- Run `npm install @mermaid-js/mermaid-cli --global` if puppeteer works in your environment\n- It can also be run as a docker image\n\nBoth modes will be tried by default, but you can also force one of them by defining environment variable `MERMAID_MODES=docker` or `MERMAID_MODES=cli`\n\n_sfdx-hardis docker image is alpine-based and does not succeed to run mermaid/puppeteer: if you can help, please submit a PR !_\n\nIf Flow history doc always display a single state, you probably need to update your workflow configuration:\n\n- on Gitlab: Env variable [`GIT_FETCH_EXTRA_FLAGS: --depth 10000`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.gitlab-ci.yml#L11)\n- on GitHub: [`fetch-depth: 0`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.github/workflows/org-monitoring.yml#L58)\n- on Azure: [`fetchDepth: \"0\"`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/azure-pipelines.yml#L39)\n- on Bitbucket: [`step: clone: depth: full`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/bitbucket-pipelines.yml#L18)\n\n\n\n\n\n\n\n\n\n\n\n\n\nIf it is a sfdx-hardis CI/CD project, a diagram of the branches and orgs strategy will be generated.\n\n\n\nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow.\n\n- Use variable PROMPTS_LANGUAGE (ex: PROMPTS_LANGUAGE=fr) to force language for LLM calls (default:en)\n\nIf you have a complex strategy, you might need to input property **mergeTargets** in branch-scoped sfdx-hardis.yml file to have a correct diagram.\n\nDefine DO_NOT_OVERWRITE_INDEX_MD=true to avoid overwriting the index.md file in docs folder, useful if you want to keep your own index.md file.\n\n## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n\n",
"examples": [
"$ sf hardis:doc:project2markdown",
"$ sf hardis:doc:project2markdown --with-history",
"$ sf hardis:doc:project2markdown --with-history --pdf"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"diff-only": {
"description": "Generate documentation only for changed files (used for monitoring)",
"name": "diff-only",
"allowNo": false,
"type": "boolean"
},
"with-history": {
"description": "Generate a markdown file with the history diff of the Flow",
"name": "with-history",
"allowNo": false,
"type": "boolean"
},
"pdf": {
"description": "Also generate the documentation in PDF format",
"name": "pdf",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:doc:project2markdown",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "SFDX Project to Markdown",
"htmlInstructions": "## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"project2markdown.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:project2markdown",
"doc:hardis:project2markdown",
"doc:project2markdown:hardis",
"hardis:project2markdown:doc",
"project2markdown:hardis:doc",
"project2markdown:doc:hardis"
]
},
"hardis:lint:access": {
"aliases": [],
"args": {},
"description": "Check if elements(apex class and field) are at least in one permission set\n \nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-missing-access/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:lint:access",
"$ sf hardis:lint:access -e \"ApexClass:ClassA, CustomField:Account.CustomField\"",
"$ sf hardis:lint:access -i \"PermissionSet:permissionSetA, Profile\""
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"elementsignored": {
"char": "e",
"description": "Ignore specific elements separated by commas",
"name": "elementsignored",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"ignorerights": {
"char": "i",
"description": "Ignore permission sets or profiles",
"name": "ignorerights",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "x",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:lint:access",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "check permission access",
"supportsDevhubUsername": false,
"requiresProject": true,
"sourceElements": [
{
"regex": "/**/*.cls",
"type": "ApexClass",
"xmlField": "apexClass",
"xmlChildren": "classAccesses",
"xmlAccessField": "enabled",
"ignore": {
"all": false,
"elements": []
}
},
{
"regex": "/**/objects/**/fields/*__c.field-meta.xml",
"type": "CustomField",
"xmlField": "field",
"xmlChildren": "fieldPermissions",
"xmlAccessField": "readable",
"ignore": {
"all": false,
"elements": []
}
}
],
"messages": {
"header": "Check if elements(apex class and field) are at least in one permission set",
"allElementsHaveRights": "All elements are included in at least one Permission set or Profile",
"someElementsDontHaveRights": "Some elements are not included in at least one Permission set or Profile"
},
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"lint",
"access.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:lint:access",
"lint:hardis:access",
"lint:access:hardis",
"hardis:access:lint",
"access:hardis:lint",
"access:lint:hardis"
]
},
"hardis:lint:metadatastatus": {
"aliases": [],
"args": {},
"description": "Check if elements are inactive in the project:\n\n- Approval Processes\n- Assignment Rules\n- Auto Response Rules\n- Escalation Rules\n- Flows\n- Forecasting Types\n- Record Types\n- Validation Rules\n- Workflow Rules\n\n\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-inactive-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:lint:metadatastatus"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:lint:metadatastatus",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "check inactive metadatas",
"supportsDevhubUsername": false,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"lint",
"metadatastatus.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:lint:metadatastatus",
"lint:hardis:metadatastatus",
"lint:metadatastatus:hardis",
"hardis:metadatastatus:lint",
"metadatastatus:hardis:lint",
"metadatastatus:lint:hardis"
]
},
"hardis:lint:missingattributes": {
"aliases": [],
"args": {},
"description": "Check if elements(custom fields) aren't description",
"examples": [
"$ sf hardis:lint:missingattributes"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:lint:missingattributes",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "check missing description on custom fields",
"supportsDevhubUsername": false,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"lint",
"missingattributes.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:lint:missingattributes",
"lint:hardis:missingattributes",
"lint:missingattributes:hardis",
"hardis:missingattributes:lint",
"missingattributes:hardis:lint",
"missingattributes:lint:hardis"
]
},
"hardis:lint:unusedmetadatas": {
"aliases": [],
"args": {},
"description": "Check if elements (custom labels and custom permissions) are used in the project\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-unused-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n ",
"examples": [
"$ sf hardis:lint:unusedmetadatas"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:lint:unusedmetadatas",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "check unused labels and custom permissions",
"supportsDevhubUsername": false,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"lint",
"unusedmetadatas.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:lint:unusedmetadatas",
"lint:hardis:unusedmetadatas",
"lint:unusedmetadatas:hardis",
"hardis:unusedmetadatas:lint",
"unusedmetadatas:hardis:lint",
"unusedmetadatas:lint:hardis"
]
},
"hardis:mdapi:deploy": {
"aliases": [],
"args": {},
"description": "sfdx-hardis wrapper for sfdx force:mdapi:deploy that displays tips to solve deployment errors.\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_mdapi.htm#cli_reference_force_mdapi_deploy)\n",
"examples": [],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"checkonly": {
"char": "c",
"description": "checkOnly",
"name": "checkonly",
"allowNo": false,
"type": "boolean"
},
"deploydir": {
"char": "d",
"description": "deployDir",
"name": "deploydir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"wait": {
"char": "w",
"description": "wait",
"name": "wait",
"default": 120,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"testlevel": {
"char": "l",
"description": "testLevel",
"name": "testlevel",
"default": "NoTestRun",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"NoTestRun",
"RunSpecifiedTests",
"RunLocalTests",
"RunAllTestsInOrg"
],
"type": "option"
},
"runtests": {
"char": "r",
"description": "runTests",
"name": "runtests",
"default": [],
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"ignoreerrors": {
"description": "ignoreErrors",
"name": "ignoreerrors",
"allowNo": false,
"type": "boolean"
},
"ignorewarnings": {
"char": "g",
"description": "ignoreWarnings",
"name": "ignorewarnings",
"allowNo": false,
"type": "boolean"
},
"validateddeployrequestid": {
"char": "q",
"description": "validatedDeployRequestId",
"exclusive": [
"testlevel",
"runtests",
"ignoreerrors",
"ignorewarnings",
"checkonly"
],
"name": "validateddeployrequestid",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"verbose": {
"description": "verbose",
"name": "verbose",
"allowNo": false,
"type": "boolean"
},
"zipfile": {
"char": "f",
"description": "zipFile",
"name": "zipfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"singlepackage": {
"char": "s",
"description": "singlePackage",
"name": "singlepackage",
"allowNo": false,
"type": "boolean"
},
"soapdeploy": {
"description": "soapDeploy",
"name": "soapdeploy",
"allowNo": false,
"type": "boolean"
},
"purgeondelete": {
"description": "purgeOnDelete",
"name": "purgeondelete",
"allowNo": false,
"type": "boolean"
},
"concise": {
"description": "concise",
"name": "concise",
"allowNo": false,
"type": "boolean"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:mdapi:deploy",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"mdapi",
"deploy.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:mdapi:deploy",
"mdapi:hardis:deploy",
"mdapi:deploy:hardis",
"hardis:deploy:mdapi",
"deploy:hardis:mdapi",
"deploy:mdapi:hardis"
]
},
"hardis:misc:custom-label-translations": {
"aliases": [],
"args": {},
"description": "Extract selected custom labels, or of a given Lightning Web Component (LWC), from all language translation files. This command generates translation files ('*.translation - meta.xml') for each language already retrieved in the current project, containing only the specified custom labels.",
"examples": [
"$ sf hardis:misc:custom-label-translations --label CustomLabelName",
"$ sf hardis:misc:custom-label-translations --label Label1,Label2",
"$ sf hardis:misc:custom-label-translations --lwc MyComponent"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"label": {
"char": "l",
"description": "Developer name(s) of the custom label(s), comma-separated",
"name": "label",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"lwc": {
"char": "c",
"description": "Developer name of the Lightning Web Component",
"name": "lwc",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:misc:custom-label-translations",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Custom Label Translations",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"misc",
"custom-label-translations.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:misc:custom-label-translations",
"misc:hardis:custom-label-translations",
"misc:custom-label-translations:hardis",
"hardis:custom-label-translations:misc",
"custom-label-translations:hardis:misc",
"custom-label-translations:misc:hardis"
]
},
"hardis:misc:purge-references": {
"aliases": [],
"args": {},
"description": "Purge references to any string in org metadatas before a deployment.\n\nFor example, this can be handy if you need to change the type of a custom field from Master Detail to Lookup.\n\nUSE WITH EXTREME CAUTION AND CAREFULLY READ THE MESSAGES !",
"examples": [
"$ sf hardis:misc:purge-references"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"references": {
"char": "r",
"description": "Comma-separated list of references to find in metadatas",
"name": "references",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:misc:purge-references",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Purge References",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"misc",
"purge-references.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:misc:purge-references",
"misc:hardis:purge-references",
"misc:purge-references:hardis",
"hardis:purge-references:misc",
"purge-references:hardis:misc",
"purge-references:misc:hardis"
]
},
"hardis:misc:servicenow-report": {
"aliases": [],
"args": {},
"description": "This command retrieves user stories from Salesforce and enriches them with data from ServiceNow.\n\nDefine the following environment variables (in CICD variables or locally in a **.env** file):\n\n- SERVICENOW_URL: The base URL of the ServiceNow API (ex: https://your-instance.service-now.com/)\n- SERVICENOW_USERNAME: The username for ServiceNow API authentication.\n- SERVICENOW_PASSWORD: The password for ServiceNow API authentication.\n\nYou also need to define JSON configuration file(e) in folder **config/user-stories/**\n\nExample:\n\n```json\n{\n \"userStoriesConfig\": {\n \"fields\": [\n \"Id\",\n \"Name\",\n \"Ticket_Number__c\",\n \"copado__User_Story_Title__c\",\n \"CreatedBy.Name\",\n \"copado__Release__r.Name\",\n \"copado__Environment__r.Name\"\n ],\n \"table\": \"copado__User_Story__c\",\n \"where\": \"copado__Environment__r.Name ='UAT'\",\n \"whereChoices\": {\n \"UAT all\": \"copado__Environment__r.Name ='UAT'\",\n \"UAT postponed\": \"copado__Environment__r.Name ='UAT' AND copado__Release__r.Name = 'postponed'\",\n \"UAT in progress\": \"copado__Environment__r.Name ='UAT' AND copado__Release__r.Name != 'postponed' AND copado__Release__r.Name != 'cancelled'\"\n },\n \"orderBy\": \"Ticket_Number__c ASC\",\n \"ticketField\": \"Ticket_Number__c\",\n \"reportFields\": [\n { \"key\": \"US Name\", \"path\": \"Name\" },\n { \"key\": \"US SN Identifier\", \"path\": \"Ticket_Number__c\" },\n { \"key\": \"US Title\", \"path\": \"copado__User_Story_Title__c\" },\n { \"key\": \"US Created By\", \"path\": \"CreatedBy.Name\" },\n { \"key\": \"US Environment\", \"path\": \"copado__Environment__r.Name\" },\n { \"key\": \"US Release\", \"path\": \"copado__Release__r.Name\" },\n { \"key\": \"SN Identifier\", \"path\": \"serviceNowInfo.number\", \"default\": \"NOT FOUND\" },\n { \"key\": \"SN Title\", \"path\": \"serviceNowInfo.short_description\", \"default\": \"NOT FOUND\" },\n { \"key\": \"SN Status\", \"path\": \"serviceNowInfo.state\", \"default\": \"NOT FOUND\" },\n { \"key\": \"SN Created By\", \"path\": \"serviceNowInfo.sys_created_by\", \"default\": \"NOT FOUND\" },\n { \"key\": \"SN URL\", \"special\": \"serviceNowTicketUrl\" }\n ]\n },\n \"serviceNowConfig\": {\n \"tables\": [\n { \"tableName\": \"demand\" },\n { \"tableName\": \"incident\" }\n ]\n }\n}\n```\n ",
"examples": [
"$ sf hardis:misc:servicenow-report"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"config": {
"char": "c",
"description": "Path to JSON config file containing user stories and ServiceNow configuration",
"name": "config",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"where-choice": {
"char": "w",
"description": "Where selection for user stories. If not provided, you will be prompted to select one from the config file.",
"name": "where-choice",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:misc:servicenow-report",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "ServiceNow Report",
"supportsDevhubUsername": false,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"misc",
"servicenow-report.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:misc:servicenow-report",
"misc:hardis:servicenow-report",
"misc:servicenow-report:hardis",
"hardis:servicenow-report:misc",
"servicenow-report:hardis:misc",
"servicenow-report:misc:hardis"
]
},
"hardis:misc:toml2csv": {
"aliases": [],
"args": {},
"description": "Split TOML file into distinct CSV files",
"examples": [
"$ sf hardis:misc:toml2csv --tomlfile 'D:/clients/toto/V1_full.txt' ",
"$ sf hardis:misc:toml2csv --skiptransfo --tomlfile 'D:/clients/toto/V1_full.txt' ",
"$ sf hardis:misc:toml2csv --skiptransfo --tomlfile 'D:/clients/toto/V1_full.txt' --outputdir 'C:/tmp/rrrr'",
"$ NODE_OPTIONS=--max_old_space_size=9096 sf hardis:misc:toml2csv --skiptransfo --tomlfile './input/V1.txt' --outputdir './output' --filtersections 'COMPTES,SOUS'"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"tomlfile": {
"char": "f",
"description": "Input TOML file path",
"name": "tomlfile",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"transfoconfig": {
"char": "t",
"description": "Path to JSON config file for mapping and transformation",
"name": "transfoconfig",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"filtersections": {
"char": "l",
"description": "List of sections to process (if not set, all sections will be processed)",
"name": "filtersections",
"default": [],
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"skiptransfo": {
"char": "s",
"description": "Do not apply transformation to input data",
"name": "skiptransfo",
"allowNo": false,
"type": "boolean"
},
"outputdir": {
"char": "z",
"description": "Output directory",
"name": "outputdir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:misc:toml2csv",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "TOML to CSV",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"misc",
"toml2csv.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:misc:toml2csv",
"misc:hardis:toml2csv",
"misc:toml2csv:hardis",
"hardis:toml2csv:misc",
"toml2csv:hardis:misc",
"toml2csv:misc:hardis"
]
},
"hardis:org:connect": {
"aliases": [],
"args": {},
"description": "Connect to an org without setting it as default username, then proposes to open the org in web browser\n ",
"examples": [
"$ sf hardis:org:connect"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:connect",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Connect to an org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"connect.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:connect",
"org:hardis:connect",
"org:connect:hardis",
"hardis:connect:org",
"connect:hardis:org",
"connect:org:hardis"
]
},
"hardis:org:create": {
"aliases": [],
"args": {},
"description": "Create and initialize sandbox org",
"examples": [
"$ sf hardis:org:create"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create sandbox org",
"supportsDevhubUsername": true,
"requiresProject": true,
"requiresSfdxPlugins": [
"sfdmu"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:create",
"org:hardis:create",
"org:create:hardis",
"hardis:create:org",
"create:hardis:org",
"create:org:hardis"
]
},
"hardis:org:multi-org-query": {
"aliases": [],
"args": {},
"description": "Executes a SOQL query in multiple orgs and generate a single report from it\n \nYou can send a custom query using --query, or use one of the predefined queries using --query-template.\n\nIf you use the command from a CI/CD job, you must previously authenticate to the usernames present in --target-orgs.\n\n[](https://marketplace.visualstudio.com/items?itemName=NicolasVuillamy.vscode-sfdx-hardis)\n",
"examples": [
"$ sf hardis:org:multi-org-query",
"$ sf hardis:org:multi-org-query --query \"SELECT Id,Username FROM User\"",
"$ sf hardis:org:multi-org-query --query \"SELECT Id,Username FROM User\" --target-orgs nico@cloudity.com nico@cloudity.com.preprod nico@cloudity.com.uat",
"$ sf hardis:org:multi-org-query --query-template active-users --target-orgs nico@cloudity.com nico@cloudity.com.preprod nico@cloudity.com.uat"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"query": {
"char": "q",
"description": "SOQL Query to run on multiple orgs",
"exclusive": [
"query-template"
],
"name": "query",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"query-template": {
"char": "t",
"description": "Use one of predefined SOQL Query templates",
"exclusive": [
"query"
],
"name": "query-template",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"active-users",
"all-users"
],
"type": "option"
},
"target-orgs": {
"char": "x",
"description": "List of org usernames or aliases.",
"name": "target-orgs",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:multi-org-query",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Multiple Orgs SOQL Query",
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"multi-org-query.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:multi-org-query",
"org:hardis:multi-org-query",
"org:multi-org-query:hardis",
"hardis:multi-org-query:org",
"multi-org-query:hardis:org",
"multi-org-query:org:hardis"
]
},
"hardis:org:select": {
"aliases": [],
"args": {},
"description": "Interactive org selection for user",
"examples": [
"$ sf hardis:org:select"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"devhub": {
"char": "h",
"description": "Also connect associated DevHub",
"name": "devhub",
"allowNo": false,
"type": "boolean"
},
"scratch": {
"char": "s",
"description": "Select scratch org related to default DevHub",
"name": "scratch",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:select",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Select org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"select.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:select",
"org:hardis:select",
"org:select:hardis",
"hardis:select:org",
"select:hardis:org",
"select:org:hardis"
]
},
"hardis:package:create": {
"aliases": [],
"args": {},
"description": "Create a new package",
"examples": [
"$ sf hardis:package:create"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:package:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create a new package",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:create",
"package:hardis:create",
"package:create:hardis",
"hardis:create:package",
"create:hardis:package",
"create:package:hardis"
]
},
"hardis:package:install": {
"aliases": [],
"args": {},
"description": "Install a package in an org using its id (starting with **04t**)\n\nAssisted menu to propose to update `installedPackages` property in `.sfdx-hardis.yml`\n",
"examples": [
"$ sf hardis:package:install"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"package": {
"char": "p",
"description": "Package Version Id to install (04t...)",
"name": "package",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"installationkey": {
"char": "k",
"description": "installation key for key-protected package (default: null)",
"name": "installationkey",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:package:install",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Install packages in an org",
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"install.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:install",
"package:hardis:install",
"package:install:hardis",
"hardis:install:package",
"install:hardis:package",
"install:package:hardis"
]
},
"hardis:package:mergexml": {
"aliases": [],
"args": {},
"description": "Select and merge package.xml files",
"examples": [
"$ sf hardis:package:mergexml",
"$ sf hardis:package:mergexml --folder packages --pattern /**/*.xml --result myMergedPackage.xml",
"$ sf hardis:package:mergexml --packagexmls \"config/mypackage1.xml,config/mypackage2.xml,config/mypackage3.xml\" --result myMergedPackage.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "manifest",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexmls": {
"char": "p",
"description": "Comma separated list of package.xml files to merge. Will be prompted to user if not provided",
"name": "packagexmls",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"pattern": {
"char": "x",
"description": "Name criteria to list package.xml files",
"name": "pattern",
"default": "/**/*package*.xml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"result": {
"char": "r",
"description": "Result package.xml file name",
"name": "result",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:package:mergexml",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Merge package.xml files",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"mergexml.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:mergexml",
"package:hardis:mergexml",
"package:mergexml:hardis",
"hardis:mergexml:package",
"mergexml:hardis:package",
"mergexml:package:hardis"
]
},
"hardis:packagexml:append": {
"aliases": [],
"args": {},
"description": "Append one or multiple package.xml files into a single one",
"examples": [
"$ sf hardis packagexml append -p package1.xml,package2.xml -o package3.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexmls": {
"char": "p",
"description": "package.xml files path (separated by commas)",
"name": "packagexmls",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "package.xml output file",
"name": "outputfile",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:packagexml:append",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"packagexml",
"append.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:packagexml:append",
"packagexml:hardis:append",
"packagexml:append:hardis",
"hardis:append:packagexml",
"append:hardis:packagexml",
"append:packagexml:hardis"
]
},
"hardis:packagexml:remove": {
"aliases": [],
"args": {},
"description": "Removes the content of a package.xml file matching another package.xml file",
"examples": [
"$ sf hardis packagexml:remove -p package.xml -r destructiveChanges.xml -o my-reduced-package.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexml": {
"char": "p",
"description": "package.xml file to reduce",
"name": "packagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"removepackagexml": {
"char": "r",
"description": "package.xml file to use to filter input package.xml",
"name": "removepackagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"removedonly": {
"char": "z",
"description": "Use this flag to generate a package.xml with only removed items",
"name": "removedonly",
"allowNo": false,
"type": "boolean"
},
"outputfile": {
"char": "f",
"description": "package.xml output file",
"name": "outputfile",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:packagexml:remove",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"packagexml",
"remove.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:packagexml:remove",
"packagexml:hardis:remove",
"packagexml:remove:hardis",
"hardis:remove:packagexml",
"remove:hardis:packagexml",
"remove:packagexml:hardis"
]
},
"hardis:project:create": {
"aliases": [],
"args": {},
"description": "Create a new SFDX Project",
"examples": [
"$ sf hardis:project:create"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Login",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:create",
"project:hardis:create",
"project:create:hardis",
"hardis:create:project",
"create:hardis:project",
"create:project:hardis"
]
},
"hardis:project:lint": {
"aliases": [],
"args": {},
"description": "Apply syntactic analysis (linters) on the repository sources, using Mega-Linter",
"examples": [
"$ sf hardis:project:lint",
"$ sf hardis:project:lint --fix"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"fix": {
"char": "f",
"description": "Apply linters fixes",
"name": "fix",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:lint",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Lint",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"lint.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:lint",
"project:hardis:lint",
"project:lint:hardis",
"hardis:lint:project",
"lint:hardis:project",
"lint:project:hardis"
]
},
"hardis:scratch:create": {
"aliases": [],
"args": {},
"description": "Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n\n- **Install packages**\n - Use property `installedPackages`\n- **Push sources**\n- **Assign permission sets**\n - Use property `initPermissionSets`\n- **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n- **Load data**\n - Use property `dataPackages`\n ",
"examples": [
"$ sf hardis:scratch:create"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"forcenew": {
"char": "n",
"description": "If an existing scratch org exists, do not reuse it but create a new one",
"name": "forcenew",
"allowNo": false,
"type": "boolean"
},
"pool": {
"description": "Creates the scratch org for a scratch org pool",
"name": "pool",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create and initialize scratch org",
"requiresProject": true,
"requiresSfdxPlugins": [
"sfdmu",
"texei-sfdx-plugin"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:create",
"scratch:hardis:create",
"scratch:create:hardis",
"hardis:create:scratch",
"create:hardis:scratch",
"create:scratch:hardis"
]
},
"hardis:scratch:delete": {
"aliases": [],
"args": {},
"description": "Assisted menu to delete scratch orgs associated to a DevHub",
"examples": [
"$ sf hardis:scratch:delete"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:delete",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Delete scratch orgs(s)",
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"delete.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:delete",
"scratch:hardis:delete",
"scratch:delete:hardis",
"hardis:delete:scratch",
"delete:hardis:scratch",
"delete:scratch:hardis"
]
},
"hardis:scratch:pull": {
"aliases": [],
"args": {},
"description": "This commands pulls the updates you performed in your scratch or sandbox org, into your local files\n\nThen, you probably want to stage and commit the files containing the updates you want to keep, as explained in this video.\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Ik6whtflmfY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n\n- Calls `sf project retrieve start` under the hood\n- If there are errors, proposes to automatically add erroneous item in `.forceignore`, then pull again\n- If you don't see your updated items in the results, you can manually retrieve [using SF Extension **Org Browser** or **Salesforce CLI**](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/#retrieve-metadatas)\n- If you want to always retrieve sources like CustomApplication that are not always detected as updates by project:retrieve:start , you can define property **autoRetrieveWhenPull** in .sfdx-hardis.yml\n\nExample:\n```yaml\nautoRetrieveWhenPull:\n - CustomApplication:MyCustomApplication\n - CustomApplication:MyOtherCustomApplication\n - CustomApplication:MyThirdCustomApp\n```\n",
"examples": [
"$ sf hardis:scratch:pull"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pull",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Scratch PULL",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pull.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pull",
"scratch:hardis:pull",
"scratch:pull:hardis",
"hardis:pull:scratch",
"pull:hardis:scratch",
"pull:scratch:hardis"
]
},
"hardis:scratch:push": {
"aliases": [],
"args": {},
"description": "Push local files to scratch org\n\nCalls `sf project deploy start` under the hood\n",
"examples": [
"$ sf hardis:scratch:push"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:push",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Scratch PUSH",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"push.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:push",
"scratch:hardis:push",
"scratch:push:hardis",
"hardis:push:scratch",
"push:hardis:scratch",
"push:scratch:hardis"
]
},
"hardis:source:deploy": {
"aliases": [],
"args": {},
"description": "sfdx-hardis wrapper for sfdx force:source:deploy that displays tips to solve deployment errors.\n\nAdditional to the base command wrapper: If using **--checkonly**, add options **--checkcoverage** and **--coverageformatters json-summary** to check that org coverage is > 75% (or value defined in .sfdx-hardis.yml property **apexTestsMinCoverageOrgWide**)\n\n### Deployment results\n\nYou can also have deployment results as pull request comments, on:\n\n- GitHub (see [GitHub Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-github/))\n- Gitlab (see [Gitlab integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-gitlab/))\n- Azure DevOps (see [Azure integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-azure/))\n\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n\nNotes:\n\n- You can disable coloring of errors in red by defining env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_deploy)\n",
"examples": [
"$ sf hardis:source:deploy -x manifest/package.xml --wait 60 --ignorewarnings --testlevel RunLocalTests --postdestructivechanges ./manifest/destructiveChanges.xml --target-org nicolas.vuillamy@cloudity.com.sfdxhardis --checkonly --checkcoverage --verbose --coverageformatters json-summary"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"checkonly": {
"char": "c",
"description": "checkonly",
"name": "checkonly",
"allowNo": false,
"type": "boolean"
},
"soapdeploy": {
"description": "soapDeploy",
"name": "soapdeploy",
"allowNo": false,
"type": "boolean"
},
"wait": {
"char": "w",
"description": "wait",
"name": "wait",
"default": 60,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"testlevel": {
"char": "l",
"description": "testlevel",
"name": "testlevel",
"default": "NoTestRun",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"NoTestRun",
"RunSpecifiedTests",
"RunLocalTests",
"RunAllTestsInOrg"
],
"type": "option"
},
"runtests": {
"char": "r",
"description": "runTests",
"name": "runtests",
"default": [],
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"ignoreerrors": {
"description": "ignoreErrors",
"name": "ignoreerrors",
"allowNo": false,
"type": "boolean"
},
"ignorewarnings": {
"char": "g",
"description": "ignoreWarnings",
"name": "ignorewarnings",
"allowNo": false,
"type": "boolean"
},
"validateddeployrequestid": {
"char": "q",
"description": "validateDeployRequestId",
"exclusive": [
"manifest",
"metadata",
"sourcepath",
"checkonly",
"testlevel",
"runtests",
"ignoreerrors",
"ignorewarnings"
],
"name": "validateddeployrequestid",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"verbose": {
"description": "verbose",
"name": "verbose",
"allowNo": false,
"type": "boolean"
},
"metadata": {
"char": "m",
"description": "metadata",
"exclusive": [
"manifest",
"sourcepath"
],
"name": "metadata",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"sourcepath": {
"char": "p",
"description": "sourcePath",
"exclusive": [
"manifest",
"metadata"
],
"name": "sourcepath",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"manifest": {
"char": "x",
"description": "flagsLong.manifest",
"exclusive": [
"metadata",
"sourcepath"
],
"name": "manifest",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"predestructivechanges": {
"dependsOn": [
"manifest"
],
"description": "predestructivechanges",
"name": "predestructivechanges",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"postdestructivechanges": {
"dependsOn": [
"manifest"
],
"description": "postdestructivechanges",
"name": "postdestructivechanges",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"tracksource": {
"char": "t",
"description": "tracksource",
"exclusive": [
"checkonly",
"validateddeployrequestid"
],
"name": "tracksource",
"allowNo": false,
"type": "boolean"
},
"forceoverwrite": {
"char": "f",
"dependsOn": [
"tracksource"
],
"description": "forceoverwrite",
"name": "forceoverwrite",
"allowNo": false,
"type": "boolean"
},
"resultsdir": {
"description": "resultsdir",
"name": "resultsdir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"coverageformatters": {
"description": "coverageformatters",
"name": "coverageformatters",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"junit": {
"description": "junit",
"name": "junit",
"allowNo": false,
"type": "boolean"
},
"checkcoverage": {
"description": "Check Apex org coverage",
"name": "checkcoverage",
"allowNo": false,
"type": "boolean"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:source:deploy",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"source",
"deploy.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:source:deploy",
"source:hardis:deploy",
"source:deploy:hardis",
"hardis:deploy:source",
"deploy:hardis:source",
"deploy:source:hardis"
]
},
"hardis:source:push": {
"aliases": [],
"args": {},
"description": "sfdx-hardis wrapper for sfdx force:source:push that displays tips to solve deployment errors.\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_push)\n",
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"forceoverwrite": {
"char": "f",
"description": "forceoverwrite",
"name": "forceoverwrite",
"allowNo": false,
"type": "boolean"
},
"wait": {
"char": "w",
"description": "wait",
"name": "wait",
"default": 60,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"ignorewarnings": {
"char": "g",
"description": "ignorewarnings",
"name": "ignorewarnings",
"allowNo": false,
"type": "boolean"
},
"quiet": {
"description": "quiet",
"name": "quiet",
"allowNo": false,
"type": "boolean"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:source:push",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"source",
"push.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:source:push",
"source:hardis:push",
"source:push:hardis",
"hardis:push:source",
"push:hardis:source",
"push:source:hardis"
]
},
"hardis:source:retrieve": {
"aliases": [],
"args": {},
"description": "sfdx-hardis wrapper for sfdx force:source:retrieve\n\n- If no retrieve constraint is sent, as assisted menu will request the list of metadatas to retrieve\n- If no org is selected , an assisted menu will request the user to choose one\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_retrieve)\n",
"examples": [],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"apiversion": {
"char": "a",
"description": "Override the api version used for api requests made by this command",
"name": "apiversion",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"sourcepath": {
"char": "p",
"description": "sourcePath",
"exclusive": [
"manifest",
"metadata"
],
"name": "sourcepath",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"wait": {
"char": "w",
"description": "wait",
"name": "wait",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"manifest": {
"char": "x",
"description": "manifest",
"exclusive": [
"metadata",
"sourcepath"
],
"name": "manifest",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"metadata": {
"char": "m",
"description": "metadata",
"exclusive": [
"manifest",
"sourcepath"
],
"name": "metadata",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"packagenames": {
"char": "n",
"description": "packagenames",
"name": "packagenames",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"tracksource": {
"char": "t",
"description": "tracksource",
"name": "tracksource",
"allowNo": false,
"type": "boolean"
},
"forceoverwrite": {
"char": "f",
"dependsOn": [
"tracksource"
],
"description": "forceoverwrite",
"name": "forceoverwrite",
"allowNo": false,
"type": "boolean"
},
"verbose": {
"description": "verbose",
"name": "verbose",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "debugMode",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:source:retrieve",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"source",
"retrieve.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:source:retrieve",
"source:hardis:retrieve",
"source:retrieve:hardis",
"hardis:retrieve:source",
"retrieve:hardis:source",
"retrieve:source:hardis"
]
},
"hardis:work:new": {
"aliases": [],
"args": {},
"description": "Assisted menu to start working on a Salesforce task.\n\nAdvanced instructions in [Create New Task documentation](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-create-new-task/)\n\nAt the end of the command, it will allow you to work on either a scratch org or a sandbox, depending on your choices.\n\nUnder the hood, it can:\n\n- Make **git pull** to be up to date with target branch\n- Create **new git branch** with formatted name (you can override the choices using .sfdx-hardis.yml property **branchPrefixChoices**)\n- Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n- (and for scratch org only for now):\n - **Install packages**\n - Use property `installedPackages`\n - **Push sources**\n - **Assign permission sets**\n - Use property `initPermissionSets`\n - **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n - **Load data**\n - Use property `dataPackages`\n\n## Override .sfdx-hardis.yml config\n\n### availableTargetBranches\n\nBy default, there is only one target branch (value of property **developmentBranch**).\n\nYou can define multiple target branches (for the future Pull Request) by setting the property **availableTargetBranches** in your .sfdx-hardis.yml file.\n\nThe selected branch will checked out and be used as base to create the user new feature branch.\n\nExamples:\n\n```yaml\navailableTargetBranches:\n - integration\n - preprod\n```\n\n```yaml\navailableTargetBranches:\n - integration,Select this to work from the integration branch (project stream)\n - preprod,Select this to work from the preprod branch (run stream)\n```\n\n### availableProjects\n\nYou can add a first question \"What is the project your task is for\" if you define a property **availableProjects**\n\nThe select will be used as first part of the git branch name. (ex: france/features/dev/JIRA123-webservice-get-account)\n\nExamples:\n\n```yaml\navailableProjects:\n - build\n - run\n - some-big-project\n - france\n - uk\n```\n\n```yaml\navailableProjects:\n - build,Select this to work on the build project\n - run,Select this to work on the run project\n - some-big-project,Select this to work on the some big project\n - france,Select this to work on the France project\n - uk,Select this to work on the UK project\n```\n\n### newTaskNameRegex\n\nIf you want to force a specific format for the task name, you can define a property **newTaskNameRegex** in your .sfdx-hardis.yml file.\n\nPlease also define a property **newTaskNameRegexExample** to give an example to the user.\n\nExample:\n\n```yaml\nnewTaskNameRegex: '^[A-Z]+-[0-9]+ .*'\nnewTaskNameRegexExample: 'MYPROJECT-123 Update account status validation rule'\n```\n\n### sharedDevSandboxes\n\nIf contributors can share dev sandboxes, let's not ask them if they want to overwrite their colleagues' changes when creating a new task :)\n",
"examples": [
"$ sf hardis:work:new"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": false,
"summary": "Username or alias of the Dev Hub org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:work:new",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "New work task",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"work",
"new.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:work:new",
"work:hardis:new",
"work:new:hardis",
"hardis:new:work",
"new:hardis:work",
"new:work:hardis"
]
},
"hardis:work:refresh": {
"aliases": [],
"args": {},
"description": "Make my local branch and my scratch org up to date with the most recent sources",
"examples": [
"$ sf hardis:work:refresh"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"nopull": {
"char": "n",
"description": "No scratch pull before save (careful if you use that!)",
"name": "nopull",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:work:refresh",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Refresh work task",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"work",
"refresh.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:work:refresh",
"work:hardis:refresh",
"work:refresh:hardis",
"hardis:refresh:work",
"refresh:hardis:work",
"refresh:work:hardis"
]
},
"hardis:work:resetselection": {
"aliases": [],
"args": {},
"description": "Resets the selection that we want to add in the merge request\n\nCalls a soft git reset behind the hood \n",
"examples": [
"$ sf hardis:work:resetsave"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:work:resetselection",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Select again",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"work",
"resetselection.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:work:resetselection",
"work:hardis:resetselection",
"work:resetselection:hardis",
"hardis:resetselection:work",
"resetselection:hardis:work",
"resetselection:work:hardis"
]
},
"hardis:work:save": {
"aliases": [],
"args": {},
"description": "When a work task is completed, guide user to create a merge request\n\nAdvanced instructions in [Publish a task](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/)\n\n- Generate package-xml diff using sfdx-git-delta\n- Automatically update `manifest/package.xml` and `manifest/destructiveChanges.xml` according to the committed updates\n- Automatically Clean XML files using `.sfdx-hardis.yml` properties\n - `autocleantypes`: List of auto-performed sources cleanings, available on command [hardis:project:clean:references](https://sfdx-hardis.cloudity.com/hardis/project/clean/references/)\n - `autoRemoveUserPermissions`: List of userPermission to automatically remove from profile metadatas\n\nExample:\n\n```yaml\nautoCleanTypes:\n - checkPermissions\n - destructivechanges\n - datadotcom\n - minimizeProfiles\n - listViewsMine\nautoRemoveUserPermissions:\n - EnableCommunityAppLauncher\n - FieldServiceAccess\n - OmnichannelInventorySync\n - SendExternalEmailAvailable\n - UseOmnichannelInventoryAPIs\n - ViewDataLeakageEvents\n - ViewMLModels\n - ViewPlatformEvents\n - WorkCalibrationUser\n```\n\n- Push commit to server\n ",
"examples": [
"$ sf hardis:work:task:save",
"$ sf hardis:work:task:save --nopull --nogit --noclean"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"nopull": {
"char": "n",
"description": "No scratch pull before save",
"name": "nopull",
"allowNo": false,
"type": "boolean"
},
"nogit": {
"char": "g",
"description": "No automated git operations",
"name": "nogit",
"allowNo": false,
"type": "boolean"
},
"noclean": {
"char": "c",
"description": "No cleaning of local sources",
"name": "noclean",
"allowNo": false,
"type": "boolean"
},
"auto": {
"description": "No user prompts (when called from CI for example)",
"name": "auto",
"allowNo": false,
"type": "boolean"
},
"targetbranch": {
"description": "Name of the Merge Request target branch. Will be guessed or prompted if not provided.",
"name": "targetbranch",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:work:save",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Save work task",
"requiresProject": true,
"requiresSfdxPlugins": [
"sfdx-git-delta"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"work",
"save.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:work:save",
"work:hardis:save",
"work:save:hardis",
"hardis:save:work",
"save:hardis:work",
"save:work:hardis"
]
},
"hardis:work:ws": {
"aliases": [],
"args": {},
"description": "Technical calls to WebSocket functions",
"examples": [
"$ sf hardis:work:ws --event refreshStatus"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"event": {
"char": "e",
"description": "WebSocket event",
"name": "event",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:work:ws",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "WebSocket operations",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"work",
"ws.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:work:ws",
"work:hardis:ws",
"work:ws:hardis",
"hardis:ws:work",
"ws:hardis:work",
"ws:work:hardis"
]
},
"hardis:doc:extract:permsetgroups": {
"aliases": [],
"args": {},
"description": "Generate markdown files with project documentation",
"examples": [
"$ sf hardis:doc:extract:permsetgroups"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:doc:extract:permsetgroups",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Generate project documentation",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"extract",
"permsetgroups.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:extract:permsetgroups",
"doc:hardis:extract:permsetgroups",
"doc:extract:hardis:permsetgroups",
"doc:extract:permsetgroups:hardis",
"hardis:extract:doc:permsetgroups",
"extract:hardis:doc:permsetgroups",
"extract:doc:hardis:permsetgroups",
"extract:doc:permsetgroups:hardis",
"hardis:extract:permsetgroups:doc",
"extract:hardis:permsetgroups:doc",
"extract:permsetgroups:hardis:doc",
"extract:permsetgroups:doc:hardis",
"hardis:doc:permsetgroups:extract",
"doc:hardis:permsetgroups:extract",
"doc:permsetgroups:hardis:extract",
"doc:permsetgroups:extract:hardis",
"hardis:permsetgroups:doc:extract",
"permsetgroups:hardis:doc:extract",
"permsetgroups:doc:hardis:extract",
"permsetgroups:doc:extract:hardis",
"hardis:permsetgroups:extract:doc",
"permsetgroups:hardis:extract:doc",
"permsetgroups:extract:hardis:doc",
"permsetgroups:extract:doc:hardis"
]
},
"hardis:doc:plugin:generate": {
"aliases": [],
"args": {},
"description": "Generate Markdown documentation ready for HTML conversion with mkdocs\n\nAfter the first run, you need to update manually:\n\n- mkdocs.yml\n- .github/workflows/build-deploy-docs.yml\n- docs/javascripts/gtag.js , if you want Google Analytics tracking\n\nThen, activate Github pages, with \"gh_pages\" as target branch\n\nAt each merge into master/main branch, the GitHub Action build-deploy-docs will rebuild documentation and publish it in GitHub pages\n",
"examples": [
"$ sf hardis:doc:plugin:generate"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:doc:plugin:generate",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Generate SF Cli Plugin Documentation",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"doc",
"plugin",
"generate.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:doc:plugin:generate",
"doc:hardis:plugin:generate",
"doc:plugin:hardis:generate",
"doc:plugin:generate:hardis",
"hardis:plugin:doc:generate",
"plugin:hardis:doc:generate",
"plugin:doc:hardis:generate",
"plugin:doc:generate:hardis",
"hardis:plugin:generate:doc",
"plugin:hardis:generate:doc",
"plugin:generate:hardis:doc",
"plugin:generate:doc:hardis",
"hardis:doc:generate:plugin",
"doc:hardis:generate:plugin",
"doc:generate:hardis:plugin",
"doc:generate:plugin:hardis",
"hardis:generate:doc:plugin",
"generate:hardis:doc:plugin",
"generate:doc:hardis:plugin",
"generate:doc:plugin:hardis",
"hardis:generate:plugin:doc",
"generate:hardis:plugin:doc",
"generate:plugin:hardis:doc",
"generate:plugin:doc:hardis"
]
},
"hardis:git:pull-requests:extract": {
"aliases": [],
"args": {},
"description": "Extract pull requests with filtering criteria",
"examples": [
"$ sf hardis:git:pull-requests:extract",
"$ sf hardis:git:pull-requests:extract --target-branch main --status merged"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-branch": {
"char": "t",
"description": "Target branch of PRs",
"name": "target-branch",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"status": {
"char": "x",
"description": "Status of the PR",
"name": "status",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"open",
"merged",
"abandoned"
],
"type": "option"
},
"min-date": {
"char": "m",
"description": "Minimum date for PR",
"name": "min-date",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:git:pull-requests:extract",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Extract pull requests",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"git",
"pull-requests",
"extract.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:git:pull-requests:extract",
"git:hardis:pull-requests:extract",
"git:pull-requests:hardis:extract",
"git:pull-requests:extract:hardis",
"hardis:pull-requests:git:extract",
"pull-requests:hardis:git:extract",
"pull-requests:git:hardis:extract",
"pull-requests:git:extract:hardis",
"hardis:pull-requests:extract:git",
"pull-requests:hardis:extract:git",
"pull-requests:extract:hardis:git",
"pull-requests:extract:git:hardis",
"hardis:git:extract:pull-requests",
"git:hardis:extract:pull-requests",
"git:extract:hardis:pull-requests",
"git:extract:pull-requests:hardis",
"hardis:extract:git:pull-requests",
"extract:hardis:git:pull-requests",
"extract:git:hardis:pull-requests",
"extract:git:pull-requests:hardis",
"hardis:extract:pull-requests:git",
"extract:hardis:pull-requests:git",
"extract:pull-requests:hardis:git",
"extract:pull-requests:git:hardis"
]
},
"hardis:org:community:update": {
"aliases": [],
"args": {},
"description": "Activate or deactivate a community by changing it's status:\n\n- Live\n- DownForMaintenance",
"examples": [
"$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance",
"$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"name": {
"char": "n",
"description": "List of Networks Names that you want to update, separated by comma",
"name": "name",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"status": {
"char": "s",
"description": "New status for the community, available values are: Live, DownForMaintenance",
"name": "status",
"required": true,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:community:update",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"summary": "Update a community status.",
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"community",
"update.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:community:update",
"org:hardis:community:update",
"org:community:hardis:update",
"org:community:update:hardis",
"hardis:community:org:update",
"community:hardis:org:update",
"community:org:hardis:update",
"community:org:update:hardis",
"hardis:community:update:org",
"community:hardis:update:org",
"community:update:hardis:org",
"community:update:org:hardis",
"hardis:org:update:community",
"org:hardis:update:community",
"org:update:hardis:community",
"org:update:community:hardis",
"hardis:update:org:community",
"update:hardis:org:community",
"update:org:hardis:community",
"update:org:community:hardis",
"hardis:update:community:org",
"update:hardis:community:org",
"update:community:hardis:org",
"update:community:org:hardis"
]
},
"hardis:org:configure:data": {
"aliases": [],
"args": {},
"description": "Configure Data Export/Import with a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nSee article:\n\n[](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
"examples": [
"$ sf hardis:org:configure:data"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:configure:data",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Configure Data project",
"requiresProject": false,
"requiresSfdxPlugins": [
"sfdmu"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"configure",
"data.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:configure:data",
"org:hardis:configure:data",
"org:configure:hardis:data",
"org:configure:data:hardis",
"hardis:configure:org:data",
"configure:hardis:org:data",
"configure:org:hardis:data",
"configure:org:data:hardis",
"hardis:configure:data:org",
"configure:hardis:data:org",
"configure:data:hardis:org",
"configure:data:org:hardis",
"hardis:org:data:configure",
"org:hardis:data:configure",
"org:data:hardis:configure",
"org:data:configure:hardis",
"hardis:data:org:configure",
"data:hardis:org:configure",
"data:org:hardis:configure",
"data:org:configure:hardis",
"hardis:data:configure:org",
"data:hardis:configure:org",
"data:configure:hardis:org",
"data:configure:org:hardis"
]
},
"hardis:org:configure:files": {
"aliases": [],
"args": {},
"description": "Configure export of file attachments from a Salesforce org\n\nSee article below\n\n[](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
"examples": [
"$ sf hardis:org:configure:files"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:org:configure:files",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Configure File export project",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"configure",
"files.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:configure:files",
"org:hardis:configure:files",
"org:configure:hardis:files",
"org:configure:files:hardis",
"hardis:configure:org:files",
"configure:hardis:org:files",
"configure:org:hardis:files",
"configure:org:files:hardis",
"hardis:configure:files:org",
"configure:hardis:files:org",
"configure:files:hardis:org",
"configure:files:org:hardis",
"hardis:org:files:configure",
"org:hardis:files:configure",
"org:files:hardis:configure",
"org:files:configure:hardis",
"hardis:files:org:configure",
"files:hardis:org:configure",
"files:org:hardis:configure",
"files:org:configure:hardis",
"hardis:files:configure:org",
"files:hardis:configure:org",
"files:configure:hardis:org",
"files:configure:org:hardis"
]
},
"hardis:org:configure:monitoring": {
"aliases": [],
"args": {},
"description": "Configure monitoring of an org",
"examples": [
"$ sf hardis:org:configure:monitoring"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"orginstanceurl": {
"description": "Org instance url (technical param, do not use manually)",
"name": "orginstanceurl",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:configure:monitoring",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Configure org monitoring",
"requiresProject": false,
"requiresDependencies": [
"openssl"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"configure",
"monitoring.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:configure:monitoring",
"org:hardis:configure:monitoring",
"org:configure:hardis:monitoring",
"org:configure:monitoring:hardis",
"hardis:configure:org:monitoring",
"configure:hardis:org:monitoring",
"configure:org:hardis:monitoring",
"configure:org:monitoring:hardis",
"hardis:configure:monitoring:org",
"configure:hardis:monitoring:org",
"configure:monitoring:hardis:org",
"configure:monitoring:org:hardis",
"hardis:org:monitoring:configure",
"org:hardis:monitoring:configure",
"org:monitoring:hardis:configure",
"org:monitoring:configure:hardis",
"hardis:monitoring:org:configure",
"monitoring:hardis:org:configure",
"monitoring:org:hardis:configure",
"monitoring:org:configure:hardis",
"hardis:monitoring:configure:org",
"monitoring:hardis:configure:org",
"monitoring:configure:hardis:org",
"monitoring:configure:org:hardis"
]
},
"hardis:org:data:delete": {
"aliases": [],
"args": {},
"description": "Delete records in multiple objects using SFDMU Workspace\n \nIf you need to run this command in production, you need to:\n\n- define runnableInProduction in export.json\n- define sfdmuCanModify: YOUR_INSTANCE_URL in config/branches/.sfdx-hardis.YOUR_BRANCH.yml\n",
"examples": [
"$ sf hardis:org:data:delete"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Path to the sfdmu workspace folder",
"name": "path",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:data:delete",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Delete data",
"requiresProject": false,
"requiresSfdxPlugins": [
"sfdmu"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"data",
"delete.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:data:delete",
"org:hardis:data:delete",
"org:data:hardis:delete",
"org:data:delete:hardis",
"hardis:data:org:delete",
"data:hardis:org:delete",
"data:org:hardis:delete",
"data:org:delete:hardis",
"hardis:data:delete:org",
"data:hardis:delete:org",
"data:delete:hardis:org",
"data:delete:org:hardis",
"hardis:org:delete:data",
"org:hardis:delete:data",
"org:delete:hardis:data",
"org:delete:data:hardis",
"hardis:delete:org:data",
"delete:hardis:org:data",
"delete:org:hardis:data",
"delete:org:data:hardis",
"hardis:delete:data:org",
"delete:hardis:data:org",
"delete:data:hardis:org",
"delete:data:org:hardis"
]
},
"hardis:org:data:export": {
"aliases": [],
"args": {},
"description": "Export data from an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nSee article:\n\n[](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
"examples": [
"$ sf hardis:org:data:export"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Path to the sfdmu workspace folder",
"name": "path",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:data:export",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Export data",
"requiresProject": false,
"requiresSfdxPlugins": [
"sfdmu"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"data",
"export.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:data:export",
"org:hardis:data:export",
"org:data:hardis:export",
"org:data:export:hardis",
"hardis:data:org:export",
"data:hardis:org:export",
"data:org:hardis:export",
"data:org:export:hardis",
"hardis:data:export:org",
"data:hardis:export:org",
"data:export:hardis:org",
"data:export:org:hardis",
"hardis:org:export:data",
"org:hardis:export:data",
"org:export:hardis:data",
"org:export:data:hardis",
"hardis:export:org:data",
"export:hardis:org:data",
"export:org:hardis:data",
"export:org:data:hardis",
"hardis:export:data:org",
"export:hardis:data:org",
"export:data:hardis:org",
"export:data:org:hardis"
]
},
"hardis:org:data:import": {
"aliases": [],
"args": {},
"description": "Import/Load data in an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nIf you need to run this command in a production org, you need to either:\n\n- Define **sfdmuCanModify** in your .sfdx-hardis.yml config file. (Example: `sfdmuCanModify: prod-instance.my.salesforce.com`)\n- Define an environment variable SFDMU_CAN_MODIFY. (Example: `SFDMU_CAN_MODIFY=prod-instance.my.salesforce.com`)\n\nSee article:\n\n[](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
"examples": [
"$ sf hardis:org:data:import"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Path to the sfdmu workspace folder",
"name": "path",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:data:import",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Import data",
"requiresProject": false,
"requiresSfdxPlugins": [
"sfdmu"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"data",
"import.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:data:import",
"org:hardis:data:import",
"org:data:hardis:import",
"org:data:import:hardis",
"hardis:data:org:import",
"data:hardis:org:import",
"data:org:hardis:import",
"data:org:import:hardis",
"hardis:data:import:org",
"data:hardis:import:org",
"data:import:hardis:org",
"data:import:org:hardis",
"hardis:org:import:data",
"org:hardis:import:data",
"org:import:hardis:data",
"org:import:data:hardis",
"hardis:import:org:data",
"import:hardis:org:data",
"import:org:hardis:data",
"import:org:data:hardis",
"hardis:import:data:org",
"import:hardis:data:org",
"import:data:hardis:org",
"import:data:org:hardis"
]
},
"hardis:org:files:export": {
"aliases": [],
"args": {},
"description": "Export file attachments from a Salesforce org\n\nHandles:\n\n- ContentVersion\n- Attachment\n\nSee article below:\n\n[](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
"examples": [
"$ sf hardis:org:files:export"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Path to the file export project",
"name": "path",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"chunksize": {
"char": "c",
"description": "Number of records to add in a chunk before it is processed",
"name": "chunksize",
"default": 1000,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"polltimeout": {
"char": "t",
"description": "Timeout in MS for Bulk API calls",
"name": "polltimeout",
"default": 300000,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"startchunknumber": {
"char": "s",
"description": "Chunk number to start from",
"name": "startchunknumber",
"default": 0,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:files:export",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Export files",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"files",
"export.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:files:export",
"org:hardis:files:export",
"org:files:hardis:export",
"org:files:export:hardis",
"hardis:files:org:export",
"files:hardis:org:export",
"files:org:hardis:export",
"files:org:export:hardis",
"hardis:files:export:org",
"files:hardis:export:org",
"files:export:hardis:org",
"files:export:org:hardis",
"hardis:org:export:files",
"org:hardis:export:files",
"org:export:hardis:files",
"org:export:files:hardis",
"hardis:export:org:files",
"export:hardis:org:files",
"export:org:hardis:files",
"export:org:files:hardis",
"hardis:export:files:org",
"export:hardis:files:org",
"export:files:hardis:org",
"export:files:org:hardis"
]
},
"hardis:org:files:import": {
"aliases": [],
"args": {},
"description": "Import file attachments into a Salesforce org\n\nSee article below to see how to Export them.\n\n[](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
"examples": [
"$ sf hardis:org:files:import"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Path to the file export project",
"name": "path",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"overwrite": {
"char": "f",
"description": "Override existing files (doubles the number of API calls)",
"name": "overwrite",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:files:import",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Import files",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"files",
"import.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:files:import",
"org:hardis:files:import",
"org:files:hardis:import",
"org:files:import:hardis",
"hardis:files:org:import",
"files:hardis:org:import",
"files:org:hardis:import",
"files:org:import:hardis",
"hardis:files:import:org",
"files:hardis:import:org",
"files:import:hardis:org",
"files:import:org:hardis",
"hardis:org:import:files",
"org:hardis:import:files",
"org:import:hardis:files",
"org:import:files:hardis",
"hardis:import:org:files",
"import:hardis:org:files",
"import:org:hardis:files",
"import:org:files:hardis",
"hardis:import:files:org",
"import:hardis:files:org",
"import:files:hardis:org",
"import:files:org:hardis"
]
},
"hardis:org:diagnose:audittrail": {
"aliases": [],
"args": {},
"description": "Export Audit trail into a CSV file with selected criteria, and highlight suspect actions\n\nAlso detects updates of Custom Settings values (disable by defining `SKIP_AUDIT_TRAIL_CUSTOM_SETTINGS=true`)\n\nRegular setup actions performed in major orgs are filtered.\n\n- \"\"\n - createScratchOrg\n - changedsenderemail\n - deleteScratchOrg\n - loginasgrantedtopartnerbt\n- Certificate and Key Management\n - insertCertificate\n- Custom App Licenses\n - addeduserpackagelicense\n - granteduserpackagelicense\n - revokeduserpackagelicense\n- Customer Portal\n - createdcustomersuccessuser\n - CSPUserDisabled\n- Currency\n - updateddatedexchrate\n- Data Management\n - queueMembership\n- Email Administration\n - dkimRotationPreparationSuccessful\n - dkimRotationSuccessful\n- External Objects\n - xdsEncryptedFieldChange\n- Groups\n - groupMembership\n- Holidays\n - holiday_insert\n- Inbox mobile and legacy desktop apps\n - enableSIQUserNonEAC\n - siqUserAcceptedTOS\n- Manage Users\n - activateduser\n - createduser\n - changedcommunitynickname\n - changedemail\n - changedfederationid\n - changedpassword\n - changedinteractionuseroffon\n - changedinteractionuseronoff\n - changedmarketinguseroffon\n - changedmarketinguseronoff\n - changedofflineuseroffon\n - changedprofileforuserstdtostd\n - changedprofileforuser\n - changedprofileforusercusttostd\n - changedprofileforuserstdtocust\n - changedroleforusertonone\n - changedroleforuser\n - changedroleforuserfromnone\n - changedUserAdminVerifiedStatusVerified\n - changedUserEmailVerifiedStatusUnverified\n - changedUserEmailVerifiedStatusVerified\n - changedknowledgeuseroffon\n - changedsfcontentuseroffon\n - changedsupportuseroffon\n - changedusername\n - changedUserPhoneNumber\n - changedUserPhoneVerifiedStatusUnverified\n - changedUserPhoneVerifiedStatusVerified\n - deactivateduser\n - deleteAuthenticatorPairing\n - deleteTwoFactorInfo2\n - deleteTwoFactorTempCode\n - frozeuser\n - insertAuthenticatorPairing\n - insertTwoFactorInfo2\n - insertTwoFactorTempCode\n - lightningloginenroll\n - PermSetAssign\n - PermSetGroupAssign\n - PermSetGroupUnassign\n - PermSetLicenseAssign\n - PermSetUnassign\n - PermSetLicenseUnassign\n - registeredUserPhoneNumber\n - resetpassword\n - suNetworkAdminLogin\n - suNetworkAdminLogout\n - suOrgAdminLogin\n - suOrgAdminLogout\n - unfrozeuser\n - useremailchangesent\n- Mobile Administration\n - assigneduserstomobileconfig\n- Reporting Snapshots\n - createdReportJob\n - deletedReportJob\n- Sandboxes\n - DeleteSandbox\n\nBy default, deployment user defined in .sfdx-hardis.yml targetUsername property will be excluded.\n\nYou can define additional users to exclude in .sfdx-hardis.yml **monitoringExcludeUsernames** property.\n\nYou can also add more sections / actions considered as not suspect using property **monitoringAllowedSectionsActions**\n\nExample:\n\n```yaml\nmonitoringExcludeUsernames:\n - deploymentuser@cloudity.com\n - marketingcloud@cloudity.com\n - integration-user@cloudity.com\n\nmonitoringAllowedSectionsActions:\n \"Some section\": [] // Will ignore all actions from such section\n \"Some other section\": [\"actionType1\",\"actionType2\",\"actionType3\"] // Will ignore only those 3 actions from section \"Some other section\". Other actions in the same section will be considered as suspect.\n```\n\n## Excel output example\n\n\n\n## Local output example\n\n\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-suspect-audit-trail/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:audittrail",
"$ sf hardis:org:diagnose:audittrail --excludeusers baptiste@titi.com",
"$ sf hardis:org:diagnose:audittrail --excludeusers baptiste@titi.com,bertrand@titi.com",
"$ sf hardis:org:diagnose:audittrail --lastndays 5"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"excludeusers": {
"char": "e",
"description": "Comma-separated list of usernames to exclude",
"name": "excludeusers",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"lastndays": {
"char": "t",
"description": "Number of days to extract from today (included)",
"name": "lastndays",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:audittrail",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Diagnose content of Setup Audit Trail",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"audittrail.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:audittrail",
"org:hardis:diagnose:audittrail",
"org:diagnose:hardis:audittrail",
"org:diagnose:audittrail:hardis",
"hardis:diagnose:org:audittrail",
"diagnose:hardis:org:audittrail",
"diagnose:org:hardis:audittrail",
"diagnose:org:audittrail:hardis",
"hardis:diagnose:audittrail:org",
"diagnose:hardis:audittrail:org",
"diagnose:audittrail:hardis:org",
"diagnose:audittrail:org:hardis",
"hardis:org:audittrail:diagnose",
"org:hardis:audittrail:diagnose",
"org:audittrail:hardis:diagnose",
"org:audittrail:diagnose:hardis",
"hardis:audittrail:org:diagnose",
"audittrail:hardis:org:diagnose",
"audittrail:org:hardis:diagnose",
"audittrail:org:diagnose:hardis",
"hardis:audittrail:diagnose:org",
"audittrail:hardis:diagnose:org",
"audittrail:diagnose:hardis:org",
"audittrail:diagnose:org:hardis"
]
},
"hardis:org:diagnose:instanceupgrade": {
"aliases": [],
"args": {},
"description": "Get the date when the org instance will be upgraded (to Spring, Summer or Winter)\n ",
"examples": [
"$ sf hardis:org:diagnose:instanceupgrade"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:instanceupgrade",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Get Instance Upgrade date",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"instanceupgrade.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:instanceupgrade",
"org:hardis:diagnose:instanceupgrade",
"org:diagnose:hardis:instanceupgrade",
"org:diagnose:instanceupgrade:hardis",
"hardis:diagnose:org:instanceupgrade",
"diagnose:hardis:org:instanceupgrade",
"diagnose:org:hardis:instanceupgrade",
"diagnose:org:instanceupgrade:hardis",
"hardis:diagnose:instanceupgrade:org",
"diagnose:hardis:instanceupgrade:org",
"diagnose:instanceupgrade:hardis:org",
"diagnose:instanceupgrade:org:hardis",
"hardis:org:instanceupgrade:diagnose",
"org:hardis:instanceupgrade:diagnose",
"org:instanceupgrade:hardis:diagnose",
"org:instanceupgrade:diagnose:hardis",
"hardis:instanceupgrade:org:diagnose",
"instanceupgrade:hardis:org:diagnose",
"instanceupgrade:org:hardis:diagnose",
"instanceupgrade:org:diagnose:hardis",
"hardis:instanceupgrade:diagnose:org",
"instanceupgrade:hardis:diagnose:org",
"instanceupgrade:diagnose:hardis:org",
"instanceupgrade:diagnose:org:hardis"
]
},
"hardis:org:diagnose:legacyapi": {
"aliases": [],
"args": {},
"description": "Checks if an org uses retired or someday retired API version\n\n\nSee article below\n\n[](https://nicolas.vuillamy.fr/handle-salesforce-api-versions-deprecation-like-a-pro-335065f52238)\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-deprecated-api-calls/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:legacyapi",
"$ sf hardis:org:diagnose:legacyapi -u hardis@myclient.com",
"$ sf hardis:org:diagnose:legacyapi --outputfile 'c:/path/to/folder/legacyapi.csv'",
"$ sf hardis:org:diagnose:legacyapi -u hardis@myclient.com --outputfile ./tmp/legacyapi.csv"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"eventtype": {
"char": "e",
"description": "Type of EventLogFile event to analyze",
"name": "eventtype",
"default": "ApiTotalUsage",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"limit": {
"char": "l",
"description": "Number of latest EventLogFile events to analyze",
"name": "limit",
"default": 999,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:legacyapi",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Check for legacy API use",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"legacyapi.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:legacyapi",
"org:hardis:diagnose:legacyapi",
"org:diagnose:hardis:legacyapi",
"org:diagnose:legacyapi:hardis",
"hardis:diagnose:org:legacyapi",
"diagnose:hardis:org:legacyapi",
"diagnose:org:hardis:legacyapi",
"diagnose:org:legacyapi:hardis",
"hardis:diagnose:legacyapi:org",
"diagnose:hardis:legacyapi:org",
"diagnose:legacyapi:hardis:org",
"diagnose:legacyapi:org:hardis",
"hardis:org:legacyapi:diagnose",
"org:hardis:legacyapi:diagnose",
"org:legacyapi:hardis:diagnose",
"org:legacyapi:diagnose:hardis",
"hardis:legacyapi:org:diagnose",
"legacyapi:hardis:org:diagnose",
"legacyapi:org:hardis:diagnose",
"legacyapi:org:diagnose:hardis",
"hardis:legacyapi:diagnose:org",
"legacyapi:hardis:diagnose:org",
"legacyapi:diagnose:hardis:org",
"legacyapi:diagnose:org:hardis"
]
},
"hardis:org:diagnose:licenses": {
"aliases": [],
"args": {},
"description": "Mostly used for monitoring (Grafana) but you can also use it manually :)",
"examples": [
"$ sf hardis:org:diagnose:licenses"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"usedonly": {
"char": "u",
"description": "Filter to have only used licenses",
"name": "usedonly",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:licenses",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "List licenses subscribed and used in a Salesforce org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"licenses.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:licenses",
"org:hardis:diagnose:licenses",
"org:diagnose:hardis:licenses",
"org:diagnose:licenses:hardis",
"hardis:diagnose:org:licenses",
"diagnose:hardis:org:licenses",
"diagnose:org:hardis:licenses",
"diagnose:org:licenses:hardis",
"hardis:diagnose:licenses:org",
"diagnose:hardis:licenses:org",
"diagnose:licenses:hardis:org",
"diagnose:licenses:org:hardis",
"hardis:org:licenses:diagnose",
"org:hardis:licenses:diagnose",
"org:licenses:hardis:diagnose",
"org:licenses:diagnose:hardis",
"hardis:licenses:org:diagnose",
"licenses:hardis:org:diagnose",
"licenses:org:hardis:diagnose",
"licenses:org:diagnose:hardis",
"hardis:licenses:diagnose:org",
"licenses:hardis:diagnose:org",
"licenses:diagnose:hardis:org",
"licenses:diagnose:org:hardis"
]
},
"hardis:org:diagnose:releaseupdates": {
"aliases": [],
"args": {},
"description": "Export Release Updates into a CSV file with selected criteria, and highlight Release Updates that should be checked.\n\nBefore publishing **Breaking Changes** ❌, Salesforce announce them in the setup menu [**Release Updates**](https://help.salesforce.com/s/articleView?id=sf.release_updates.htm&type=5)\n\n⚠️ Some of them are very important, because if you don't make the related upgrades in time (ex: before Winter 25) , your production org can crash !\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-release-updates/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:releaseupdates"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:releaseupdates",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Check Release Updates of an org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"releaseupdates.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:releaseupdates",
"org:hardis:diagnose:releaseupdates",
"org:diagnose:hardis:releaseupdates",
"org:diagnose:releaseupdates:hardis",
"hardis:diagnose:org:releaseupdates",
"diagnose:hardis:org:releaseupdates",
"diagnose:org:hardis:releaseupdates",
"diagnose:org:releaseupdates:hardis",
"hardis:diagnose:releaseupdates:org",
"diagnose:hardis:releaseupdates:org",
"diagnose:releaseupdates:hardis:org",
"diagnose:releaseupdates:org:hardis",
"hardis:org:releaseupdates:diagnose",
"org:hardis:releaseupdates:diagnose",
"org:releaseupdates:hardis:diagnose",
"org:releaseupdates:diagnose:hardis",
"hardis:releaseupdates:org:diagnose",
"releaseupdates:hardis:org:diagnose",
"releaseupdates:org:hardis:diagnose",
"releaseupdates:org:diagnose:hardis",
"hardis:releaseupdates:diagnose:org",
"releaseupdates:hardis:diagnose:org",
"releaseupdates:diagnose:hardis:org",
"releaseupdates:diagnose:org:hardis"
]
},
"hardis:org:diagnose:unused-apex-classes": {
"aliases": [],
"args": {},
"description": "List all async Apex classes (Batch,Queueable,Schedulable) that has not been called for more than 365 days.\n \nThe result class list probably can be removed from the project, and that will improve your test classes performances :)\n\nThe number of unused day is overridable using --days option. \n\nThe command uses queries on AsyncApexJob and CronTrigger technical tables to build the result.\n\nApex Classes CreatedBy and CreatedOn fields are calculated from MIN(date from git, date from org)\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-unused-apex-classes/) and can output Grafana, Slack and MsTeams Notifications.\n\n\n",
"examples": [
"$ sf hardis:org:diagnose:unused-apex-classes",
"$ sf hardis:org:diagnose:unused-apex-classes --days 700"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"days": {
"char": "t",
"description": "Extracts the users that have been inactive for the amount of days specified. In CI, default is 180 days",
"name": "days",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:unused-apex-classes",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Detect unused Apex classes in an org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"unused-apex-classes.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:unused-apex-classes",
"org:hardis:diagnose:unused-apex-classes",
"org:diagnose:hardis:unused-apex-classes",
"org:diagnose:unused-apex-classes:hardis",
"hardis:diagnose:org:unused-apex-classes",
"diagnose:hardis:org:unused-apex-classes",
"diagnose:org:hardis:unused-apex-classes",
"diagnose:org:unused-apex-classes:hardis",
"hardis:diagnose:unused-apex-classes:org",
"diagnose:hardis:unused-apex-classes:org",
"diagnose:unused-apex-classes:hardis:org",
"diagnose:unused-apex-classes:org:hardis",
"hardis:org:unused-apex-classes:diagnose",
"org:hardis:unused-apex-classes:diagnose",
"org:unused-apex-classes:hardis:diagnose",
"org:unused-apex-classes:diagnose:hardis",
"hardis:unused-apex-classes:org:diagnose",
"unused-apex-classes:hardis:org:diagnose",
"unused-apex-classes:org:hardis:diagnose",
"unused-apex-classes:org:diagnose:hardis",
"hardis:unused-apex-classes:diagnose:org",
"unused-apex-classes:hardis:diagnose:org",
"unused-apex-classes:diagnose:hardis:org",
"unused-apex-classes:diagnose:org:hardis"
]
},
"hardis:org:diagnose:unused-connected-apps": {
"aliases": [],
"args": {},
"description": "Request objects ConnectedApp, LoginHistory and OAuthToken to find which connected apps might not be used anymore, and could be deleted for security / technical debt reasons.\n\nCheck with Connected Apps metadatas if the app is still active (inactive = \"Admin Users are pre-authorized + no Profile or Permission set assigned\")\n\nThe following default Salesforce Connected Apps are ignored:\n\n- Ant Migration Tool\n- Chatter Desktop\n- Chatter Mobile for BlackBerry\n- Force.com IDE\n- OIQ_Integration\n- Salesforce CLI\n- Salesforce Files\n- Salesforce Mobile Dashboards\n- Salesforce Touch\n- Salesforce for Outlook\n- SalesforceA\n- SalesforceA for Android\n- SalesforceA for iOS\n- SalesforceDX Namespace Registry\n- SalesforceIQ\n\nYou can add more ignored apps by defining a comma-separated list of names in variable ALLOWED_INACTIVE_CONNECTED_APPS\n\n_Example: ALLOWED_INACTIVE_CONNECTED_APPS=My App 1,My App 2, My App 3_\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-release-updates/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:unused-connected-apps"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:unused-connected-apps",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Unused Connected Apps in an org",
"allowedInactiveConnectedApps": [
"Ant Migration Tool",
"Chatter Desktop",
"Chatter Mobile for BlackBerry",
"Force.com IDE",
"OIQ_Integration",
"Salesforce CLI",
"Salesforce Files",
"Salesforce Mobile Dashboards",
"Salesforce Touch",
"Salesforce for Outlook",
"SalesforceA",
"SalesforceA for Android",
"SalesforceA for iOS",
"SalesforceDX Namespace Registry",
"SalesforceIQ"
],
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"unused-connected-apps.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:unused-connected-apps",
"org:hardis:diagnose:unused-connected-apps",
"org:diagnose:hardis:unused-connected-apps",
"org:diagnose:unused-connected-apps:hardis",
"hardis:diagnose:org:unused-connected-apps",
"diagnose:hardis:org:unused-connected-apps",
"diagnose:org:hardis:unused-connected-apps",
"diagnose:org:unused-connected-apps:hardis",
"hardis:diagnose:unused-connected-apps:org",
"diagnose:hardis:unused-connected-apps:org",
"diagnose:unused-connected-apps:hardis:org",
"diagnose:unused-connected-apps:org:hardis",
"hardis:org:unused-connected-apps:diagnose",
"org:hardis:unused-connected-apps:diagnose",
"org:unused-connected-apps:hardis:diagnose",
"org:unused-connected-apps:diagnose:hardis",
"hardis:unused-connected-apps:org:diagnose",
"unused-connected-apps:hardis:org:diagnose",
"unused-connected-apps:org:hardis:diagnose",
"unused-connected-apps:org:diagnose:hardis",
"hardis:unused-connected-apps:diagnose:org",
"unused-connected-apps:hardis:diagnose:org",
"unused-connected-apps:diagnose:hardis:org",
"unused-connected-apps:diagnose:org:hardis"
]
},
"hardis:org:diagnose:unusedlicenses": {
"aliases": [],
"args": {},
"description": "When you assign a Permission Set to a user, and that this Permission Set is related to a Permission Set License, a Permission Set License Assignment is automatically created for the user.\n\nBut when you unassign this Permission Set from the user, **the Permission Set License Assignment is not deleted**.\n\nThis leads that you can be **charged for Permission Set Licenses that are not used** !\n\nThis command detects such useless Permission Set Licenses Assignments and suggests to delete them.\n\nMany thanks to [Vincent Finet](https://www.linkedin.com/in/vincentfinet/) for the inspiration during his great speaker session at [French Touch Dreamin '23](https://frenchtouchdreamin.com/), and his kind agreement for reusing such inspiration in this command :)\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-unused-licenses/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:unusedlicenses",
"$ sf hardis:org:diagnose:unusedlicenses --fix"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:unusedlicenses",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Detect unused Permission Set Licenses (beta)",
"requiresProject": false,
"additionalPermissionSetsToAlwaysGet": [
"Sales_User"
],
"permSetsPermSetLicenses": [
{
"permSet": "Sales_User",
"permSetLicense": "SalesUserPsl"
}
],
"profilesPermissionSetLicenses": [
{
"profile": "Salesforce API Only",
"permSetLicense": "SalesforceAPIIntegrationPsl"
}
],
"alwaysExcludeForActiveUsersPermissionSetLicenses": [
"IdentityConnect"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"unusedlicenses.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:unusedlicenses",
"org:hardis:diagnose:unusedlicenses",
"org:diagnose:hardis:unusedlicenses",
"org:diagnose:unusedlicenses:hardis",
"hardis:diagnose:org:unusedlicenses",
"diagnose:hardis:org:unusedlicenses",
"diagnose:org:hardis:unusedlicenses",
"diagnose:org:unusedlicenses:hardis",
"hardis:diagnose:unusedlicenses:org",
"diagnose:hardis:unusedlicenses:org",
"diagnose:unusedlicenses:hardis:org",
"diagnose:unusedlicenses:org:hardis",
"hardis:org:unusedlicenses:diagnose",
"org:hardis:unusedlicenses:diagnose",
"org:unusedlicenses:hardis:diagnose",
"org:unusedlicenses:diagnose:hardis",
"hardis:unusedlicenses:org:diagnose",
"unusedlicenses:hardis:org:diagnose",
"unusedlicenses:org:hardis:diagnose",
"unusedlicenses:org:diagnose:hardis",
"hardis:unusedlicenses:diagnose:org",
"unusedlicenses:hardis:diagnose:org",
"unusedlicenses:diagnose:hardis:org",
"unusedlicenses:diagnose:org:hardis"
]
},
"hardis:org:diagnose:unusedusers": {
"aliases": [],
"args": {},
"description": "Efficient user management is vital in Salesforce to ensure resources are optimized and costs are controlled. However, inactive or unused user accounts can often go unnoticed, leading to wasted licenses and potential security risks. This tool addresses this challenge by enabling administrators to identify users who haven't logged in within a specified period.\n\nBy analyzing user login activity and last login timestamps, this feature highlights inactive user accounts, allowing administrators to take appropriate action. Whether it's deactivating dormant accounts, freeing up licenses, or ensuring compliance with security policies, this functionality empowers administrators to maintain a lean and secure Salesforce environment.\n\nlicensetypes values are the following:\n\n- all-crm: SFDC,AUL,AUL1,AULL_IGHT\n\n- all-paying: SFDC,AUL,AUL1,AULL_IGHT,PID_Customer_Community,PID_Customer_Community_Login,PID_Partner_Community,PID_Partner_Community_Login\n\nNote: You can see the full list of available license identifiers in [Salesforce Documentation](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_userlicense.htm)\n\nUse --returnactiveusers to revert the command and retrieve active users that has logged in during the period.\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-inactive-users/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:diagnose:unusedusers",
"$ sf hardis:org:diagnose:unusedusers --days 365",
"$ sf hardis:org:diagnose:unusedusers --days 60 --licensetypes all-crm",
"$ sf hardis:org:diagnose:unusedusers --days 60 --licenseidentifiers SFDC,AUL,AUL1",
"$ sf hardis:org:diagnose:unusedusers --days 60 --licensetypes all-crm --returnactiveusers"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"days": {
"char": "t",
"description": "Extracts the users that have been inactive for the amount of days specified. In CI, default is 180 days",
"name": "days",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"licensetypes": {
"char": "l",
"description": "Type of licenses to check. If set, do not use licenseidentifiers option. In CI, default is all-crm",
"name": "licensetypes",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"all",
"all-crm",
"all-paying"
],
"type": "option"
},
"licenseidentifiers": {
"char": "i",
"description": "Comma-separated list of license identifiers, in case licensetypes is not used.. Identifiers available at https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_userlicense.htm",
"name": "licenseidentifiers",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"returnactiveusers": {
"description": "Inverts the command by returning the active users",
"name": "returnactiveusers",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:diagnose:unusedusers",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Detect unused Users in Salesforce",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"diagnose",
"unusedusers.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:diagnose:unusedusers",
"org:hardis:diagnose:unusedusers",
"org:diagnose:hardis:unusedusers",
"org:diagnose:unusedusers:hardis",
"hardis:diagnose:org:unusedusers",
"diagnose:hardis:org:unusedusers",
"diagnose:org:hardis:unusedusers",
"diagnose:org:unusedusers:hardis",
"hardis:diagnose:unusedusers:org",
"diagnose:hardis:unusedusers:org",
"diagnose:unusedusers:hardis:org",
"diagnose:unusedusers:org:hardis",
"hardis:org:unusedusers:diagnose",
"org:hardis:unusedusers:diagnose",
"org:unusedusers:hardis:diagnose",
"org:unusedusers:diagnose:hardis",
"hardis:unusedusers:org:diagnose",
"unusedusers:hardis:org:diagnose",
"unusedusers:org:hardis:diagnose",
"unusedusers:org:diagnose:hardis",
"hardis:unusedusers:diagnose:org",
"unusedusers:hardis:diagnose:org",
"unusedusers:diagnose:hardis:org",
"unusedusers:diagnose:org:hardis"
]
},
"hardis:org:fix:listviewmine": {
"aliases": [],
"args": {},
"description": "Fix listviews whose scope Mine has been replaced by Everything\n\n[](https://nicolas.vuillamy.fr/invalid-scope-mine-not-allowed-deploy-your-listviews-anyway-443aceca8ac7)\n\nList of ListViews can be:\n\n- read from .sfdx-hardis.yml file in property **listViewsToSetToMine**\n- sent in argument listviews\n\nNote: property **listViewsToSetToMine** can be auto-generated by command hardis:work:save if .sfdx-hardis.yml contains the following configuration\n\n```yaml\nautoCleanTypes:\n - listViewsMine\n```\n\n- Example of sfdx-hardis.yml property `listViewsToSetToMine`:\n\n```yaml\nlistViewsToSetToMine:\n - \"force-app/main/default/objects/Operation__c/listViews/MyCurrentOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Operation__c/listViews/MyFinalizedOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/Default_Opportunity_Pipeline.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MyCurrentSubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MySubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Account/listViews/MyActivePartners.listView-meta.xml\"\n```\n\n- If manually written, this could also be:\n\n```yaml\nlistViewsToSetToMine:\n - \"Operation__c:MyCurrentOperations\"\n - \"Operation__c:MyFinalizedOperations\"\n - \"Opportunity:Default_Opportunity_Pipeline\"\n - \"Opportunity:MyCurrentSubscriptions\"\n - \"Opportunity:MySubscriptions\"\n - \"Account:MyActivePartners\"\n```\n\nTroubleshooting: if you need to run this command from an alpine-linux based docker image, use this workaround in your dockerfile:\n\n```dockerfile\n# Do not use puppeteer embedded chromium\nRUN apk add --update --no-cache chromium\nENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=\"true\"\nENV CHROMIUM_PATH=\"/usr/bin/chromium-browser\"\nENV PUPPETEER_EXECUTABLE_PATH=\"$\\{CHROMIUM_PATH}\" // remove \\ before {\n```\n",
"examples": [
"$ sf hardis:org:fix:listviewmine",
"$ sf hardis:org:fix:listviewmine --listviews Opportunity:MySubscriptions,Account:MyActivePartners"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"listviews": {
"char": "l",
"description": "Comma-separated list of listviews following format Object:ListViewName\nExample: Contact:MyContacts,Contact:MyActiveContacts,Opportunity:MYClosedOpportunities",
"name": "listviews",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:fix:listviewmine",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Fix listviews with ",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"fix",
"listviewmine.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:fix:listviewmine",
"org:hardis:fix:listviewmine",
"org:fix:hardis:listviewmine",
"org:fix:listviewmine:hardis",
"hardis:fix:org:listviewmine",
"fix:hardis:org:listviewmine",
"fix:org:hardis:listviewmine",
"fix:org:listviewmine:hardis",
"hardis:fix:listviewmine:org",
"fix:hardis:listviewmine:org",
"fix:listviewmine:hardis:org",
"fix:listviewmine:org:hardis",
"hardis:org:listviewmine:fix",
"org:hardis:listviewmine:fix",
"org:listviewmine:hardis:fix",
"org:listviewmine:fix:hardis",
"hardis:listviewmine:org:fix",
"listviewmine:hardis:org:fix",
"listviewmine:org:hardis:fix",
"listviewmine:org:fix:hardis",
"hardis:listviewmine:fix:org",
"listviewmine:hardis:fix:org",
"listviewmine:fix:hardis:org",
"listviewmine:fix:org:hardis"
]
},
"hardis:org:generate:packagexmlfull": {
"aliases": [],
"args": {},
"description": "Generates full org package.xml, including managed items",
"examples": [
"$ sf hardis:org:generate:packagexmlfull",
"$ sf hardis:org:generate:packagexmlfull --outputfile /tmp/packagexmlfull.xml",
"$ sf hardis:org:generate:packagexmlfull --target-org nico@example.com"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"description": "Output package.xml file",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:generate:packagexmlfull",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Generate Full Org package.xml",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"generate",
"packagexmlfull.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:generate:packagexmlfull",
"org:hardis:generate:packagexmlfull",
"org:generate:hardis:packagexmlfull",
"org:generate:packagexmlfull:hardis",
"hardis:generate:org:packagexmlfull",
"generate:hardis:org:packagexmlfull",
"generate:org:hardis:packagexmlfull",
"generate:org:packagexmlfull:hardis",
"hardis:generate:packagexmlfull:org",
"generate:hardis:packagexmlfull:org",
"generate:packagexmlfull:hardis:org",
"generate:packagexmlfull:org:hardis",
"hardis:org:packagexmlfull:generate",
"org:hardis:packagexmlfull:generate",
"org:packagexmlfull:hardis:generate",
"org:packagexmlfull:generate:hardis",
"hardis:packagexmlfull:org:generate",
"packagexmlfull:hardis:org:generate",
"packagexmlfull:org:hardis:generate",
"packagexmlfull:org:generate:hardis",
"hardis:packagexmlfull:generate:org",
"packagexmlfull:hardis:generate:org",
"packagexmlfull:generate:hardis:org",
"packagexmlfull:generate:org:hardis"
]
},
"hardis:org:monitor:all": {
"aliases": [],
"args": {},
"description": "Monitor org, generate reports and sends notifications\n\nYou can disable some commands defining either a **monitoringDisable** property in `.sfdx-hardis.yml`, or a comma separated list in env variable **MONITORING_DISABLE**\n\nExample in .sfdx-hardis.yml:\n \n```yaml\nmonitoringDisable:\n - METADATA_STATUS\n - MISSING_ATTRIBUTES\n - UNUSED_METADATAS\n```\n \nExample in env var:\n\n```sh\nMONITORING_DISABLE=METADATA_STATUS,MISSING_ATTRIBUTES,UNUSED_METADATAS\n```\n\nA [default list of monitoring commands](https://sfdx-hardis.cloudity.com/salesforce-monitoring-home/#monitoring-commands) is used, if you want to override it you can define property **monitoringCommands** in your .sfdx-hardis.yml file\n\nExample:\n\n```yaml\nmonitoringCommands:\n - title: My Custom command\n command: sf my:custom:command\n - title: My Custom command 2\n command: sf my:other:custom:command\n```\n\nYou can force the daily run of all commands by defining env var `MONITORING_IGNORE_FREQUENCY=true`\n\nThe default list of commands is the following:\n\n| Key | Description | Command | Frequency |\n| :---: | :---- | :---- | :-----: |\n| [AUDIT_TRAIL](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/audittrail) | Detect suspect setup actions in major org | [sf hardis:org:diagnose:audittrail](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/audittrail) | daily |\n| [LEGACY_API](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/legacyapi) | Detect calls to deprecated API versions | [sf hardis:org:diagnose:legacyapi](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/legacyapi) | daily |\n| [ORG_LIMITS](https://sfdx-hardis.cloudity.com/hardis/org/monitor/limits) | Detect if org limits are close to be reached | [sf hardis:org:monitor:limits](https://sfdx-hardis.cloudity.com/hardis/org/monitor/limits) | daily |\n| [LICENSES](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/licenses) | Extract licenses information | [sf hardis:org:diagnose:licenses](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/licenses) | weekly |\n| [LINT_ACCESS](https://sfdx-hardis.cloudity.com/hardis/lint/access) | Detect custom elements with no access rights defined in permission sets | [sf hardis:lint:access](https://sfdx-hardis.cloudity.com/hardis/lint/access) | weekly |\n| [UNUSED_LICENSES](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedlicenses) | Detect permission set licenses that are assigned to users that do not need them | [sf hardis:org:diagnose:unusedlicenses](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedlicenses) | weekly |\n| [UNUSED_USERS](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedusers) | Detect active users without recent logins | [sf hardis:org:diagnose:unusedusers](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedusers) | weekly |\n| [ACTIVE_USERS](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedusers) | Detect active users with recent logins | [sf hardis:org:diagnose:unusedusers --returnactiveusers](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unusedusers) | weekly |\n| [ORG_INFO](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/instanceupgrade) | Get org info + SF instance info + next major upgrade date | [sf hardis:org:diagnose:instanceupgrade](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/instanceupgrade) | weekly |\n| [RELEASE_UPDATES](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/releaseupdates) | Gather warnings about incoming and overdue Release Updates | [sf hardis:org:diagnose:releaseupdates](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/releaseupdates) | weekly |\n| [UNUSED_METADATAS](https://sfdx-hardis.cloudity.com/hardis/lint/unusedmetadatas) | Detect custom labels and custom permissions that are not in use | [sf hardis:lint:unusedmetadatas](https://sfdx-hardis.cloudity.com/hardis/lint/unusedmetadatas) | weekly |\n| [UNUSED_APEX_CLASSES](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unused-apex-classes) | Detect unused Apex classes in an org | [sf hardis:org:diagnose:unused-apex-classes](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unused-apex-classes) | weekly |\n| [CONNECTED_APPS](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unused-connected-apps) | Detect unused Connected Apps in an org | [sf hardis:org:diagnose:unused-connected-apps](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unused-connected-apps) | weekly |\n| [METADATA_STATUS](https://sfdx-hardis.cloudity.com/hardis/lint/metadatastatus) | Detect inactive metadata | [sf hardis:lint:metadatastatus](https://sfdx-hardis.cloudity.com/hardis/lint/metadatastatus) | weekly |\n| [MISSING_ATTRIBUTES](https://sfdx-hardis.cloudity.com/hardis/lint/missingattributes) | Detect missing description on custom field | [sf hardis:lint:missingattributes](https://sfdx-hardis.cloudity.com/hardis/lint/missingattributes) | weekly |\n\n",
"examples": [
"$ sf hardis:org:monitor:all"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:monitor:all",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Monitor org",
"monitoringCommandsDefault": [
{
"key": "AUDIT_TRAIL",
"title": "Detect suspect setup actions in major org",
"command": "sf hardis:org:diagnose:audittrail",
"frequency": "daily"
},
{
"key": "LEGACY_API",
"title": "Detect calls to deprecated API versions",
"command": "sf hardis:org:diagnose:legacyapi",
"frequency": "daily"
},
{
"key": "ORG_LIMITS",
"title": "Detect if org limits are close to be reached",
"command": "sf hardis:org:monitor:limits",
"frequency": "daily"
},
{
"key": "LICENSES",
"title": "Extract licenses information",
"command": "sf hardis:org:diagnose:licenses",
"frequency": "weekly"
},
{
"key": "LINT_ACCESS",
"title": "Detect custom elements with no access rights defined in permission sets",
"command": "sf hardis:lint:access",
"frequency": "weekly"
},
{
"key": "UNUSED_LICENSES",
"title": "Detect permission set licenses that are assigned to users that do not need them",
"command": "sf hardis:org:diagnose:unusedlicenses",
"frequency": "weekly"
},
{
"key": "UNUSED_USERS",
"title": "Detect active users without recent logins",
"command": "sf hardis:org:diagnose:unusedusers",
"frequency": "weekly"
},
{
"key": "ACTIVE_USERS",
"title": "Detect active users with recent logins",
"command": "sf hardis:org:diagnose:unusedusers --returnactiveusers",
"frequency": "weekly"
},
{
"key": "ORG_INFO",
"title": "Get org info + SF instance info + next major upgrade date",
"command": "sf hardis:org:diagnose:instanceupgrade",
"frequency": "weekly"
},
{
"key": "RELEASE_UPDATES",
"title": "Gather warnings about incoming and overdue Release Updates",
"command": "sf hardis:org:diagnose:releaseupdates",
"frequency": "weekly"
},
{
"key": "UNUSED_METADATAS",
"title": "Detect custom labels and custom permissions that are not in use",
"command": "sf hardis:lint:unusedmetadatas",
"frequency": "weekly"
},
{
"key": "UNUSED_APEX_CLASSES",
"title": "Detect unused Apex classes in an org",
"command": "sf hardis:org:diagnose:unused-apex-classes",
"frequency": "weekly"
},
{
"key": "CONNECTED_APPS",
"title": "Detect unused Connected Apps in an org",
"command": "sf hardis:org:diagnose:unused-connected-apps",
"frequency": "weekly"
},
{
"key": "METADATA_STATUS",
"title": "Detect inactive metadata",
"command": "sf hardis:lint:metadatastatus",
"frequency": "weekly"
},
{
"key": "MISSING_ATTRIBUTES",
"title": "Detect missing description on custom field",
"command": "sf hardis:lint:missingattributes",
"frequency": "weekly"
}
],
"requiresProject": true,
"triggerNotification": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"monitor",
"all.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:monitor:all",
"org:hardis:monitor:all",
"org:monitor:hardis:all",
"org:monitor:all:hardis",
"hardis:monitor:org:all",
"monitor:hardis:org:all",
"monitor:org:hardis:all",
"monitor:org:all:hardis",
"hardis:monitor:all:org",
"monitor:hardis:all:org",
"monitor:all:hardis:org",
"monitor:all:org:hardis",
"hardis:org:all:monitor",
"org:hardis:all:monitor",
"org:all:hardis:monitor",
"org:all:monitor:hardis",
"hardis:all:org:monitor",
"all:hardis:org:monitor",
"all:org:hardis:monitor",
"all:org:monitor:hardis",
"hardis:all:monitor:org",
"all:hardis:monitor:org",
"all:monitor:hardis:org",
"all:monitor:org:hardis"
]
},
"hardis:org:monitor:backup": {
"aliases": [],
"args": {},
"description": "Retrieve sfdx sources in the context of a monitoring backup\n\nThe command exists in 2 modes: filtered(default & recommended) and full.\n\n## Filtered mode (default, better performances)\n\nAutomatically skips metadatas from installed packages with namespace. \n\nYou can remove more metadata types from backup, especially in case you have too many metadatas and that provokes a crash, using:\n\n- Manual update of `manifest/package-skip-items.xml` config file (then commit & push in the same branch)\n\n - Works with full wildcard (`<members>*</members>`) , named metadata (`<members>Account.Name</members>`) or partial wildcards names (`<members>pi__*</members>` , `<members>*__dlm</members>` , or `<members>prefix*suffix</members>`)\n\n- Environment variable MONITORING_BACKUP_SKIP_METADATA_TYPES (example: `MONITORING_BACKUP_SKIP_METADATA_TYPES=CustomLabel,StaticResource,Translation`): that will be applied to all monitoring branches.\n\n## Full mode\n\nActivate it with **--full** parameter, or variable MONITORING_BACKUP_MODE_FULL=true\n\nIgnores filters (namespaces items & manifest/package-skip-items.xml) to retrieve ALL metadatas, including those you might not care about (reports, translations...)\n\nAs we can retrieve only 10000 files by call, the list of all metadatas will be chunked to make multiple calls (and take more time than filtered mode)\n\n- if you use `--full-apply-filters` , manifest/package-skip-items.xml and MONITORING_BACKUP_SKIP_METADATA_TYPES filters will be applied anyway\n- if you use `--exclude-namespaces` , namespaced items will be ignored\n\n_With those both options, it's like if you are not using --full, but with chunked metadata download_\n\n## In CI/CD\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-metadata-backup/) and can output Grafana, Slack and MsTeams Notifications.\n\n## Troubleshooting\n\nIf you have unknown errors (it happens !), you can investigate using the full command with smaller chunks.\n\nExample: `sf hardis:org:monitor:backup --full --exclude-namespaces --full-apply-filters --max-by-chunk 500`\n\nIt will allow you the identify the responsible metadata and ignore it using package-skip-items.xml or MONITORING_BACKUP_SKIP_METADATA_TYPES env variable.\n\n## Documentation\n\n[Doc generation (including visual flows)](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/) is triggered at the end of the command.\n\nIf you want to also upload HTML Documentation on your Salesforce Org as static resource, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_ORG=\"true\"**\n\nIf you want to also upload HTML Documentation on Cloudflare, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_CLOUDFLARE=\"true\"**\n\n- If you want to generate the documentation in multiple languages, define variable SFDX_DOC_LANGUAGES (ex: SFDX_DOC_LANGUAGES=en,fr,de)\n- You can define one Cloudflare site by language, for example with the following variables:\n - CLOUDFLARE_PROJECT_NAME_EN=cloudity-demo-english\n - CLOUDFLARE_PROJECT_NAME_FR=cloudity-demo-french\n - CLOUDFLARE_PROJECT_NAME_DE=cloudity-demo-german\n\nIf Flow history doc always display a single state, you probably need to update your workflow configuration:\n\n- on Gitlab: Env variable [`GIT_FETCH_EXTRA_FLAGS: --depth 10000`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.gitlab-ci.yml#L11)\n- on GitHub: [`fetch-depth: 0`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.github/workflows/org-monitoring.yml#L58)\n- on Azure: [`fetchDepth: \"0\"`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/azure-pipelines.yml#L39)\n- on Bitbucket: [`step: clone: depth: full`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/bitbucket-pipelines.yml#L18)\n",
"examples": [
"$ sf hardis:org:monitor:backup",
"$ sf hardis:org:monitor:backup --full",
"$ sf hardis:org:monitor:backup --full --exclude-namespaces",
"$ sf hardis:org:monitor:backup --full --exclude-namespaces --full-apply-filters"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"full": {
"description": "Dot not take in account filtering using package-skip-items.xml and MONITORING_BACKUP_SKIP_METADATA_TYPES. Efficient but much much slower !",
"name": "full",
"allowNo": false,
"type": "boolean"
},
"max-by-chunk": {
"char": "m",
"description": "If mode --full is activated, maximum number of metadatas in a package.xml chunk",
"name": "max-by-chunk",
"default": 3000,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"exclude-namespaces": {
"char": "e",
"description": "If mode --full is activated, exclude namespaced metadatas",
"name": "exclude-namespaces",
"allowNo": false,
"type": "boolean"
},
"full-apply-filters": {
"char": "z",
"description": "If mode --full is activated, apply filters of manifest/package-skip-items.xml and MONITORING_BACKUP_SKIP_METADATA_TYPES anyway",
"name": "full-apply-filters",
"allowNo": false,
"type": "boolean"
},
"start-chunk": {
"description": "Use this parameter to troubleshoot a specific chunk. It will be used as the first chunk to retrieve",
"name": "start-chunk",
"default": 1,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skip-doc": {
"description": "Skip the generation of project documentation at the end of the command",
"name": "skip-doc",
"allowNo": false,
"type": "boolean"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:monitor:backup",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Backup DX sources",
"requiresProject": true,
"triggerNotification": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"monitor",
"backup.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:monitor:backup",
"org:hardis:monitor:backup",
"org:monitor:hardis:backup",
"org:monitor:backup:hardis",
"hardis:monitor:org:backup",
"monitor:hardis:org:backup",
"monitor:org:hardis:backup",
"monitor:org:backup:hardis",
"hardis:monitor:backup:org",
"monitor:hardis:backup:org",
"monitor:backup:hardis:org",
"monitor:backup:org:hardis",
"hardis:org:backup:monitor",
"org:hardis:backup:monitor",
"org:backup:hardis:monitor",
"org:backup:monitor:hardis",
"hardis:backup:org:monitor",
"backup:hardis:org:monitor",
"backup:org:hardis:monitor",
"backup:org:monitor:hardis",
"hardis:backup:monitor:org",
"backup:hardis:monitor:org",
"backup:monitor:hardis:org",
"backup:monitor:org:hardis"
]
},
"hardis:org:monitor:limits": {
"aliases": [],
"args": {},
"description": "Check limits of a SF org and send notifications about limits are superior to 50%, 75% or 100%.\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-org-limits/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:monitor:limits"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfile": {
"char": "f",
"description": "Force the path and name of output report file. Must end with .csv",
"name": "outputfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:monitor:limits",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Check org limits",
"requiresProject": true,
"triggerNotification": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"monitor",
"limits.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:monitor:limits",
"org:hardis:monitor:limits",
"org:monitor:hardis:limits",
"org:monitor:limits:hardis",
"hardis:monitor:org:limits",
"monitor:hardis:org:limits",
"monitor:org:hardis:limits",
"monitor:org:limits:hardis",
"hardis:monitor:limits:org",
"monitor:hardis:limits:org",
"monitor:limits:hardis:org",
"monitor:limits:org:hardis",
"hardis:org:limits:monitor",
"org:hardis:limits:monitor",
"org:limits:hardis:monitor",
"org:limits:monitor:hardis",
"hardis:limits:org:monitor",
"limits:hardis:org:monitor",
"limits:org:hardis:monitor",
"limits:org:monitor:hardis",
"hardis:limits:monitor:org",
"limits:hardis:monitor:org",
"limits:monitor:hardis:org",
"limits:monitor:org:hardis"
]
},
"hardis:org:purge:apexlog": {
"aliases": [],
"args": {},
"description": "Purge apex logs in selected org",
"examples": [
"$ sf hardis:org:purge:apexlog",
"$ sf hardis:org:purge:apexlog --target-org nicolas.vuillamy@gmail.com"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"prompt": {
"char": "z",
"description": "Prompt for confirmation (true by default, use --no-prompt to skip)",
"name": "prompt",
"allowNo": true,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:purge:apexlog",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Purge Apex Logs",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"purge",
"apexlog.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:purge:apexlog",
"org:hardis:purge:apexlog",
"org:purge:hardis:apexlog",
"org:purge:apexlog:hardis",
"hardis:purge:org:apexlog",
"purge:hardis:org:apexlog",
"purge:org:hardis:apexlog",
"purge:org:apexlog:hardis",
"hardis:purge:apexlog:org",
"purge:hardis:apexlog:org",
"purge:apexlog:hardis:org",
"purge:apexlog:org:hardis",
"hardis:org:apexlog:purge",
"org:hardis:apexlog:purge",
"org:apexlog:hardis:purge",
"org:apexlog:purge:hardis",
"hardis:apexlog:org:purge",
"apexlog:hardis:org:purge",
"apexlog:org:hardis:purge",
"apexlog:org:purge:hardis",
"hardis:apexlog:purge:org",
"apexlog:hardis:purge:org",
"apexlog:purge:hardis:org",
"apexlog:purge:org:hardis"
]
},
"hardis:org:purge:flow": {
"aliases": [],
"args": {},
"description": "Purge Obsolete flow versions to avoid the 50 max versions limit. Filters on Status and Name",
"examples": [
"$ sf hardis:org:purge:flow",
"$ sf hardis:org:purge:flow --target-org nicolas.vuillamy@gmail.com --no-prompt --delete-flow-interviews",
"$ sf hardis:org:purge:flow --target-org nicolas.vuillamy@gmail.com --status \"Obsolete,Draft,InvalidDraft\" --name TestFlow"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"prompt": {
"char": "z",
"description": "Prompt for confirmation (true by default, use --no-prompt to skip)",
"name": "prompt",
"allowNo": true,
"type": "boolean"
},
"name": {
"char": "n",
"description": "Filter according to Name criteria",
"name": "name",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"status": {
"char": "s",
"description": "Filter according to Status criteria",
"name": "status",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"delete-flow-interviews": {
"char": "w",
"description": "If the presence of Flow interviews prevent to delete flows versions, delete them before retrying to delete flow versions",
"name": "delete-flow-interviews",
"allowNo": false,
"type": "boolean"
},
"allowpurgefailure": {
"char": "f",
"description": "Allows purges to fail without exiting with 1. Use --no-allowpurgefailure to disable",
"name": "allowpurgefailure",
"allowNo": true,
"type": "boolean"
},
"instanceurl": {
"char": "r",
"description": "URL of org instance",
"name": "instanceurl",
"default": "https://login.salesforce.com",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:purge:flow",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Purge Flow versions",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"purge",
"flow.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:purge:flow",
"org:hardis:purge:flow",
"org:purge:hardis:flow",
"org:purge:flow:hardis",
"hardis:purge:org:flow",
"purge:hardis:org:flow",
"purge:org:hardis:flow",
"purge:org:flow:hardis",
"hardis:purge:flow:org",
"purge:hardis:flow:org",
"purge:flow:hardis:org",
"purge:flow:org:hardis",
"hardis:org:flow:purge",
"org:hardis:flow:purge",
"org:flow:hardis:purge",
"org:flow:purge:hardis",
"hardis:flow:org:purge",
"flow:hardis:org:purge",
"flow:org:hardis:purge",
"flow:org:purge:hardis",
"hardis:flow:purge:org",
"flow:hardis:purge:org",
"flow:purge:hardis:org",
"flow:purge:org:hardis"
]
},
"hardis:org:retrieve:packageconfig": {
"aliases": [],
"args": {},
"description": "Retrieve package configuration from an org",
"examples": [
"$ sf hardis:org:retrieve:packageconfig",
"sf hardis:org:retrieve:packageconfig -u myOrg"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:packageconfig",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve package configuration from an org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"packageconfig.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:packageconfig",
"org:hardis:retrieve:packageconfig",
"org:retrieve:hardis:packageconfig",
"org:retrieve:packageconfig:hardis",
"hardis:retrieve:org:packageconfig",
"retrieve:hardis:org:packageconfig",
"retrieve:org:hardis:packageconfig",
"retrieve:org:packageconfig:hardis",
"hardis:retrieve:packageconfig:org",
"retrieve:hardis:packageconfig:org",
"retrieve:packageconfig:hardis:org",
"retrieve:packageconfig:org:hardis",
"hardis:org:packageconfig:retrieve",
"org:hardis:packageconfig:retrieve",
"org:packageconfig:hardis:retrieve",
"org:packageconfig:retrieve:hardis",
"hardis:packageconfig:org:retrieve",
"packageconfig:hardis:org:retrieve",
"packageconfig:org:hardis:retrieve",
"packageconfig:org:retrieve:hardis",
"hardis:packageconfig:retrieve:org",
"packageconfig:hardis:retrieve:org",
"packageconfig:retrieve:hardis:org",
"packageconfig:retrieve:org:hardis"
]
},
"hardis:org:test:apex": {
"aliases": [],
"args": {},
"description": "Run apex tests in Salesforce org\n\nIf following configuration is defined, it will fail if apex coverage target is not reached:\n\n- Env `APEX_TESTS_MIN_COVERAGE_ORG_WIDE` or `.sfdx-hardis` property `apexTestsMinCoverageOrgWide`\n- Env `APEX_TESTS_MIN_COVERAGE_ORG_WIDE` or `.sfdx-hardis` property `apexTestsMinCoverageOrgWide`\n\nYou can override env var SFDX_TEST_WAIT_MINUTES to wait more than 60 minutes.\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-apex-tests/) and can output Grafana, Slack and MsTeams Notifications.\n",
"examples": [
"$ sf hardis:org:test:apex"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"testlevel": {
"char": "l",
"description": "Level of tests to apply to validate deployment",
"name": "testlevel",
"default": "RunLocalTests",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"NoTestRun",
"RunSpecifiedTests",
"RunLocalTests",
"RunAllTestsInOrg"
],
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:test:apex",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Run apex tests",
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"test",
"apex.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:test:apex",
"org:hardis:test:apex",
"org:test:hardis:apex",
"org:test:apex:hardis",
"hardis:test:org:apex",
"test:hardis:org:apex",
"test:org:hardis:apex",
"test:org:apex:hardis",
"hardis:test:apex:org",
"test:hardis:apex:org",
"test:apex:hardis:org",
"test:apex:org:hardis",
"hardis:org:apex:test",
"org:hardis:apex:test",
"org:apex:hardis:test",
"org:apex:test:hardis",
"hardis:apex:org:test",
"apex:hardis:org:test",
"apex:org:hardis:test",
"apex:org:test:hardis",
"hardis:apex:test:org",
"apex:hardis:test:org",
"apex:test:hardis:org",
"apex:test:org:hardis"
]
},
"hardis:org:user:activateinvalid": {
"aliases": [],
"args": {},
"description": "Update sandbox users so their email is valid\n\n Example: replaces `toto@company.com.dev.invalid` with `toto@company.com.dev.invalid`\n\nSee article below\n\n[](https://nicolas.vuillamy.fr/reactivate-all-the-sandbox-users-with-invalid-emails-in-3-clicks-2265af4e3a3d)\n",
"examples": [
"$ sf hardis:org:user:activateinvalid",
"$ sf hardis:org:user:activateinvalid --target-org my-user@myorg.com",
"$ sf hardis:org:user:activateinvalid --profiles 'System Administrator,MyCustomProfile' --target-org my-user@myorg.com"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"profiles": {
"char": "p",
"description": "Comma-separated list of profiles names that you want to reactive users assigned to and with a .invalid email",
"name": "profiles",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:user:activateinvalid",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Reactivate sandbox invalid users",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"user",
"activateinvalid.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:user:activateinvalid",
"org:hardis:user:activateinvalid",
"org:user:hardis:activateinvalid",
"org:user:activateinvalid:hardis",
"hardis:user:org:activateinvalid",
"user:hardis:org:activateinvalid",
"user:org:hardis:activateinvalid",
"user:org:activateinvalid:hardis",
"hardis:user:activateinvalid:org",
"user:hardis:activateinvalid:org",
"user:activateinvalid:hardis:org",
"user:activateinvalid:org:hardis",
"hardis:org:activateinvalid:user",
"org:hardis:activateinvalid:user",
"org:activateinvalid:hardis:user",
"org:activateinvalid:user:hardis",
"hardis:activateinvalid:org:user",
"activateinvalid:hardis:org:user",
"activateinvalid:org:hardis:user",
"activateinvalid:org:user:hardis",
"hardis:activateinvalid:user:org",
"activateinvalid:hardis:user:org",
"activateinvalid:user:hardis:org",
"activateinvalid:user:org:hardis"
]
},
"hardis:org:user:freeze": {
"aliases": [],
"args": {},
"description": "Mass freeze users in org before a maintenance or go live\n\nSee user guide in the following article\n\n<https://medium.com/@dimitrimonge/freeze-unfreeze-users-during-salesforce-deployment-8a1488bf8dd3>\n\n[](https://medium.com/@dimitrimonge/freeze-unfreeze-users-during-salesforce-deployment-8a1488bf8dd3)",
"examples": [
"$ sf hardis:org:user:freeze",
"$ sf hardis:org:user:freeze --target-org my-user@myorg.com",
"$ sf hardis:org:user:freeze --includeprofiles 'Standard'",
"$ sf hardis:org:user:freeze --excludeprofiles 'System Administrator,Some Other Profile'"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"name": {
"char": "n",
"description": "Filter according to Name criteria",
"name": "name",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"includeprofiles": {
"char": "p",
"description": "List of profiles that you want to freeze, separated by commas",
"name": "includeprofiles",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"excludeprofiles": {
"char": "e",
"description": "List of profiles that you want to NOT freeze, separated by commas",
"name": "excludeprofiles",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"maxuserdisplay": {
"char": "m",
"description": "Maximum users to display in logs",
"name": "maxuserdisplay",
"default": 100,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:user:freeze",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Freeze user logins",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"user",
"freeze.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:user:freeze",
"org:hardis:user:freeze",
"org:user:hardis:freeze",
"org:user:freeze:hardis",
"hardis:user:org:freeze",
"user:hardis:org:freeze",
"user:org:hardis:freeze",
"user:org:freeze:hardis",
"hardis:user:freeze:org",
"user:hardis:freeze:org",
"user:freeze:hardis:org",
"user:freeze:org:hardis",
"hardis:org:freeze:user",
"org:hardis:freeze:user",
"org:freeze:hardis:user",
"org:freeze:user:hardis",
"hardis:freeze:org:user",
"freeze:hardis:org:user",
"freeze:org:hardis:user",
"freeze:org:user:hardis",
"hardis:freeze:user:org",
"freeze:hardis:user:org",
"freeze:user:hardis:org",
"freeze:user:org:hardis"
]
},
"hardis:org:user:unfreeze": {
"aliases": [],
"args": {},
"description": "Mass unfreeze users in org after a maintenance or go live\n\nSee user guide in the following article\n\n<https://medium.com/@dimitrimonge/freeze-unfreeze-users-during-salesforce-deployment-8a1488bf8dd3>\n\n[](https://medium.com/@dimitrimonge/freeze-unfreeze-users-during-salesforce-deployment-8a1488bf8dd3)",
"examples": [
"$ sf hardis:org:user:unfreeze",
"$ sf hardis:org:user:unfreeze --target-org my-user@myorg.com",
"$ sf hardis:org:user:unfreeze --includeprofiles 'Standard'",
"$ sf hardis:org:user:unfreeze --excludeprofiles 'System Administrator,Some Other Profile'"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"name": {
"char": "n",
"description": "Filter according to Name criteria",
"name": "name",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"includeprofiles": {
"char": "p",
"description": "List of profiles that you want to unfreeze, separated by commas",
"name": "includeprofiles",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"excludeprofiles": {
"char": "e",
"description": "List of profiles that you want to NOT unfreeze, separated by commas",
"name": "excludeprofiles",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"maxuserdisplay": {
"char": "m",
"description": "Maximum users to display in logs",
"name": "maxuserdisplay",
"default": 100,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:user:unfreeze",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Unfreeze user logins",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"user",
"unfreeze.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:user:unfreeze",
"org:hardis:user:unfreeze",
"org:user:hardis:unfreeze",
"org:user:unfreeze:hardis",
"hardis:user:org:unfreeze",
"user:hardis:org:unfreeze",
"user:org:hardis:unfreeze",
"user:org:unfreeze:hardis",
"hardis:user:unfreeze:org",
"user:hardis:unfreeze:org",
"user:unfreeze:hardis:org",
"user:unfreeze:org:hardis",
"hardis:org:unfreeze:user",
"org:hardis:unfreeze:user",
"org:unfreeze:hardis:user",
"org:unfreeze:user:hardis",
"hardis:unfreeze:org:user",
"unfreeze:hardis:org:user",
"unfreeze:org:hardis:user",
"unfreeze:org:user:hardis",
"hardis:unfreeze:user:org",
"unfreeze:hardis:user:org",
"unfreeze:user:hardis:org",
"unfreeze:user:org:hardis"
]
},
"hardis:package:version:create": {
"aliases": [],
"args": {},
"description": "Create a new version of an unlocked package",
"examples": [
"$ sf hardis:package:version:create"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"package": {
"char": "p",
"description": "Package identifier that you want to use to generate a new package version",
"name": "package",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"installkey": {
"char": "k",
"description": "Package installation key",
"name": "installkey",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"deleteafter": {
"description": "Delete package version after creating it",
"name": "deleteafter",
"allowNo": false,
"type": "boolean"
},
"install": {
"char": "i",
"description": "Install package version on default org after generation",
"name": "install",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:package:version:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create a new version of a package",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"version",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:version:create",
"package:hardis:version:create",
"package:version:hardis:create",
"package:version:create:hardis",
"hardis:version:package:create",
"version:hardis:package:create",
"version:package:hardis:create",
"version:package:create:hardis",
"hardis:version:create:package",
"version:hardis:create:package",
"version:create:hardis:package",
"version:create:package:hardis",
"hardis:package:create:version",
"package:hardis:create:version",
"package:create:hardis:version",
"package:create:version:hardis",
"hardis:create:package:version",
"create:hardis:package:version",
"create:package:hardis:version",
"create:package:version:hardis",
"hardis:create:version:package",
"create:hardis:version:package",
"create:version:hardis:package",
"create:version:package:hardis"
]
},
"hardis:package:version:list": {
"aliases": [],
"args": {},
"description": "List versions of unlocked package",
"examples": [
"$ sf hardis:package:version:list"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:package:version:list",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create a new version of a package",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"version",
"list.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:version:list",
"package:hardis:version:list",
"package:version:hardis:list",
"package:version:list:hardis",
"hardis:version:package:list",
"version:hardis:package:list",
"version:package:hardis:list",
"version:package:list:hardis",
"hardis:version:list:package",
"version:hardis:list:package",
"version:list:hardis:package",
"version:list:package:hardis",
"hardis:package:list:version",
"package:hardis:list:version",
"package:list:hardis:version",
"package:list:version:hardis",
"hardis:list:package:version",
"list:hardis:package:version",
"list:package:hardis:version",
"list:package:version:hardis",
"hardis:list:version:package",
"list:hardis:version:package",
"list:version:hardis:package",
"list:version:package:hardis"
]
},
"hardis:package:version:promote": {
"aliases": [],
"args": {},
"description": "Promote package(s) version(s): convert it from beta to released",
"examples": [
"$ sf hardis:package:version:promote",
"$ sf hardis:package:version:promote --auto"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"auto": {
"char": "f",
"description": "Auto-detect which versions of which packages need to be promoted",
"name": "auto",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:package:version:promote",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Promote new versions of package(s)",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"package",
"version",
"promote.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:package:version:promote",
"package:hardis:version:promote",
"package:version:hardis:promote",
"package:version:promote:hardis",
"hardis:version:package:promote",
"version:hardis:package:promote",
"version:package:hardis:promote",
"version:package:promote:hardis",
"hardis:version:promote:package",
"version:hardis:promote:package",
"version:promote:hardis:package",
"version:promote:package:hardis",
"hardis:package:promote:version",
"package:hardis:promote:version",
"package:promote:hardis:version",
"package:promote:version:hardis",
"hardis:promote:package:version",
"promote:hardis:package:version",
"promote:package:hardis:version",
"promote:package:version:hardis",
"hardis:promote:version:package",
"promote:hardis:version:package",
"promote:version:hardis:package",
"promote:version:package:hardis"
]
},
"hardis:project:audit:apiversion": {
"aliases": [],
"args": {},
"description": "This command identifies metadata with an apiVersion lower than the value specified in the --minimumapiversion parameter.\n\n It can also update the apiVersion to a specific value:\n - When --fix parameter is provided (updates to minimumapiversion)\n - When --newapiversion is specified (updates to that version)\n\n Example to handle [ApexClass / Trigger & ApexPage mandatory version upgrade](https://help.salesforce.com/s/articleView?id=sf.admin_locales_update_api.htm&type=5) :\n \n `sf hardis:project:audit:apiversion --metadatatype ApexClass,ApexTrigger,ApexPage --minimumapiversion 45 --newapiversion 50`\n ",
"examples": [
"$ sf hardis:project:audit:apiversion",
"$ sf hardis:project:audit:apiversion --metadatatype ApexClass,ApexTrigger,ApexPage --minimumapiversion 45",
"$ sf hardis:project:audit:apiversion --metadatatype ApexClass,ApexTrigger,ApexPage --minimumapiversion 45 --fix",
"$ sf hardis:project:audit:apiversion --metadatatype ApexClass,ApexTrigger,ApexPage --minimumapiversion 45 --newapiversion 50"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"minimumapiversion": {
"char": "m",
"description": "Minimum allowed API version",
"name": "minimumapiversion",
"default": 20,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"failiferror": {
"char": "f",
"description": "Fails (exit code 1) if an error is found",
"name": "failiferror",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"metadatatype": {
"description": "Metadata Types to fix. Comma separated. Supported Metadata types: ApexClass, ApexTrigger, ApexPage",
"name": "metadatatype",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"fix": {
"description": "Automatically update API versions in files that are below the minimum version threshold to match the minimum version",
"name": "fix",
"allowNo": false,
"type": "boolean"
},
"newapiversion": {
"char": "n",
"description": "Define an API version value to apply when updating files",
"name": "newapiversion",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:audit:apiversion",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Audit Metadatas API Version",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"audit",
"apiversion.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:audit:apiversion",
"project:hardis:audit:apiversion",
"project:audit:hardis:apiversion",
"project:audit:apiversion:hardis",
"hardis:audit:project:apiversion",
"audit:hardis:project:apiversion",
"audit:project:hardis:apiversion",
"audit:project:apiversion:hardis",
"hardis:audit:apiversion:project",
"audit:hardis:apiversion:project",
"audit:apiversion:hardis:project",
"audit:apiversion:project:hardis",
"hardis:project:apiversion:audit",
"project:hardis:apiversion:audit",
"project:apiversion:hardis:audit",
"project:apiversion:audit:hardis",
"hardis:apiversion:project:audit",
"apiversion:hardis:project:audit",
"apiversion:project:hardis:audit",
"apiversion:project:audit:hardis",
"hardis:apiversion:audit:project",
"apiversion:hardis:audit:project",
"apiversion:audit:hardis:project",
"apiversion:audit:project:hardis"
]
},
"hardis:project:audit:callincallout": {
"aliases": [],
"args": {},
"description": "Generate list of callIn and callouts from sfdx project",
"examples": [
"$ sf hardis:project:audit:callouts"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:audit:callincallout",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Audit CallIns and CallOuts",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"audit",
"callincallout.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:audit:callincallout",
"project:hardis:audit:callincallout",
"project:audit:hardis:callincallout",
"project:audit:callincallout:hardis",
"hardis:audit:project:callincallout",
"audit:hardis:project:callincallout",
"audit:project:hardis:callincallout",
"audit:project:callincallout:hardis",
"hardis:audit:callincallout:project",
"audit:hardis:callincallout:project",
"audit:callincallout:hardis:project",
"audit:callincallout:project:hardis",
"hardis:project:callincallout:audit",
"project:hardis:callincallout:audit",
"project:callincallout:hardis:audit",
"project:callincallout:audit:hardis",
"hardis:callincallout:project:audit",
"callincallout:hardis:project:audit",
"callincallout:project:hardis:audit",
"callincallout:project:audit:hardis",
"hardis:callincallout:audit:project",
"callincallout:hardis:audit:project",
"callincallout:audit:hardis:project",
"callincallout:audit:project:hardis"
]
},
"hardis:project:audit:duplicatefiles": {
"aliases": [],
"args": {},
"description": "Find duplicate files in sfdx folder (often from past @salesforce/cli bugs)",
"examples": [
"$ sf hardis:project:audit:duplicatefiles"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Root path to check",
"name": "path",
"default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:audit:duplicatefiles",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Find duplicate sfdx files",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"audit",
"duplicatefiles.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:audit:duplicatefiles",
"project:hardis:audit:duplicatefiles",
"project:audit:hardis:duplicatefiles",
"project:audit:duplicatefiles:hardis",
"hardis:audit:project:duplicatefiles",
"audit:hardis:project:duplicatefiles",
"audit:project:hardis:duplicatefiles",
"audit:project:duplicatefiles:hardis",
"hardis:audit:duplicatefiles:project",
"audit:hardis:duplicatefiles:project",
"audit:duplicatefiles:hardis:project",
"audit:duplicatefiles:project:hardis",
"hardis:project:duplicatefiles:audit",
"project:hardis:duplicatefiles:audit",
"project:duplicatefiles:hardis:audit",
"project:duplicatefiles:audit:hardis",
"hardis:duplicatefiles:project:audit",
"duplicatefiles:hardis:project:audit",
"duplicatefiles:project:hardis:audit",
"duplicatefiles:project:audit:hardis",
"hardis:duplicatefiles:audit:project",
"duplicatefiles:hardis:audit:project",
"duplicatefiles:audit:hardis:project",
"duplicatefiles:audit:project:hardis"
]
},
"hardis:project:audit:remotesites": {
"aliases": [],
"args": {},
"description": "Generate list of remote sites",
"examples": [
"$ sf hardis:project:audit:remotesites"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:audit:remotesites",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Audit Remote Sites",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"audit",
"remotesites.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:audit:remotesites",
"project:hardis:audit:remotesites",
"project:audit:hardis:remotesites",
"project:audit:remotesites:hardis",
"hardis:audit:project:remotesites",
"audit:hardis:project:remotesites",
"audit:project:hardis:remotesites",
"audit:project:remotesites:hardis",
"hardis:audit:remotesites:project",
"audit:hardis:remotesites:project",
"audit:remotesites:hardis:project",
"audit:remotesites:project:hardis",
"hardis:project:remotesites:audit",
"project:hardis:remotesites:audit",
"project:remotesites:hardis:audit",
"project:remotesites:audit:hardis",
"hardis:remotesites:project:audit",
"remotesites:hardis:project:audit",
"remotesites:project:hardis:audit",
"remotesites:project:audit:hardis",
"hardis:remotesites:audit:project",
"remotesites:hardis:audit:project",
"remotesites:audit:hardis:project",
"remotesites:audit:project:hardis"
]
},
"hardis:project:configure:auth": {
"aliases": [],
"args": {},
"description": "Configure authentication from git branch to target org",
"examples": [
"$ sf hardis:project:configure:auth"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"devhub": {
"char": "b",
"description": "Configure project DevHub",
"name": "devhub",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"summary": "Username or alias of the target org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": false,
"summary": "Username or alias of the Dev Hub org.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:configure:auth",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Configure authentication",
"requiresProject": false,
"requiresDependencies": [
"openssl"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"configure",
"auth.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:configure:auth",
"project:hardis:configure:auth",
"project:configure:hardis:auth",
"project:configure:auth:hardis",
"hardis:configure:project:auth",
"configure:hardis:project:auth",
"configure:project:hardis:auth",
"configure:project:auth:hardis",
"hardis:configure:auth:project",
"configure:hardis:auth:project",
"configure:auth:hardis:project",
"configure:auth:project:hardis",
"hardis:project:auth:configure",
"project:hardis:auth:configure",
"project:auth:hardis:configure",
"project:auth:configure:hardis",
"hardis:auth:project:configure",
"auth:hardis:project:configure",
"auth:project:hardis:configure",
"auth:project:configure:hardis",
"hardis:auth:configure:project",
"auth:hardis:configure:project",
"auth:configure:hardis:project",
"auth:configure:project:hardis"
]
},
"hardis:project:clean:emptyitems": {
"aliases": [],
"args": {},
"description": "Remove unwanted empty items within sfdx project sources",
"examples": [
"$ sf hardis:project:clean:emptyitems"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:emptyitems",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean retrieved empty items in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"emptyitems.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:emptyitems",
"project:hardis:clean:emptyitems",
"project:clean:hardis:emptyitems",
"project:clean:emptyitems:hardis",
"hardis:clean:project:emptyitems",
"clean:hardis:project:emptyitems",
"clean:project:hardis:emptyitems",
"clean:project:emptyitems:hardis",
"hardis:clean:emptyitems:project",
"clean:hardis:emptyitems:project",
"clean:emptyitems:hardis:project",
"clean:emptyitems:project:hardis",
"hardis:project:emptyitems:clean",
"project:hardis:emptyitems:clean",
"project:emptyitems:hardis:clean",
"project:emptyitems:clean:hardis",
"hardis:emptyitems:project:clean",
"emptyitems:hardis:project:clean",
"emptyitems:project:hardis:clean",
"emptyitems:project:clean:hardis",
"hardis:emptyitems:clean:project",
"emptyitems:hardis:clean:project",
"emptyitems:clean:hardis:project",
"emptyitems:clean:project:hardis"
]
},
"hardis:project:clean:filter-xml-content": {
"aliases": [],
"args": {},
"description": "Filter content of metadatas (XML) in order to be able to deploy only part of them on an org (See [Example configuration](https://github.com/nvuillam/sfdx-essentials/blob/master/examples/filter-xml-content-config.json))\n\nWhen you perform deployments from one org to another, the features activated in the target org may not fit the content of the sfdx/metadata files extracted from the source org.\n\nYou may need to filter some elements in the XML files, for example in the Profiles\n\nThis script requires a filter-config.json file",
"examples": [
"sf hardis:project:clean:filter-xml-content -i \"./mdapi_output\"",
"sf hardis:project:clean:filter-xml-content -i \"retrieveUnpackaged\""
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"configfile": {
"char": "c",
"description": "Config JSON file path",
"name": "configfile",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"inputfolder": {
"char": "i",
"description": "Input folder (default: \".\" )",
"name": "inputfolder",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"outputfolder": {
"char": "f",
"description": "Output folder (default: parentFolder + _xml_content_filtered)",
"name": "outputfolder",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "websocket",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:filter-xml-content",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"filter-xml-content.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:filter-xml-content",
"project:hardis:clean:filter-xml-content",
"project:clean:hardis:filter-xml-content",
"project:clean:filter-xml-content:hardis",
"hardis:clean:project:filter-xml-content",
"clean:hardis:project:filter-xml-content",
"clean:project:hardis:filter-xml-content",
"clean:project:filter-xml-content:hardis",
"hardis:clean:filter-xml-content:project",
"clean:hardis:filter-xml-content:project",
"clean:filter-xml-content:hardis:project",
"clean:filter-xml-content:project:hardis",
"hardis:project:filter-xml-content:clean",
"project:hardis:filter-xml-content:clean",
"project:filter-xml-content:hardis:clean",
"project:filter-xml-content:clean:hardis",
"hardis:filter-xml-content:project:clean",
"filter-xml-content:hardis:project:clean",
"filter-xml-content:project:hardis:clean",
"filter-xml-content:project:clean:hardis",
"hardis:filter-xml-content:clean:project",
"filter-xml-content:hardis:clean:project",
"filter-xml-content:clean:hardis:project",
"filter-xml-content:clean:project:hardis"
]
},
"hardis:project:clean:flowpositions": {
"aliases": [],
"args": {},
"description": "Replace all positions in Auto-Layout Flows by 0 to simplify conflicts management\n\nAs Flows are defined as Auto-Layout, the edition in Setup UI is not impacted.\n \nBefore:\n\n```xml\n<locationX>380</locationX>\n<locationY>259</locationY>\n```\n\nAfter:\n\n```xml\n<locationX>0</locationX>\n<locationY>0</locationY>\n```\n\nCan be automated at each **hardis:work:save** if **flowPositions** is added in .sfdx-hardis.yml **autoCleanTypes** property \n\nExample in config/.sfdx-hardis.yml:\n\n```yaml\nautoCleanTypes:\n - destructivechanges\n - flowPositions\n```\n",
"examples": [
"$ sf hardis:project:clean:flowpositions"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:flowpositions",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean Flow Positions",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"flowpositions.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:flowpositions",
"project:hardis:clean:flowpositions",
"project:clean:hardis:flowpositions",
"project:clean:flowpositions:hardis",
"hardis:clean:project:flowpositions",
"clean:hardis:project:flowpositions",
"clean:project:hardis:flowpositions",
"clean:project:flowpositions:hardis",
"hardis:clean:flowpositions:project",
"clean:hardis:flowpositions:project",
"clean:flowpositions:hardis:project",
"clean:flowpositions:project:hardis",
"hardis:project:flowpositions:clean",
"project:hardis:flowpositions:clean",
"project:flowpositions:hardis:clean",
"project:flowpositions:clean:hardis",
"hardis:flowpositions:project:clean",
"flowpositions:hardis:project:clean",
"flowpositions:project:hardis:clean",
"flowpositions:project:clean:hardis",
"hardis:flowpositions:clean:project",
"flowpositions:hardis:clean:project",
"flowpositions:clean:hardis:project",
"flowpositions:clean:project:hardis"
]
},
"hardis:project:clean:hiddenitems": {
"aliases": [],
"args": {},
"description": "Remove unwanted hidden items within sfdx project sources",
"examples": [
"$ sf hardis:project:clean:hiddenitems"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:hiddenitems",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean retrieved hidden items in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"hiddenitems.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:hiddenitems",
"project:hardis:clean:hiddenitems",
"project:clean:hardis:hiddenitems",
"project:clean:hiddenitems:hardis",
"hardis:clean:project:hiddenitems",
"clean:hardis:project:hiddenitems",
"clean:project:hardis:hiddenitems",
"clean:project:hiddenitems:hardis",
"hardis:clean:hiddenitems:project",
"clean:hardis:hiddenitems:project",
"clean:hiddenitems:hardis:project",
"clean:hiddenitems:project:hardis",
"hardis:project:hiddenitems:clean",
"project:hardis:hiddenitems:clean",
"project:hiddenitems:hardis:clean",
"project:hiddenitems:clean:hardis",
"hardis:hiddenitems:project:clean",
"hiddenitems:hardis:project:clean",
"hiddenitems:project:hardis:clean",
"hiddenitems:project:clean:hardis",
"hardis:hiddenitems:clean:project",
"hiddenitems:hardis:clean:project",
"hiddenitems:clean:hardis:project",
"hiddenitems:clean:project:hardis"
]
},
"hardis:project:clean:listviews": {
"aliases": [],
"args": {},
"description": "Replace Mine by Everything in ListView, and log the replacements in sfdx-hardis.yml",
"examples": [
"$ sf hardis:project:clean:listviews"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:listviews",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Replace Mine by Everything in ListViews",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"listviews.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:listviews",
"project:hardis:clean:listviews",
"project:clean:hardis:listviews",
"project:clean:listviews:hardis",
"hardis:clean:project:listviews",
"clean:hardis:project:listviews",
"clean:project:hardis:listviews",
"clean:project:listviews:hardis",
"hardis:clean:listviews:project",
"clean:hardis:listviews:project",
"clean:listviews:hardis:project",
"clean:listviews:project:hardis",
"hardis:project:listviews:clean",
"project:hardis:listviews:clean",
"project:listviews:hardis:clean",
"project:listviews:clean:hardis",
"hardis:listviews:project:clean",
"listviews:hardis:project:clean",
"listviews:project:hardis:clean",
"listviews:project:clean:hardis",
"hardis:listviews:clean:project",
"listviews:hardis:clean:project",
"listviews:clean:hardis:project",
"listviews:clean:project:hardis"
]
},
"hardis:project:clean:manageditems": {
"aliases": [],
"args": {},
"description": "Remove unwanted managed items within sfdx project sources",
"examples": [
"$ sf hardis:project:clean:manageditems --namespace crta"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"namespace": {
"char": "n",
"description": "Namespace to remove",
"name": "namespace",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:manageditems",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean retrieved managed items in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"manageditems.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:manageditems",
"project:hardis:clean:manageditems",
"project:clean:hardis:manageditems",
"project:clean:manageditems:hardis",
"hardis:clean:project:manageditems",
"clean:hardis:project:manageditems",
"clean:project:hardis:manageditems",
"clean:project:manageditems:hardis",
"hardis:clean:manageditems:project",
"clean:hardis:manageditems:project",
"clean:manageditems:hardis:project",
"clean:manageditems:project:hardis",
"hardis:project:manageditems:clean",
"project:hardis:manageditems:clean",
"project:manageditems:hardis:clean",
"project:manageditems:clean:hardis",
"hardis:manageditems:project:clean",
"manageditems:hardis:project:clean",
"manageditems:project:hardis:clean",
"manageditems:project:clean:hardis",
"hardis:manageditems:clean:project",
"manageditems:hardis:clean:project",
"manageditems:clean:hardis:project",
"manageditems:clean:project:hardis"
]
},
"hardis:project:clean:minimizeprofiles": {
"aliases": [],
"args": {},
"description": "Remove all profile attributes that exist on Permission Sets\n\nIt is a bad practice to define on Profiles elements that can be defined on Permission Sets.\n\nSalesforce will deprecate such capability in Spring 26.\n\nDon't wait for that, and use minimizeProfiles cleaning to automatically remove from Profiles any permission that exists on a Permission Set !\n\nThe following XML tags are removed automatically:\n\n- classAccesses\n- customMetadataTypeAccesses\n- externalDataSourceAccesses\n- fieldPermissions\n- objectPermissions\n- pageAccesses\n- userPermissions (except on Admin Profile)\n\nYou can override this list by defining a property minimizeProfilesNodesToRemove in your .sfdx-hardis.yml config file.\n\nYou can also skip profiles using property skipMinimizeProfiles\n\nExample: \n\n```yaml\nskipMinimizeProfiles\n - MyClient Customer Community Login User\n - MyClientPortail Profile\n```\n",
"examples": [
"$ sf hardis:project:clean:minimizeprofiles"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:minimizeprofiles",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean profiles of Permission Set attributes",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"minimizeprofiles.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:minimizeprofiles",
"project:hardis:clean:minimizeprofiles",
"project:clean:hardis:minimizeprofiles",
"project:clean:minimizeprofiles:hardis",
"hardis:clean:project:minimizeprofiles",
"clean:hardis:project:minimizeprofiles",
"clean:project:hardis:minimizeprofiles",
"clean:project:minimizeprofiles:hardis",
"hardis:clean:minimizeprofiles:project",
"clean:hardis:minimizeprofiles:project",
"clean:minimizeprofiles:hardis:project",
"clean:minimizeprofiles:project:hardis",
"hardis:project:minimizeprofiles:clean",
"project:hardis:minimizeprofiles:clean",
"project:minimizeprofiles:hardis:clean",
"project:minimizeprofiles:clean:hardis",
"hardis:minimizeprofiles:project:clean",
"minimizeprofiles:hardis:project:clean",
"minimizeprofiles:project:hardis:clean",
"minimizeprofiles:project:clean:hardis",
"hardis:minimizeprofiles:clean:project",
"minimizeprofiles:hardis:clean:project",
"minimizeprofiles:clean:hardis:project",
"minimizeprofiles:clean:project:hardis"
]
},
"hardis:project:clean:orgmissingitems": {
"aliases": [],
"args": {},
"description": "Clean SFDX sources from items present neither in target org nor local package.xml",
"examples": [
"$ sf hardis:project:clean:orgmissingitems"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexmlfull": {
"char": "p",
"description": "Path to packagexml used for cleaning.\nMust contain also standard CustomObject and CustomField elements.\nIf not provided, it will be generated from a remote org",
"name": "packagexmlfull",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexmltargetorg": {
"char": "t",
"description": "Target org username or alias to build package.xml (SF CLI must be authenticated).\nIf not provided, will be prompted to the user.",
"name": "packagexmltargetorg",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:orgmissingitems",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean SFDX items using target org definition",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"orgmissingitems.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:orgmissingitems",
"project:hardis:clean:orgmissingitems",
"project:clean:hardis:orgmissingitems",
"project:clean:orgmissingitems:hardis",
"hardis:clean:project:orgmissingitems",
"clean:hardis:project:orgmissingitems",
"clean:project:hardis:orgmissingitems",
"clean:project:orgmissingitems:hardis",
"hardis:clean:orgmissingitems:project",
"clean:hardis:orgmissingitems:project",
"clean:orgmissingitems:hardis:project",
"clean:orgmissingitems:project:hardis",
"hardis:project:orgmissingitems:clean",
"project:hardis:orgmissingitems:clean",
"project:orgmissingitems:hardis:clean",
"project:orgmissingitems:clean:hardis",
"hardis:orgmissingitems:project:clean",
"orgmissingitems:hardis:project:clean",
"orgmissingitems:project:hardis:clean",
"orgmissingitems:project:clean:hardis",
"hardis:orgmissingitems:clean:project",
"orgmissingitems:hardis:clean:project",
"orgmissingitems:clean:hardis:project",
"orgmissingitems:clean:project:hardis"
]
},
"hardis:project:clean:references": {
"aliases": [],
"args": {},
"description": "Remove unwanted references within sfdx project sources",
"examples": [
"$ sf hardis:project:clean:references",
"$ sf hardis:project:clean:references --type all",
"$ sf hardis:project:clean:references --config ./cleaning/myconfig.json",
"$ sf hardis:project:clean:references --config ./somefolder/myDestructivePackage.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"type": {
"char": "t",
"description": "Cleaning type",
"name": "type",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"all",
"caseentitlement",
"dashboards",
"datadotcom",
"destructivechanges",
"localfields",
"productrequest",
"entitlement",
"flowPositions",
"sensitiveMetadatas",
"minimizeProfiles"
],
"type": "option"
},
"config": {
"char": "c",
"description": "Path to a JSON config file or a destructiveChanges.xml file",
"name": "config",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:references",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean references in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"references.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:references",
"project:hardis:clean:references",
"project:clean:hardis:references",
"project:clean:references:hardis",
"hardis:clean:project:references",
"clean:hardis:project:references",
"clean:project:hardis:references",
"clean:project:references:hardis",
"hardis:clean:references:project",
"clean:hardis:references:project",
"clean:references:hardis:project",
"clean:references:project:hardis",
"hardis:project:references:clean",
"project:hardis:references:clean",
"project:references:hardis:clean",
"project:references:clean:hardis",
"hardis:references:project:clean",
"references:hardis:project:clean",
"references:project:hardis:clean",
"references:project:clean:hardis",
"hardis:references:clean:project",
"references:hardis:clean:project",
"references:clean:hardis:project",
"references:clean:project:hardis"
]
},
"hardis:project:clean:retrievefolders": {
"aliases": [],
"args": {},
"description": "Retrieve dashboards, documents and report folders in DX sources. Use -u ORGALIAS",
"examples": [
"$ sf hardis:project:clean:retrievefolders"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:clean:retrievefolders",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve dashboards, documents and report folders in DX sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"retrievefolders.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:retrievefolders",
"project:hardis:clean:retrievefolders",
"project:clean:hardis:retrievefolders",
"project:clean:retrievefolders:hardis",
"hardis:clean:project:retrievefolders",
"clean:hardis:project:retrievefolders",
"clean:project:hardis:retrievefolders",
"clean:project:retrievefolders:hardis",
"hardis:clean:retrievefolders:project",
"clean:hardis:retrievefolders:project",
"clean:retrievefolders:hardis:project",
"clean:retrievefolders:project:hardis",
"hardis:project:retrievefolders:clean",
"project:hardis:retrievefolders:clean",
"project:retrievefolders:hardis:clean",
"project:retrievefolders:clean:hardis",
"hardis:retrievefolders:project:clean",
"retrievefolders:hardis:project:clean",
"retrievefolders:project:hardis:clean",
"retrievefolders:project:clean:hardis",
"hardis:retrievefolders:clean:project",
"retrievefolders:hardis:clean:project",
"retrievefolders:clean:hardis:project",
"retrievefolders:clean:project:hardis"
]
},
"hardis:project:clean:sensitive-metadatas": {
"aliases": [],
"args": {},
"description": "Sensitive data like credentials and certificates are not supposed to be stored in Git, to avoid security breaches.\n\nThis command detects the related metadata and replaces their sensitive content by \"HIDDEN_BY_SFDX_HARDIS\"\n\nCan be automated at each **hardis:work:save** if **sensitiveMetadatas** is added in .sfdx-hardis.yml **autoCleanTypes** property \n\nExample in config/.sfdx-hardis.yml:\n\n```yaml\nautoCleanTypes:\n - destructivechanges\n - sensitiveMetadatas\n```\n",
"examples": [
"$ sf hardis:project:clean:sensitive-metadatas"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:sensitive-metadatas",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean Sensitive Metadatas",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"sensitive-metadatas.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:sensitive-metadatas",
"project:hardis:clean:sensitive-metadatas",
"project:clean:hardis:sensitive-metadatas",
"project:clean:sensitive-metadatas:hardis",
"hardis:clean:project:sensitive-metadatas",
"clean:hardis:project:sensitive-metadatas",
"clean:project:hardis:sensitive-metadatas",
"clean:project:sensitive-metadatas:hardis",
"hardis:clean:sensitive-metadatas:project",
"clean:hardis:sensitive-metadatas:project",
"clean:sensitive-metadatas:hardis:project",
"clean:sensitive-metadatas:project:hardis",
"hardis:project:sensitive-metadatas:clean",
"project:hardis:sensitive-metadatas:clean",
"project:sensitive-metadatas:hardis:clean",
"project:sensitive-metadatas:clean:hardis",
"hardis:sensitive-metadatas:project:clean",
"sensitive-metadatas:hardis:project:clean",
"sensitive-metadatas:project:hardis:clean",
"sensitive-metadatas:project:clean:hardis",
"hardis:sensitive-metadatas:clean:project",
"sensitive-metadatas:hardis:clean:project",
"sensitive-metadatas:clean:hardis:project",
"sensitive-metadatas:clean:project:hardis"
]
},
"hardis:project:clean:standarditems": {
"aliases": [],
"args": {},
"description": "Remove unwanted standard items within sfdx project sources",
"examples": [
"$ sf hardis:project:clean:standarditems"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:standarditems",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean retrieved standard items in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"standarditems.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:standarditems",
"project:hardis:clean:standarditems",
"project:clean:hardis:standarditems",
"project:clean:standarditems:hardis",
"hardis:clean:project:standarditems",
"clean:hardis:project:standarditems",
"clean:project:hardis:standarditems",
"clean:project:standarditems:hardis",
"hardis:clean:standarditems:project",
"clean:hardis:standarditems:project",
"clean:standarditems:hardis:project",
"clean:standarditems:project:hardis",
"hardis:project:standarditems:clean",
"project:hardis:standarditems:clean",
"project:standarditems:hardis:clean",
"project:standarditems:clean:hardis",
"hardis:standarditems:project:clean",
"standarditems:hardis:project:clean",
"standarditems:project:hardis:clean",
"standarditems:project:clean:hardis",
"hardis:standarditems:clean:project",
"standarditems:hardis:clean:project",
"standarditems:clean:hardis:project",
"standarditems:clean:project:hardis"
]
},
"hardis:project:clean:systemdebug": {
"aliases": [],
"args": {},
"description": "Clean System.debug() lines in APEX Code (classes and triggers)",
"examples": [
"$ sf hardis:project:clean:systemdebug"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"delete": {
"char": "d",
"description": "Delete lines with System.debug",
"name": "delete",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:systemdebug",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean System debug",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"systemdebug.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:systemdebug",
"project:hardis:clean:systemdebug",
"project:clean:hardis:systemdebug",
"project:clean:systemdebug:hardis",
"hardis:clean:project:systemdebug",
"clean:hardis:project:systemdebug",
"clean:project:hardis:systemdebug",
"clean:project:systemdebug:hardis",
"hardis:clean:systemdebug:project",
"clean:hardis:systemdebug:project",
"clean:systemdebug:hardis:project",
"clean:systemdebug:project:hardis",
"hardis:project:systemdebug:clean",
"project:hardis:systemdebug:clean",
"project:systemdebug:hardis:clean",
"project:systemdebug:clean:hardis",
"hardis:systemdebug:project:clean",
"systemdebug:hardis:project:clean",
"systemdebug:project:hardis:clean",
"systemdebug:project:clean:hardis",
"hardis:systemdebug:clean:project",
"systemdebug:hardis:clean:project",
"systemdebug:clean:hardis:project",
"systemdebug:clean:project:hardis"
]
},
"hardis:project:clean:xml": {
"aliases": [],
"args": {},
"description": "Remove XML elements using Glob patterns and XPath expressions\n \nThis can be very useful to avoid to always remove manually the same elements in the same XML file.\n\n- **globpattern** can be any glob pattern allowing to identify the XML files to update, for example `/**/*.flexipage-meta.xml`\n\n- **xpath** can be any xpath following the format `//ns:PARENT-TAG-NAME//ns:TAG-NAME[contains(text(),'TAG-VALUE')]`. If an element is found, the whole **PARENT-TAG-NAME** (with its subtree) will be removed.\n\n\n\nNote: If globpattern and xpath are not sent, elements defined in property **cleanXmlPatterns** in **.sfdx-hardis.yml** config file will be used\n \n ",
"examples": [
"$ sf hardis:project:clean:xml",
"$ sf hardis:project:clean:xml --globpattern \"/**/*.flexipage-meta.xml\" --xpath \"//ns:flexiPageRegions//ns:name[contains(text(),'dashboardName')]\""
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Root folder",
"name": "folder",
"default": "force-app",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"globpattern": {
"char": "p",
"dependsOn": [
"xpath"
],
"description": "Glob pattern to find files to clean. Ex: /**/*.flexipage-meta.xml",
"name": "globpattern",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"xpath": {
"char": "x",
"dependsOn": [
"globpattern"
],
"description": "XPath to use to detect the elements to remove. Ex: //ns:flexiPageRegions//ns:name[contains(text(),'dashboardName')]",
"name": "xpath",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"namespace": {
"char": "n",
"description": "XML Namespace to use",
"name": "namespace",
"default": "http://soap.sforce.com/2006/04/metadata",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:clean:xml",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Clean retrieved empty items in dx sources",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"clean",
"xml.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:clean:xml",
"project:hardis:clean:xml",
"project:clean:hardis:xml",
"project:clean:xml:hardis",
"hardis:clean:project:xml",
"clean:hardis:project:xml",
"clean:project:hardis:xml",
"clean:project:xml:hardis",
"hardis:clean:xml:project",
"clean:hardis:xml:project",
"clean:xml:hardis:project",
"clean:xml:project:hardis",
"hardis:project:xml:clean",
"project:hardis:xml:clean",
"project:xml:hardis:clean",
"project:xml:clean:hardis",
"hardis:xml:project:clean",
"xml:hardis:project:clean",
"xml:project:hardis:clean",
"xml:project:clean:hardis",
"hardis:xml:clean:project",
"xml:hardis:clean:project",
"xml:clean:hardis:project",
"xml:clean:project:hardis"
]
},
"hardis:project:convert:profilestopermsets": {
"aliases": [],
"args": {},
"description": "Creates permission sets from existing profiles, with id PS_PROFILENAME",
"examples": [
"$ sf hardis:project:convert:profilestopermsets"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"except": {
"char": "e",
"description": "List of filters",
"name": "except",
"default": [],
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:convert:profilestopermsets",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Convert Profiles into Permission Sets",
"requiresProject": true,
"requiresSfdxPlugins": [
"shane-sfdx-plugins"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"convert",
"profilestopermsets.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:convert:profilestopermsets",
"project:hardis:convert:profilestopermsets",
"project:convert:hardis:profilestopermsets",
"project:convert:profilestopermsets:hardis",
"hardis:convert:project:profilestopermsets",
"convert:hardis:project:profilestopermsets",
"convert:project:hardis:profilestopermsets",
"convert:project:profilestopermsets:hardis",
"hardis:convert:profilestopermsets:project",
"convert:hardis:profilestopermsets:project",
"convert:profilestopermsets:hardis:project",
"convert:profilestopermsets:project:hardis",
"hardis:project:profilestopermsets:convert",
"project:hardis:profilestopermsets:convert",
"project:profilestopermsets:hardis:convert",
"project:profilestopermsets:convert:hardis",
"hardis:profilestopermsets:project:convert",
"profilestopermsets:hardis:project:convert",
"profilestopermsets:project:hardis:convert",
"profilestopermsets:project:convert:hardis",
"hardis:profilestopermsets:convert:project",
"profilestopermsets:hardis:convert:project",
"profilestopermsets:convert:hardis:project",
"profilestopermsets:convert:project:hardis"
]
},
"hardis:project:fix:profiletabs": {
"aliases": [],
"args": {},
"description": "Interactive prompts to add tab visibilities that are not retrieved by project retrieve start",
"examples": [
"$ sf hardis:project:fix:profiletabs"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Root folder",
"name": "path",
"default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:fix:profiletabs",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Fix profiles to add tabs that are not retrieved by SF CLI",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"fix",
"profiletabs.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:fix:profiletabs",
"project:hardis:fix:profiletabs",
"project:fix:hardis:profiletabs",
"project:fix:profiletabs:hardis",
"hardis:fix:project:profiletabs",
"fix:hardis:project:profiletabs",
"fix:project:hardis:profiletabs",
"fix:project:profiletabs:hardis",
"hardis:fix:profiletabs:project",
"fix:hardis:profiletabs:project",
"fix:profiletabs:hardis:project",
"fix:profiletabs:project:hardis",
"hardis:project:profiletabs:fix",
"project:hardis:profiletabs:fix",
"project:profiletabs:hardis:fix",
"project:profiletabs:fix:hardis",
"hardis:profiletabs:project:fix",
"profiletabs:hardis:project:fix",
"profiletabs:project:hardis:fix",
"profiletabs:project:fix:hardis",
"hardis:profiletabs:fix:project",
"profiletabs:hardis:fix:project",
"profiletabs:fix:hardis:project",
"profiletabs:fix:project:hardis"
]
},
"hardis:project:fix:v53flexipages": {
"aliases": [],
"args": {},
"description": "Fix flexipages for apiVersion v53 (Winter22).\n\nNote: Update api version to 53.0 in package.xml and sfdx-project.json",
"examples": [
"$ sf hardis:project:fix:v53flexipages"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"path": {
"char": "p",
"description": "Root folder",
"name": "path",
"default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:fix:v53flexipages",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Fix flexipages for v53",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"fix",
"v53flexipages.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:fix:v53flexipages",
"project:hardis:fix:v53flexipages",
"project:fix:hardis:v53flexipages",
"project:fix:v53flexipages:hardis",
"hardis:fix:project:v53flexipages",
"fix:hardis:project:v53flexipages",
"fix:project:hardis:v53flexipages",
"fix:project:v53flexipages:hardis",
"hardis:fix:v53flexipages:project",
"fix:hardis:v53flexipages:project",
"fix:v53flexipages:hardis:project",
"fix:v53flexipages:project:hardis",
"hardis:project:v53flexipages:fix",
"project:hardis:v53flexipages:fix",
"project:v53flexipages:hardis:fix",
"project:v53flexipages:fix:hardis",
"hardis:v53flexipages:project:fix",
"v53flexipages:hardis:project:fix",
"v53flexipages:project:hardis:fix",
"v53flexipages:project:fix:hardis",
"hardis:v53flexipages:fix:project",
"v53flexipages:hardis:fix:project",
"v53flexipages:fix:hardis:project",
"v53flexipages:fix:project:hardis"
]
},
"hardis:project:deploy:notify": {
"aliases": [],
"args": {},
"description": "Post notifications related to:\n\n- **Deployment simulation** _(use with --check-only)_\n\n- **Deployment process** _(to call only if your deployment is successful)_\n\n### Integrations\n\nAccording to the [integrations you configured](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integrations-home/), notifications can contain deployment information and [Flow Visual Git Diff](https://sfdx-hardis.cloudity.com/salesforce-deployment-assistant-home/#flow-visual-git-diff)\n\n - GitHub, Gitlab, Azure DevOps, Bitbucket comments on Pull Requests (including Flows Visual Git Diff)\n\n - Slack, Microsoft Teams, Email deployment summary after a successful deployment\n\n - JIRA tags and comments on tickets that just has been deployed\n\n\n\n\n\n### Flows Visual Git Diff\n\n- Visually show you the differences on a diagram\n\n- Display the update details without having to open any XML !\n\n🟩 = added\n\n🟥 = removed\n\n🟧 = updated\n\n\n\n\n\n### In custom CI/CD workflow\n\nExample of usage in a custom CI/CD pipeline:\n\n```bash\n# Disable exit-on-error temporarily\nset +e\n\n# Run the deploy command\nsf project deploy start [....]\nRET_CODE=$?\n\n# Re-enable exit-on-error\nset -e\n\n# Determine MYSTATUS based on return code\nif [ $RET_CODE -eq 0 ]; then\n MYSTATUS=\"valid\"\nelse\n MYSTATUS=\"invalid\"\nfi\n\n# Run the notify command with MYSTATUS\nsf hardis:project:deploy:notify --check-only --deploy-status \"$MYSTATUS\"\n```\n\n### Other usages\n\nThis command is for custom SF Cli pipelines, if you are a sfdx-hardis user, it is already embedded in sf hardis:deploy:smart.\n\nYou can also use [sfdx-hardis wrapper commands of SF deployment commands](https://sfdx-hardis.cloudity.com/salesforce-deployment-assistant-setup/#using-custom-cicd-pipeline)\n",
"examples": [
"$ sf hardis:project:deploy:notify --check-only --deploy-status valid --message \"This deployment check is valid\\n\\nYahooo !!\"",
"$ sf hardis:project:deploy:notify --check-only --deploy-status invalid --message \"This deployment check has failed !\\n\\Oh no !!\"",
"$ sf hardis:project:deploy:notify --deploy-status valid --message \"This deployment has been processed !\\n\\nYahooo !!\""
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"check-only": {
"char": "c",
"description": "Use this option to send notifications from a Deployment simulation job",
"name": "check-only",
"allowNo": false,
"type": "boolean"
},
"deploy-status": {
"char": "s",
"description": "Send success, failure or unknown (default) to indicate if the deployment or deployment simulation is in success or not",
"name": "deploy-status",
"default": "unknown",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"valid",
"invalid",
"unknown"
],
"type": "option"
},
"message": {
"char": "m",
"description": "Custom message that you want to be added in notifications (string or markdown format)",
"name": "message",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:notify",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Deployment Notifications",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"notify.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:deploy:notify",
"project:hardis:deploy:notify",
"project:deploy:hardis:notify",
"project:deploy:notify:hardis",
"hardis:deploy:project:notify",
"deploy:hardis:project:notify",
"deploy:project:hardis:notify",
"deploy:project:notify:hardis",
"hardis:deploy:notify:project",
"deploy:hardis:notify:project",
"deploy:notify:hardis:project",
"deploy:notify:project:hardis",
"hardis:project:notify:deploy",
"project:hardis:notify:deploy",
"project:notify:hardis:deploy",
"project:notify:deploy:hardis",
"hardis:notify:project:deploy",
"notify:hardis:project:deploy",
"notify:project:hardis:deploy",
"notify:project:deploy:hardis",
"hardis:notify:deploy:project",
"notify:hardis:deploy:project",
"notify:deploy:hardis:project",
"notify:deploy:project:hardis"
]
},
"hardis:project:deploy:quick": {
"aliases": [
"hardis:deploy:quick"
],
"args": {},
"description": "sfdx-hardis wrapper for **sf project deploy quick** that displays tips to solve deployment errors.\n\nNote: Use **--json** argument to have better results\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm#cli_reference_project_deploy_quick_unified)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n",
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"api-version": {
"char": "a",
"description": "api-version",
"name": "api-version",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"async": {
"description": "async",
"exclusive": [
"wait"
],
"name": "async",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"char": "o",
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"tests": {
"description": "tests",
"name": "tests",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"--job-id": {
"char": "i",
"description": "job-id",
"name": "--job-id",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"--use-most-recent": {
"char": "r",
"description": "use-most-recent",
"name": "--use-most-recent",
"allowNo": false,
"type": "boolean"
},
"wait": {
"char": "w",
"description": "wait",
"exclusive": [
"async"
],
"name": "wait",
"default": 33,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:quick",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"quick.js"
],
"aliasPermutations": [
"hardis:deploy:quick",
"deploy:hardis:quick",
"deploy:quick:hardis",
"hardis:quick:deploy",
"quick:hardis:deploy",
"quick:deploy:hardis"
],
"permutations": [
"hardis:project:deploy:quick",
"project:hardis:deploy:quick",
"project:deploy:hardis:quick",
"project:deploy:quick:hardis",
"hardis:deploy:project:quick",
"deploy:hardis:project:quick",
"deploy:project:hardis:quick",
"deploy:project:quick:hardis",
"hardis:deploy:quick:project",
"deploy:hardis:quick:project",
"deploy:quick:hardis:project",
"deploy:quick:project:hardis",
"hardis:project:quick:deploy",
"project:hardis:quick:deploy",
"project:quick:hardis:deploy",
"project:quick:deploy:hardis",
"hardis:quick:project:deploy",
"quick:hardis:project:deploy",
"quick:project:hardis:deploy",
"quick:project:deploy:hardis",
"hardis:quick:deploy:project",
"quick:hardis:deploy:project",
"quick:deploy:hardis:project",
"quick:deploy:project:hardis"
]
},
"hardis:project:deploy:simulate": {
"aliases": [],
"args": {},
"description": "Simulate the deployment of a metadata in an org prompted to the user\n \nFor example, helps to solve the issue in a Permission Set without having to run a CI/CD job.\n\nUsed by VsCode Extension",
"examples": [
"$ sf hardis:project:deploy:simulate --source-dir force-app/defaut/main/permissionset/PS_Admin.permissionset-meta.xml"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"source-dir": {
"char": "f",
"description": "Source file or directory to simulate the deployment",
"name": "source-dir",
"required": true,
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:simulate",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Simulate the deployment of a metadata in an org prompted to the user\nUsed by VsCode Extension",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"simulate.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:deploy:simulate",
"project:hardis:deploy:simulate",
"project:deploy:hardis:simulate",
"project:deploy:simulate:hardis",
"hardis:deploy:project:simulate",
"deploy:hardis:project:simulate",
"deploy:project:hardis:simulate",
"deploy:project:simulate:hardis",
"hardis:deploy:simulate:project",
"deploy:hardis:simulate:project",
"deploy:simulate:hardis:project",
"deploy:simulate:project:hardis",
"hardis:project:simulate:deploy",
"project:hardis:simulate:deploy",
"project:simulate:hardis:deploy",
"project:simulate:deploy:hardis",
"hardis:simulate:project:deploy",
"simulate:hardis:project:deploy",
"simulate:project:hardis:deploy",
"simulate:project:deploy:hardis",
"hardis:simulate:deploy:project",
"simulate:hardis:deploy:project",
"simulate:deploy:hardis:project",
"simulate:deploy:project:hardis"
]
},
"hardis:project:deploy:smart": {
"aliases": [
"hardis:project:deploy:sources:dx"
],
"args": {},
"description": "Smart deploy of SFDX sources to target org, with many useful options.\n\nIn case of errors, [tips to fix them](https://sfdx-hardis.cloudity.com/deployTips/) will be included within the error messages.\n\n### Quick Deploy\n\nIn case Pull Request comments are configured on the project, Quick Deploy will try to be used (equivalent to button Quick Deploy)\n\nIf you do not want to use QuickDeploy, define variable `SFDX_HARDIS_QUICK_DEPLOY=false`\n\n- [GitHub Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-github/)\n- [Gitlab Merge requests notes config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-gitlab/)\n- [Azure Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-azure/)\n\n### Delta deployments\n\nTo activate delta deployments, define property `useDeltaDeployment: true` in `config/.sfdx-hardis.yml`.\n\nThis will activate delta deployments only between minor and major branches (major to major remains full deployment mode)\n\nIf you want to force the delta deployment into major orgs (ex: preprod to prod), this is not recommended but you can use env variable ALWAYS_ENABLE_DELTA_DEPLOYMENT=true\n\n### Smart Deployments Tests\n\nNot all metadata updates can break test classes, use Smart Deployment Tests to skip running test classes if ALL the following conditions are met:\n\n- Delta deployment is activated and applicable to the source and target branches\n- Delta deployed metadatas are all matching the list of **NOT_IMPACTING_METADATA_TYPES** (see below)\n- Target org is not a production org\n\nActivate Smart Deployment tests with:\n\n- env variable `USE_SMART_DEPLOYMENT_TESTS=true`\n- .sfdx-hardis.yml config property `useSmartDeploymentTests: true`\n\nDefaut list for **NOT_IMPACTING_METADATA_TYPES** (can be overridden with comma-separated list on env var NOT_IMPACTING_METADATA_TYPES)\n\n- Audience\n- AuraDefinitionBundle\n- Bot\n- BotVersion\n- ContentAsset\n- CustomObjectTranslation\n- CustomSite\n- CustomTab\n- Dashboard\n- ExperienceBundle\n- Flexipage\n- GlobalValueSetTranslation\n- Layout\n- LightningComponentBundle\n- NavigationMenu\n- ReportType\n- Report\n- SiteDotCom\n- StandardValueSetTranslation\n- StaticResource\n- Translations\n\nNote: if you want to disable Smart test classes for a PR, add **nosmart** in the text of the latest commit.\n\n### Dynamic deployment items / Overwrite management\n\nIf necessary,you can define the following files (that supports wildcards <members>*</members>):\n\n- `manifest/package-no-overwrite.xml`: Every element defined in this file will be deployed only if it is not existing yet in the target org (can be useful with ListView for example, if the client wants to update them directly in production org).\n - Can be overridden for a branch using .sfdx-hardis.yml property **packageNoOverwritePath** or environment variable PACKAGE_NO_OVERWRITE_PATH (for example, define: `packageNoOverwritePath: manifest/package-no-overwrite-main.xml` in config file `config/.sfdx-hardis.main.yml`)\n- `manifest/packageXmlOnChange.xml`: Every element defined in this file will not be deployed if it already has a similar definition in target org (can be useful for SharingRules for example)\n\nSee [Overwrite management documentation](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-config-overwrite/)\n\n### Packages installation\n\nYou can define a list of package to install during deployments using property `installedPackages`\n\n- If `INSTALL_PACKAGES_DURING_CHECK_DEPLOY` is defined as `true` (or `installPackagesDuringCheckDeploy: true` in `.sfdx-hardis.yml`), packages will be installed even if the command is called with `--check` mode\n- You can automatically update this property by listing all packages installed on an org using command `sf hardis:org:retrieve:packageconfig`\n\nExample:\n\n```yaml\ninstalledPackages:\n - Id: 0A35r0000009EtECAU\n SubscriberPackageId: 033i0000000LVMYAA4\n SubscriberPackageName: Marketing Cloud\n SubscriberPackageNamespace: et4ae5\n SubscriberPackageVersionId: 04t6S000000l11iQAA\n SubscriberPackageVersionName: Marketing Cloud\n SubscriberPackageVersionNumber: 236.0.0.2\n installOnScratchOrgs: true // true or false depending you want to install this package when creating a new scratch org\n installDuringDeployments: true // set as true to install package during a deployment using sf hardis:project:deploy:smart\n installationkey: xxxxxxxxxxxxxxxxxxxx // if the package has a password, write it in this property\n - Id: 0A35r0000009F9CCAU\n SubscriberPackageId: 033b0000000Pf2AAAS\n SubscriberPackageName: Declarative Lookup Rollup Summaries Tool\n SubscriberPackageNamespace: dlrs\n SubscriberPackageVersionId: 04t5p000001BmLvAAK\n SubscriberPackageVersionName: Release\n SubscriberPackageVersionNumber: 2.15.0.9\n installOnScratchOrgs: true\n installDuringDeployments: true\n```\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n\n### Pull Requests Custom Behaviors\n\nIf some words are found **in the Pull Request description**, special behaviors will be applied\n\n| Word | Behavior |\n| :--- | :--- |\n| NO_DELTA | Even if delta deployments are activated, a deployment in mode **full** will be performed for this Pull Request |\n| PURGE_FLOW_VERSIONS | After deployment, inactive and obsolete Flow Versions will be deleted (equivalent to command sf hardis:org:purge:flow)<br/>**Caution: This will also purge active Flow Interviews !** |\n| DESTRUCTIVE_CHANGES_AFTER_DEPLOYMENT | If a file manifest/destructiveChanges.xml is found, it will be executed in a separate step, after the deployment of the main package |\n\n> For example, define `PURGE_FLOW_VERSIONS` and `DESTRUCTIVE_CHANGES_AFTER_DEPLOYMENT` in your Pull Request comments if you want to delete fields that are used in an active flow.\n\nNote: it is also possible to define these behaviors as ENV variables:\n\n- For all deployments (example: `PURGE_FLOW_VERSIONS=true`)\n- For a specific branch, by appending the target branch name (example: `PURGE_FLOW_VERSIONS_UAT=true`)\n\n### Deployment plan (deprecated)\n\nIf you need to deploy in multiple steps, you can define a property `deploymentPlan` in `.sfdx-hardis.yml`.\n\n- If a file `manifest/package.xml` is found, it will be placed with order 0 in the deployment plan\n\n- If a file `manifest/destructiveChanges.xml` is found, it will be executed as --postdestructivechanges\n\n- If env var `SFDX_HARDIS_DEPLOY_IGNORE_SPLIT_PACKAGES` is defined as `false` , split of package.xml will be applied\n\nExample:\n\n```yaml\ndeploymentPlan:\n packages:\n - label: Deploy Flow-Workflow\n packageXmlFile: manifest/splits/packageXmlFlowWorkflow.xml\n order: 6\n - label: Deploy SharingRules - Case\n packageXmlFile: manifest/splits/packageXmlSharingRulesCase.xml\n order: 30\n waitAfter: 30\n```\n\n### Automated fixes post deployments\n\n#### List view with scope Mine\n\nIf you defined a property **listViewsToSetToMine** in your .sfdx-hardis.yml, related ListViews will be set to Mine ( see command <https://sfdx-hardis.cloudity.com/hardis/org/fix/listviewmine/> )\n\nExample:\n\n```yaml\nlistViewsToSetToMine:\n - \"Operation__c:MyCurrentOperations\"\n - \"Operation__c:MyFinalizedOperations\"\n - \"Opportunity:Default_Opportunity_Pipeline\"\n - \"Opportunity:MyCurrentSubscriptions\"\n - \"Opportunity:MySubscriptions\"\n - \"Account:MyActivePartners\"\n```\n\nTroubleshooting: if you need to fix ListViews with mine from an alpine-linux based docker image, use this workaround in your dockerfile:\n\n```dockerfile\n# Do not use puppeteer embedded chromium\nRUN apk add --update --no-cache chromium\nENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=\"true\"\nENV CHROMIUM_PATH=\"/usr/bin/chromium-browser\"\nENV PUPPETEER_EXECUTABLE_PATH=\"$\\{CHROMIUM_PATH}\" // remove \\ before {\n```\n\nIf you need to increase the deployment waiting time (sf project deploy start --wait arg), you can define env variable SFDX_DEPLOY_WAIT_MINUTES (default: 120)\n\nIf you need notifications to be sent using the current Pull Request and not the one just merged ([see use case](https://github.com/hardisgroupcom/sfdx-hardis/issues/637#issuecomment-2230798904)), define env variable SFDX_HARDIS_DEPLOY_BEFORE_MERGE=true\n\nIf you want to disable the calculation and display of Flow Visual Git Diff in Pull Request comments, define variable **SFDX_DISABLE_FLOW_DIFF=true**\n",
"examples": [
"$ sf hardis:project:deploy:smart",
"$ sf hardis:project:deploy:smart --check",
"$ sf hardis:project:deploy:smart --check --testlevel RunRepositoryTests",
"$ sf hardis:project:deploy:smart --check --testlevel RunRepositoryTests --runtests '^(?!FLI|MyPrefix).*'",
"$ sf hardis:project:deploy:smart --check --testlevel RunRepositoryTestsExceptSeeAllData",
"$ sf hardis:project:deploy:smart",
"$ FORCE_TARGET_BRANCH=preprod NODE_OPTIONS=--inspect-brk sf hardis:project:deploy:smart --check --websocket localhost:2702 --skipauth --target-org nicolas.vuillamy@myclient.com.preprod",
"$ SYSTEM_ACCESSTOKEN=xxxxxx SYSTEM_COLLECTIONURI=https://dev.azure.com/xxxxxxx/ SYSTEM_TEAMPROJECT=\"xxxxxxx\" BUILD_REPOSITORY_ID=xxxxx SYSTEM_PULLREQUEST_PULLREQUESTID=1418 FORCE_TARGET_BRANCH=uat NODE_OPTIONS=--inspect-brk sf hardis:project:deploy:smart --check --websocket localhost:2702 --skipauth --target-org my.salesforce@org.com",
"$ CI_SFDX_HARDIS_BITBUCKET_TOKEN=xxxxxx BITBUCKET_WORKSPACE=sfdxhardis-demo BITBUCKET_REPO_SLUG=test BITBUCKET_BUILD_NUMBER=1 BITBUCKET_BRANCH=uat BITBUCKET_PR_ID=2 FORCE_TARGET_BRANCH=uat NODE_OPTIONS=--inspect-brk sf hardis:project:deploy:smart --check --websocket localhost:2702 --skipauth --target-org my-salesforce-org@client.com",
"$ GITHUB_TOKEN=xxxx GITHUB_REPOSITORY=my-user/my-repo FORCE_TARGET_BRANCH=uat NODE_OPTIONS=--inspect-brk sf hardis:project:deploy:smart --check --websocket localhost:2702 --skipauth --target-org my-salesforce-org@client.com"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"check": {
"char": "c",
"description": "Only checks the deployment, there is no impact on target org",
"name": "check",
"allowNo": false,
"type": "boolean"
},
"testlevel": {
"char": "l",
"description": "Level of tests to validate deployment. RunRepositoryTests auto-detect and run all repository test classes",
"name": "testlevel",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"NoTestRun",
"RunSpecifiedTests",
"RunRepositoryTests",
"RunRepositoryTestsExceptSeeAllData",
"RunLocalTests",
"RunAllTestsInOrg"
],
"type": "option"
},
"runtests": {
"char": "r",
"description": "If testlevel=RunSpecifiedTests, please provide a list of classes.\nIf testlevel=RunRepositoryTests, can contain a regular expression to keep only class names matching it. If not set, will run all test classes found in the repo.",
"name": "runtests",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexml": {
"char": "p",
"description": "Path to package.xml containing what you want to deploy in target org",
"name": "packagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"delta": {
"description": "Applies sfdx-git-delta to package.xml before other deployment processes",
"name": "delta",
"allowNo": false,
"type": "boolean"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:smart",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Smart Deploy sfdx sources to org",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"smart.js"
],
"aliasPermutations": [
"hardis:project:deploy:sources:dx",
"project:hardis:deploy:sources:dx",
"project:deploy:hardis:sources:dx",
"project:deploy:sources:hardis:dx",
"project:deploy:sources:dx:hardis",
"hardis:deploy:project:sources:dx",
"deploy:hardis:project:sources:dx",
"deploy:project:hardis:sources:dx",
"deploy:project:sources:hardis:dx",
"deploy:project:sources:dx:hardis",
"hardis:deploy:sources:project:dx",
"deploy:hardis:sources:project:dx",
"deploy:sources:hardis:project:dx",
"deploy:sources:project:hardis:dx",
"deploy:sources:project:dx:hardis",
"hardis:deploy:sources:dx:project",
"deploy:hardis:sources:dx:project",
"deploy:sources:hardis:dx:project",
"deploy:sources:dx:hardis:project",
"deploy:sources:dx:project:hardis",
"hardis:project:sources:deploy:dx",
"project:hardis:sources:deploy:dx",
"project:sources:hardis:deploy:dx",
"project:sources:deploy:hardis:dx",
"project:sources:deploy:dx:hardis",
"hardis:sources:project:deploy:dx",
"sources:hardis:project:deploy:dx",
"sources:project:hardis:deploy:dx",
"sources:project:deploy:hardis:dx",
"sources:project:deploy:dx:hardis",
"hardis:sources:deploy:project:dx",
"sources:hardis:deploy:project:dx",
"sources:deploy:hardis:project:dx",
"sources:deploy:project:hardis:dx",
"sources:deploy:project:dx:hardis",
"hardis:sources:deploy:dx:project",
"sources:hardis:deploy:dx:project",
"sources:deploy:hardis:dx:project",
"sources:deploy:dx:hardis:project",
"sources:deploy:dx:project:hardis",
"hardis:project:sources:dx:deploy",
"project:hardis:sources:dx:deploy",
"project:sources:hardis:dx:deploy",
"project:sources:dx:hardis:deploy",
"project:sources:dx:deploy:hardis",
"hardis:sources:project:dx:deploy",
"sources:hardis:project:dx:deploy",
"sources:project:hardis:dx:deploy",
"sources:project:dx:hardis:deploy",
"sources:project:dx:deploy:hardis",
"hardis:sources:dx:project:deploy",
"sources:hardis:dx:project:deploy",
"sources:dx:hardis:project:deploy",
"sources:dx:project:hardis:deploy",
"sources:dx:project:deploy:hardis",
"hardis:sources:dx:deploy:project",
"sources:hardis:dx:deploy:project",
"sources:dx:hardis:deploy:project",
"sources:dx:deploy:hardis:project",
"sources:dx:deploy:project:hardis",
"hardis:project:deploy:dx:sources",
"project:hardis:deploy:dx:sources",
"project:deploy:hardis:dx:sources",
"project:deploy:dx:hardis:sources",
"project:deploy:dx:sources:hardis",
"hardis:deploy:project:dx:sources",
"deploy:hardis:project:dx:sources",
"deploy:project:hardis:dx:sources",
"deploy:project:dx:hardis:sources",
"deploy:project:dx:sources:hardis",
"hardis:deploy:dx:project:sources",
"deploy:hardis:dx:project:sources",
"deploy:dx:hardis:project:sources",
"deploy:dx:project:hardis:sources",
"deploy:dx:project:sources:hardis",
"hardis:deploy:dx:sources:project",
"deploy:hardis:dx:sources:project",
"deploy:dx:hardis:sources:project",
"deploy:dx:sources:hardis:project",
"deploy:dx:sources:project:hardis",
"hardis:project:dx:deploy:sources",
"project:hardis:dx:deploy:sources",
"project:dx:hardis:deploy:sources",
"project:dx:deploy:hardis:sources",
"project:dx:deploy:sources:hardis",
"hardis:dx:project:deploy:sources",
"dx:hardis:project:deploy:sources",
"dx:project:hardis:deploy:sources",
"dx:project:deploy:hardis:sources",
"dx:project:deploy:sources:hardis",
"hardis:dx:deploy:project:sources",
"dx:hardis:deploy:project:sources",
"dx:deploy:hardis:project:sources",
"dx:deploy:project:hardis:sources",
"dx:deploy:project:sources:hardis",
"hardis:dx:deploy:sources:project",
"dx:hardis:deploy:sources:project",
"dx:deploy:hardis:sources:project",
"dx:deploy:sources:hardis:project",
"dx:deploy:sources:project:hardis",
"hardis:project:dx:sources:deploy",
"project:hardis:dx:sources:deploy",
"project:dx:hardis:sources:deploy",
"project:dx:sources:hardis:deploy",
"project:dx:sources:deploy:hardis",
"hardis:dx:project:sources:deploy",
"dx:hardis:project:sources:deploy",
"dx:project:hardis:sources:deploy",
"dx:project:sources:hardis:deploy",
"dx:project:sources:deploy:hardis",
"hardis:dx:sources:project:deploy",
"dx:hardis:sources:project:deploy",
"dx:sources:hardis:project:deploy",
"dx:sources:project:hardis:deploy",
"dx:sources:project:deploy:hardis",
"hardis:dx:sources:deploy:project",
"dx:hardis:sources:deploy:project",
"dx:sources:hardis:deploy:project",
"dx:sources:deploy:hardis:project",
"dx:sources:deploy:project:hardis"
],
"permutations": [
"hardis:project:deploy:smart",
"project:hardis:deploy:smart",
"project:deploy:hardis:smart",
"project:deploy:smart:hardis",
"hardis:deploy:project:smart",
"deploy:hardis:project:smart",
"deploy:project:hardis:smart",
"deploy:project:smart:hardis",
"hardis:deploy:smart:project",
"deploy:hardis:smart:project",
"deploy:smart:hardis:project",
"deploy:smart:project:hardis",
"hardis:project:smart:deploy",
"project:hardis:smart:deploy",
"project:smart:hardis:deploy",
"project:smart:deploy:hardis",
"hardis:smart:project:deploy",
"smart:hardis:project:deploy",
"smart:project:hardis:deploy",
"smart:project:deploy:hardis",
"hardis:smart:deploy:project",
"smart:hardis:deploy:project",
"smart:deploy:hardis:project",
"smart:deploy:project:hardis"
]
},
"hardis:project:deploy:start": {
"aliases": [
"hardis:deploy:start"
],
"args": {},
"description": "sfdx-hardis wrapper for **sf project deploy start** that displays tips to solve deployment errors.\n\nNote: Use **--json** argument to have better results\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm#cli_reference_project_deploy_start_unified)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n",
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"api-version": {
"char": "a",
"description": "api-version",
"name": "api-version",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"async": {
"description": "async",
"exclusive": [
"wait"
],
"name": "async",
"allowNo": false,
"type": "boolean"
},
"dry-run": {
"description": "dry-run",
"name": "dry-run",
"allowNo": false,
"type": "boolean"
},
"ignore-conflicts": {
"char": "c",
"description": "ignore-conflicts",
"name": "ignore-conflicts",
"allowNo": false,
"type": "boolean"
},
"ignore-errors": {
"char": "r",
"description": "ignore-errors",
"name": "ignore-errors",
"allowNo": false,
"type": "boolean"
},
"ignore-warnings": {
"char": "g",
"description": "ignore-warnings",
"name": "ignore-warnings",
"allowNo": false,
"type": "boolean"
},
"manifest": {
"char": "x",
"description": "manifest",
"name": "manifest",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"metadata": {
"char": "m",
"description": "metadata",
"name": "metadata",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"metadata-dir": {
"description": "metadata-dir",
"name": "metadata-dir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"single-package": {
"dependsOn": [
"metadata-dir"
],
"description": "single-package",
"name": "single-package",
"allowNo": false,
"type": "boolean"
},
"source-dir": {
"char": "d",
"description": "source-dir",
"name": "source-dir",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"target-org": {
"char": "o",
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"tests": {
"description": "tests",
"name": "tests",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"test-level": {
"description": "test-level",
"name": "test-level",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"wait": {
"char": "w",
"description": "wait",
"exclusive": [
"async"
],
"name": "wait",
"default": 33,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"purge-on-delete": {
"description": "purge-on-delete",
"name": "purge-on-delete",
"allowNo": false,
"type": "boolean"
},
"pre-destructive-changes": {
"dependsOn": [
"manifest"
],
"description": "pre-destructive-changes",
"name": "pre-destructive-changes",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"post-destructive-changes": {
"dependsOn": [
"manifest"
],
"description": "post-destructive-changes",
"name": "post-destructive-changes",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"coverage-formatters": {
"description": "coverage-formatters",
"name": "coverage-formatters",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"junit": {
"description": "junit",
"name": "junit",
"allowNo": false,
"type": "boolean"
},
"results-dir": {
"description": "results-dir",
"name": "results-dir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:start",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"start.js"
],
"aliasPermutations": [
"hardis:deploy:start",
"deploy:hardis:start",
"deploy:start:hardis",
"hardis:start:deploy",
"start:hardis:deploy",
"start:deploy:hardis"
],
"permutations": [
"hardis:project:deploy:start",
"project:hardis:deploy:start",
"project:deploy:hardis:start",
"project:deploy:start:hardis",
"hardis:deploy:project:start",
"deploy:hardis:project:start",
"deploy:project:hardis:start",
"deploy:project:start:hardis",
"hardis:deploy:start:project",
"deploy:hardis:start:project",
"deploy:start:hardis:project",
"deploy:start:project:hardis",
"hardis:project:start:deploy",
"project:hardis:start:deploy",
"project:start:hardis:deploy",
"project:start:deploy:hardis",
"hardis:start:project:deploy",
"start:hardis:project:deploy",
"start:project:hardis:deploy",
"start:project:deploy:hardis",
"hardis:start:deploy:project",
"start:hardis:deploy:project",
"start:deploy:hardis:project",
"start:deploy:project:hardis"
]
},
"hardis:project:deploy:validate": {
"aliases": [
"hardis:deploy:validate"
],
"args": {},
"description": "sfdx-hardis wrapper for **sf project deploy validate** that displays tips to solve deployment errors.\n\nNote: Use **--json** argument to have better results\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm#cli_reference_project_deploy_validate_unified)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n",
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"api-version": {
"char": "a",
"description": "api-version",
"name": "api-version",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"async": {
"description": "async",
"exclusive": [
"wait"
],
"name": "async",
"allowNo": false,
"type": "boolean"
},
"dry-run": {
"description": "dry-run",
"name": "dry-run",
"allowNo": false,
"type": "boolean"
},
"ignore-conflicts": {
"char": "c",
"description": "ignore-conflicts",
"name": "ignore-conflicts",
"allowNo": false,
"type": "boolean"
},
"ignore-errors": {
"char": "r",
"description": "ignore-errors",
"name": "ignore-errors",
"allowNo": false,
"type": "boolean"
},
"ignore-warnings": {
"char": "g",
"description": "ignore-warnings",
"name": "ignore-warnings",
"allowNo": false,
"type": "boolean"
},
"manifest": {
"char": "x",
"description": "manifest",
"name": "manifest",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"metadata": {
"char": "m",
"description": "metadata",
"name": "metadata",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"metadata-dir": {
"description": "metadata-dir",
"name": "metadata-dir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"single-package": {
"dependsOn": [
"metadata-dir"
],
"description": "single-package",
"name": "single-package",
"allowNo": false,
"type": "boolean"
},
"source-dir": {
"char": "d",
"description": "source-dir",
"name": "source-dir",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"target-org": {
"char": "o",
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"tests": {
"description": "tests",
"name": "tests",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"test-level": {
"description": "test-level",
"name": "test-level",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"wait": {
"char": "w",
"description": "wait",
"exclusive": [
"async"
],
"name": "wait",
"default": 33,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"purge-on-delete": {
"description": "purge-on-delete",
"name": "purge-on-delete",
"allowNo": false,
"type": "boolean"
},
"pre-destructive-changes": {
"dependsOn": [
"manifest"
],
"description": "pre-destructive-changes",
"name": "pre-destructive-changes",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"post-destructive-changes": {
"dependsOn": [
"manifest"
],
"description": "post-destructive-changes",
"name": "post-destructive-changes",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"coverage-formatters": {
"description": "coverage-formatters",
"name": "coverage-formatters",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"junit": {
"description": "junit",
"name": "junit",
"allowNo": false,
"type": "boolean"
},
"results-dir": {
"description": "results-dir",
"name": "results-dir",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"description": "debug",
"name": "debug",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:validate",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"validate.js"
],
"aliasPermutations": [
"hardis:deploy:validate",
"deploy:hardis:validate",
"deploy:validate:hardis",
"hardis:validate:deploy",
"validate:hardis:deploy",
"validate:deploy:hardis"
],
"permutations": [
"hardis:project:deploy:validate",
"project:hardis:deploy:validate",
"project:deploy:hardis:validate",
"project:deploy:validate:hardis",
"hardis:deploy:project:validate",
"deploy:hardis:project:validate",
"deploy:project:hardis:validate",
"deploy:project:validate:hardis",
"hardis:deploy:validate:project",
"deploy:hardis:validate:project",
"deploy:validate:hardis:project",
"deploy:validate:project:hardis",
"hardis:project:validate:deploy",
"project:hardis:validate:deploy",
"project:validate:hardis:deploy",
"project:validate:deploy:hardis",
"hardis:validate:project:deploy",
"validate:hardis:project:deploy",
"validate:project:hardis:deploy",
"validate:project:deploy:hardis",
"hardis:validate:deploy:project",
"validate:hardis:deploy:project",
"validate:deploy:hardis:project",
"validate:deploy:project:hardis"
]
},
"hardis:project:generate:bypass": {
"aliases": [],
"args": {},
"description": "\n Generates bypass custom permissions and permission sets for specified sObjects and automations (Flows, Triggers, and Validation Rules). If no parameters are provided, it prompts for user selection.\n ",
"examples": [
"$ sf hardis:project:generate:bypass",
"$ sf hardis:project:generate:bypass --sObjects Account,Contact,Opportunity",
"$ sf hardis:project:generate:bypass --automations Flow,Trigger,VR",
"$ sf hardis:project:generate:bypass --sObjects Account,Opportunity --automations Flow,Trigger",
"$ sf hardis:project:generate:bypass --skipCredits",
"$ sf hardis:project:generate:bypass --apply-to-vrs",
"$ sf hardis:project:generate:bypass --apply-to-triggers",
"$ sf hardis:project:generate:bypass --metadata-source org"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
},
"objects": {
"aliases": [
"sObjects"
],
"char": "s",
"description": "Comma-separated list of sObjects to bypass (e.g., Account,Contact,Opportunity). If omitted, you will be prompted to select.",
"name": "objects",
"required": false,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"automations": {
"char": "a",
"description": "Comma-separated automations to bypass: Flow, Trigger, VR",
"name": "automations",
"required": false,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"skip-credits": {
"aliases": [
"skipCredits"
],
"char": "k",
"description": "Omit the \"Generated by\" line in the XML files",
"name": "skip-credits",
"required": false,
"allowNo": false,
"type": "boolean"
},
"apply-to-vrs": {
"aliases": [
"applyToVrs"
],
"description": "Apply bypass to Validation Rules",
"name": "apply-to-vrs",
"required": false,
"allowNo": false,
"type": "boolean"
},
"apply-to-triggers": {
"aliases": [
"applyToTriggers"
],
"description": "Apply bypass to Triggers",
"name": "apply-to-triggers",
"required": false,
"allowNo": false,
"type": "boolean"
},
"metadata-source": {
"aliases": [
"metadataSource"
],
"char": "r",
"description": "Source of metadata elements to apply bypass to. Options: 'org' or 'local'.",
"name": "metadata-source",
"required": false,
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:generate:bypass",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"generate",
"bypass.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:generate:bypass",
"project:hardis:generate:bypass",
"project:generate:hardis:bypass",
"project:generate:bypass:hardis",
"hardis:generate:project:bypass",
"generate:hardis:project:bypass",
"generate:project:hardis:bypass",
"generate:project:bypass:hardis",
"hardis:generate:bypass:project",
"generate:hardis:bypass:project",
"generate:bypass:hardis:project",
"generate:bypass:project:hardis",
"hardis:project:bypass:generate",
"project:hardis:bypass:generate",
"project:bypass:hardis:generate",
"project:bypass:generate:hardis",
"hardis:bypass:project:generate",
"bypass:hardis:project:generate",
"bypass:project:hardis:generate",
"bypass:project:generate:hardis",
"hardis:bypass:generate:project",
"bypass:hardis:generate:project",
"bypass:generate:hardis:project",
"bypass:generate:project:hardis"
]
},
"hardis:project:generate:flow-git-diff": {
"aliases": [],
"args": {},
"description": "Generate Flow Visual Git Diff markdown between 2 commits\n\nNote: This command might requires @mermaid-js/mermaid-cli to be installed.\n\nRun `npm install @mermaid-js/mermaid-cli --global`\n ",
"examples": [
"$ sf hardis:project:generate:flow-git-diff",
"$ sf hardis:project:generate:flow-git-diff --flow \"force-app/main/default/flows/Opportunity_AfterUpdate_Cloudity.flow-meta.xml\" --commit-before 8bd290e914c9dbdde859dad7e3c399776160d704 --commit-after e0835251bef6e400fb91e42f3a31022f37840f65"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"flow": {
"description": "Path to flow file (will be prompted if not set)",
"name": "flow",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"commit-before": {
"description": "Hash of the commit of the previous flow state, or \"allStates\" (will be prompted if not set)",
"name": "commit-before",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"commit-after": {
"description": "Hash of the commit of the new flow state (will be prompted if not set)",
"name": "commit-after",
"default": "",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:generate:flow-git-diff",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Generate Flow Visual Gif Diff",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"generate",
"flow-git-diff.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:generate:flow-git-diff",
"project:hardis:generate:flow-git-diff",
"project:generate:hardis:flow-git-diff",
"project:generate:flow-git-diff:hardis",
"hardis:generate:project:flow-git-diff",
"generate:hardis:project:flow-git-diff",
"generate:project:hardis:flow-git-diff",
"generate:project:flow-git-diff:hardis",
"hardis:generate:flow-git-diff:project",
"generate:hardis:flow-git-diff:project",
"generate:flow-git-diff:hardis:project",
"generate:flow-git-diff:project:hardis",
"hardis:project:flow-git-diff:generate",
"project:hardis:flow-git-diff:generate",
"project:flow-git-diff:hardis:generate",
"project:flow-git-diff:generate:hardis",
"hardis:flow-git-diff:project:generate",
"flow-git-diff:hardis:project:generate",
"flow-git-diff:project:hardis:generate",
"flow-git-diff:project:generate:hardis",
"hardis:flow-git-diff:generate:project",
"flow-git-diff:hardis:generate:project",
"flow-git-diff:generate:hardis:project",
"flow-git-diff:generate:project:hardis"
]
},
"hardis:project:generate:gitdelta": {
"aliases": [],
"args": {},
"description": "Generate package.xml git delta between 2 commits",
"examples": [
"$ sf hardis:project:generate:gitdelta"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"branch": {
"description": "Git branch to use to generate delta",
"name": "branch",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"fromcommit": {
"description": "Hash of commit to start from",
"name": "fromcommit",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"tocommit": {
"description": "Hash of commit to stop at",
"name": "tocommit",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:generate:gitdelta",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Generate Git Delta",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"generate",
"gitdelta.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:generate:gitdelta",
"project:hardis:generate:gitdelta",
"project:generate:hardis:gitdelta",
"project:generate:gitdelta:hardis",
"hardis:generate:project:gitdelta",
"generate:hardis:project:gitdelta",
"generate:project:hardis:gitdelta",
"generate:project:gitdelta:hardis",
"hardis:generate:gitdelta:project",
"generate:hardis:gitdelta:project",
"generate:gitdelta:hardis:project",
"generate:gitdelta:project:hardis",
"hardis:project:gitdelta:generate",
"project:hardis:gitdelta:generate",
"project:gitdelta:hardis:generate",
"project:gitdelta:generate:hardis",
"hardis:gitdelta:project:generate",
"gitdelta:hardis:project:generate",
"gitdelta:project:hardis:generate",
"gitdelta:project:generate:hardis",
"hardis:gitdelta:generate:project",
"gitdelta:hardis:generate:project",
"gitdelta:generate:hardis:project",
"gitdelta:generate:project:hardis"
]
},
"hardis:project:metadata:findduplicates": {
"aliases": [],
"args": {},
"description": "find duplicate values in XML file(s).\n Find duplicate values in XML file(s). Keys to be checked can be configured in `config/sfdx-hardis.yml` using property metadataDuplicateFindKeys.\n\nDefault config :\nmetadataDuplicateFindKeys :\n[object Object]\n",
"examples": [
"\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Layout xmlns=\"http://soap.sforce.com/2006/04/metadata\">\n <layoutSections>\n ...\n <layoutColumns>\n <layoutItems>\n <behavior>Required</behavior>\n <field>Name</field>\n </layoutItems>\n <layoutItems>\n <behavior>Required</behavior>\n <field>Name</field>\n </layoutItems>\n </layoutColumns>\n </layoutSections>\n</Layout>\n",
"\n$ sf hardis:project:metadata:findduplicates --file layout.layout-meta.xml\n[sfdx-hardis] Duplicate values in layout.layout-meta.xml\n - Key : Layout.layoutSections.layoutColumns.layoutItems.field\n - Values : Name\n",
"\n$ sf hardis:project.metadata:findduplicates -f \"force-app/main/default/**/*.xml\"\n[sfdx-hardis] hardis:project:metadata:findduplicates execution time 0:00:00.397\n[sfdx-hardis] Duplicate values in layout1.layout-meta.xml\n - Key : Layout.layoutSections.layoutColumns.layoutItems.field\n - Values : CreatedById\n\n[sfdx-hardis] Duplicate values in layout2.layout-meta.xml\n - Key : Layout.layoutSections.layoutColumns.layoutItems.field\n - Values : LastModifiedById, Name\n"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"files": {
"char": "f",
"description": "XML metadata files path",
"name": "files",
"hasDynamicHelp": false,
"multiple": true,
"type": "option"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
}
},
"hasDynamicHelp": false,
"hiddenAliases": [],
"id": "hardis:project:metadata:findduplicates",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"metadataDuplicateFindKeys": {
"layout": [
"Layout.layoutSections.layoutColumns.layoutItems.field",
"Layout.quickActionListItems.quickActionName"
],
"profile": [
"Profile.fieldPermissions.field",
"Profile.objectPermissions.object",
"Profile.classAccesses.apexClass"
],
"labels": [
"CustomLabels.labels.fullName"
],
"permissionset": [
"PermissionSet.fieldPermissions.field",
"PermissionSet.objectPermissions.object",
"PermissionSet.classAccesses.apexClass"
]
},
"title": "XML duplicate values finder",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"metadata",
"findduplicates.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:metadata:findduplicates",
"project:hardis:metadata:findduplicates",
"project:metadata:hardis:findduplicates",
"project:metadata:findduplicates:hardis",
"hardis:metadata:project:findduplicates",
"metadata:hardis:project:findduplicates",
"metadata:project:hardis:findduplicates",
"metadata:project:findduplicates:hardis",
"hardis:metadata:findduplicates:project",
"metadata:hardis:findduplicates:project",
"metadata:findduplicates:hardis:project",
"metadata:findduplicates:project:hardis",
"hardis:project:findduplicates:metadata",
"project:hardis:findduplicates:metadata",
"project:findduplicates:hardis:metadata",
"project:findduplicates:metadata:hardis",
"hardis:findduplicates:project:metadata",
"findduplicates:hardis:project:metadata",
"findduplicates:project:hardis:metadata",
"findduplicates:project:metadata:hardis",
"hardis:findduplicates:metadata:project",
"findduplicates:hardis:metadata:project",
"findduplicates:metadata:hardis:project",
"findduplicates:metadata:project:hardis"
]
},
"hardis:scratch:pool:create": {
"aliases": [],
"args": {},
"description": "Select a data storage service and configure information to build a scratch org pool\n\n Run the command, follow instruction, then you need to schedule a daily CI job for the pool maintenance:\n\n - Define CI ENV variable SCRATCH_ORG_POOL with value \"true\"\n\n - Call the following lines in the CI job:\n\n```shell\n sf hardis:auth:login --devhub\n sf hardis:scratch:pool:refresh\n```\n ",
"examples": [
"$ sf hardis:scratch:pool:configure"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pool:create",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Create and configure scratch org pool",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pool",
"create.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pool:create",
"scratch:hardis:pool:create",
"scratch:pool:hardis:create",
"scratch:pool:create:hardis",
"hardis:pool:scratch:create",
"pool:hardis:scratch:create",
"pool:scratch:hardis:create",
"pool:scratch:create:hardis",
"hardis:pool:create:scratch",
"pool:hardis:create:scratch",
"pool:create:hardis:scratch",
"pool:create:scratch:hardis",
"hardis:scratch:create:pool",
"scratch:hardis:create:pool",
"scratch:create:hardis:pool",
"scratch:create:pool:hardis",
"hardis:create:scratch:pool",
"create:hardis:scratch:pool",
"create:scratch:hardis:pool",
"create:scratch:pool:hardis",
"hardis:create:pool:scratch",
"create:hardis:pool:scratch",
"create:pool:hardis:scratch",
"create:pool:scratch:hardis"
]
},
"hardis:scratch:pool:localauth": {
"aliases": [],
"args": {},
"description": "Calls the related storage service to request api keys and secrets that allows a local user to fetch a scratch org from scratch org pool",
"examples": [
"$ sf hardis:scratch:pool:localauth"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pool:localauth",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Authenticate locally to scratch org pool",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pool",
"localauth.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pool:localauth",
"scratch:hardis:pool:localauth",
"scratch:pool:hardis:localauth",
"scratch:pool:localauth:hardis",
"hardis:pool:scratch:localauth",
"pool:hardis:scratch:localauth",
"pool:scratch:hardis:localauth",
"pool:scratch:localauth:hardis",
"hardis:pool:localauth:scratch",
"pool:hardis:localauth:scratch",
"pool:localauth:hardis:scratch",
"pool:localauth:scratch:hardis",
"hardis:scratch:localauth:pool",
"scratch:hardis:localauth:pool",
"scratch:localauth:hardis:pool",
"scratch:localauth:pool:hardis",
"hardis:localauth:scratch:pool",
"localauth:hardis:scratch:pool",
"localauth:scratch:hardis:pool",
"localauth:scratch:pool:hardis",
"hardis:localauth:pool:scratch",
"localauth:hardis:pool:scratch",
"localauth:pool:hardis:scratch",
"localauth:pool:scratch:hardis"
]
},
"hardis:scratch:pool:refresh": {
"aliases": [],
"args": {},
"description": "Create enough scratch orgs to fill the pool",
"examples": [
"$ sf hardis:scratch:pool:refresh"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pool:refresh",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Refresh scratch org pool",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pool",
"refresh.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pool:refresh",
"scratch:hardis:pool:refresh",
"scratch:pool:hardis:refresh",
"scratch:pool:refresh:hardis",
"hardis:pool:scratch:refresh",
"pool:hardis:scratch:refresh",
"pool:scratch:hardis:refresh",
"pool:scratch:refresh:hardis",
"hardis:pool:refresh:scratch",
"pool:hardis:refresh:scratch",
"pool:refresh:hardis:scratch",
"pool:refresh:scratch:hardis",
"hardis:scratch:refresh:pool",
"scratch:hardis:refresh:pool",
"scratch:refresh:hardis:pool",
"scratch:refresh:pool:hardis",
"hardis:refresh:scratch:pool",
"refresh:hardis:scratch:pool",
"refresh:scratch:hardis:pool",
"refresh:scratch:pool:hardis",
"hardis:refresh:pool:scratch",
"refresh:hardis:pool:scratch",
"refresh:pool:hardis:scratch",
"refresh:pool:scratch:hardis"
]
},
"hardis:scratch:pool:reset": {
"aliases": [],
"args": {},
"description": "Reset scratch org pool (delete all scratches in the pool)",
"examples": [
"$ sf hardis:scratch:pool:refresh"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pool:reset",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Reset scratch org pool",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pool",
"reset.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pool:reset",
"scratch:hardis:pool:reset",
"scratch:pool:hardis:reset",
"scratch:pool:reset:hardis",
"hardis:pool:scratch:reset",
"pool:hardis:scratch:reset",
"pool:scratch:hardis:reset",
"pool:scratch:reset:hardis",
"hardis:pool:reset:scratch",
"pool:hardis:reset:scratch",
"pool:reset:hardis:scratch",
"pool:reset:scratch:hardis",
"hardis:scratch:reset:pool",
"scratch:hardis:reset:pool",
"scratch:reset:hardis:pool",
"scratch:reset:pool:hardis",
"hardis:reset:scratch:pool",
"reset:hardis:scratch:pool",
"reset:scratch:hardis:pool",
"reset:scratch:pool:hardis",
"hardis:reset:pool:scratch",
"reset:hardis:pool:scratch",
"reset:pool:hardis:scratch",
"reset:pool:scratch:hardis"
]
},
"hardis:scratch:pool:view": {
"aliases": [],
"args": {},
"description": "Displays all stored content of project scratch org pool if defined",
"examples": [
"$ sf hardis:scratch:pool:view"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-dev-hub": {
"aliases": [
"targetdevhubusername"
],
"char": "v",
"deprecateAliases": true,
"name": "target-dev-hub",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:scratch:pool:view",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "View scratch org pool info",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"scratch",
"pool",
"view.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:scratch:pool:view",
"scratch:hardis:pool:view",
"scratch:pool:hardis:view",
"scratch:pool:view:hardis",
"hardis:pool:scratch:view",
"pool:hardis:scratch:view",
"pool:scratch:hardis:view",
"pool:scratch:view:hardis",
"hardis:pool:view:scratch",
"pool:hardis:view:scratch",
"pool:view:hardis:scratch",
"pool:view:scratch:hardis",
"hardis:scratch:view:pool",
"scratch:hardis:view:pool",
"scratch:view:hardis:pool",
"scratch:view:pool:hardis",
"hardis:view:scratch:pool",
"view:hardis:scratch:pool",
"view:scratch:hardis:pool",
"view:scratch:pool:hardis",
"hardis:view:pool:scratch",
"view:hardis:pool:scratch",
"view:pool:hardis:scratch",
"view:pool:scratch:hardis"
]
},
"hardis:org:retrieve:sources:analytics": {
"aliases": [],
"args": {},
"description": "Retrieve all CRM Analytics sources from an org, with workarounds for SFDX bugs",
"examples": [
"$ sf hardis:org:retrieve:sources:analytics"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:sources:analytics",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve CRM Analytics configuration from an org",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"sources",
"analytics.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:sources:analytics",
"org:hardis:retrieve:sources:analytics",
"org:retrieve:hardis:sources:analytics",
"org:retrieve:sources:hardis:analytics",
"org:retrieve:sources:analytics:hardis",
"hardis:retrieve:org:sources:analytics",
"retrieve:hardis:org:sources:analytics",
"retrieve:org:hardis:sources:analytics",
"retrieve:org:sources:hardis:analytics",
"retrieve:org:sources:analytics:hardis",
"hardis:retrieve:sources:org:analytics",
"retrieve:hardis:sources:org:analytics",
"retrieve:sources:hardis:org:analytics",
"retrieve:sources:org:hardis:analytics",
"retrieve:sources:org:analytics:hardis",
"hardis:retrieve:sources:analytics:org",
"retrieve:hardis:sources:analytics:org",
"retrieve:sources:hardis:analytics:org",
"retrieve:sources:analytics:hardis:org",
"retrieve:sources:analytics:org:hardis",
"hardis:org:sources:retrieve:analytics",
"org:hardis:sources:retrieve:analytics",
"org:sources:hardis:retrieve:analytics",
"org:sources:retrieve:hardis:analytics",
"org:sources:retrieve:analytics:hardis",
"hardis:sources:org:retrieve:analytics",
"sources:hardis:org:retrieve:analytics",
"sources:org:hardis:retrieve:analytics",
"sources:org:retrieve:hardis:analytics",
"sources:org:retrieve:analytics:hardis",
"hardis:sources:retrieve:org:analytics",
"sources:hardis:retrieve:org:analytics",
"sources:retrieve:hardis:org:analytics",
"sources:retrieve:org:hardis:analytics",
"sources:retrieve:org:analytics:hardis",
"hardis:sources:retrieve:analytics:org",
"sources:hardis:retrieve:analytics:org",
"sources:retrieve:hardis:analytics:org",
"sources:retrieve:analytics:hardis:org",
"sources:retrieve:analytics:org:hardis",
"hardis:org:sources:analytics:retrieve",
"org:hardis:sources:analytics:retrieve",
"org:sources:hardis:analytics:retrieve",
"org:sources:analytics:hardis:retrieve",
"org:sources:analytics:retrieve:hardis",
"hardis:sources:org:analytics:retrieve",
"sources:hardis:org:analytics:retrieve",
"sources:org:hardis:analytics:retrieve",
"sources:org:analytics:hardis:retrieve",
"sources:org:analytics:retrieve:hardis",
"hardis:sources:analytics:org:retrieve",
"sources:hardis:analytics:org:retrieve",
"sources:analytics:hardis:org:retrieve",
"sources:analytics:org:hardis:retrieve",
"sources:analytics:org:retrieve:hardis",
"hardis:sources:analytics:retrieve:org",
"sources:hardis:analytics:retrieve:org",
"sources:analytics:hardis:retrieve:org",
"sources:analytics:retrieve:hardis:org",
"sources:analytics:retrieve:org:hardis",
"hardis:org:retrieve:analytics:sources",
"org:hardis:retrieve:analytics:sources",
"org:retrieve:hardis:analytics:sources",
"org:retrieve:analytics:hardis:sources",
"org:retrieve:analytics:sources:hardis",
"hardis:retrieve:org:analytics:sources",
"retrieve:hardis:org:analytics:sources",
"retrieve:org:hardis:analytics:sources",
"retrieve:org:analytics:hardis:sources",
"retrieve:org:analytics:sources:hardis",
"hardis:retrieve:analytics:org:sources",
"retrieve:hardis:analytics:org:sources",
"retrieve:analytics:hardis:org:sources",
"retrieve:analytics:org:hardis:sources",
"retrieve:analytics:org:sources:hardis",
"hardis:retrieve:analytics:sources:org",
"retrieve:hardis:analytics:sources:org",
"retrieve:analytics:hardis:sources:org",
"retrieve:analytics:sources:hardis:org",
"retrieve:analytics:sources:org:hardis",
"hardis:org:analytics:retrieve:sources",
"org:hardis:analytics:retrieve:sources",
"org:analytics:hardis:retrieve:sources",
"org:analytics:retrieve:hardis:sources",
"org:analytics:retrieve:sources:hardis",
"hardis:analytics:org:retrieve:sources",
"analytics:hardis:org:retrieve:sources",
"analytics:org:hardis:retrieve:sources",
"analytics:org:retrieve:hardis:sources",
"analytics:org:retrieve:sources:hardis",
"hardis:analytics:retrieve:org:sources",
"analytics:hardis:retrieve:org:sources",
"analytics:retrieve:hardis:org:sources",
"analytics:retrieve:org:hardis:sources",
"analytics:retrieve:org:sources:hardis",
"hardis:analytics:retrieve:sources:org",
"analytics:hardis:retrieve:sources:org",
"analytics:retrieve:hardis:sources:org",
"analytics:retrieve:sources:hardis:org",
"analytics:retrieve:sources:org:hardis",
"hardis:org:analytics:sources:retrieve",
"org:hardis:analytics:sources:retrieve",
"org:analytics:hardis:sources:retrieve",
"org:analytics:sources:hardis:retrieve",
"org:analytics:sources:retrieve:hardis",
"hardis:analytics:org:sources:retrieve",
"analytics:hardis:org:sources:retrieve",
"analytics:org:hardis:sources:retrieve",
"analytics:org:sources:hardis:retrieve",
"analytics:org:sources:retrieve:hardis",
"hardis:analytics:sources:org:retrieve",
"analytics:hardis:sources:org:retrieve",
"analytics:sources:hardis:org:retrieve",
"analytics:sources:org:hardis:retrieve",
"analytics:sources:org:retrieve:hardis",
"hardis:analytics:sources:retrieve:org",
"analytics:hardis:sources:retrieve:org",
"analytics:sources:hardis:retrieve:org",
"analytics:sources:retrieve:hardis:org",
"analytics:sources:retrieve:org:hardis"
]
},
"hardis:org:retrieve:sources:dx": {
"aliases": [],
"args": {},
"description": "Retrieve Salesforce DX project from org",
"examples": [
"$ sf hardis:org:retrieve:sources:dx"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Folder",
"name": "folder",
"default": ".",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"tempfolder": {
"char": "t",
"description": "Temporary folder",
"name": "tempfolder",
"default": "./tmp",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"keepmetadatatypes": {
"char": "k",
"description": "Comma separated list of metadatas types that will be the only ones to be retrieved",
"name": "keepmetadatatypes",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"filteredmetadatas": {
"char": "m",
"description": "Comma separated list of Metadatas keys to remove from PackageXml file",
"name": "filteredmetadatas",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"shape": {
"char": "s",
"description": "Updates project-scratch-def.json from org shape",
"name": "shape",
"allowNo": false,
"type": "boolean"
},
"instanceurl": {
"char": "r",
"description": "URL of org instance",
"name": "instanceurl",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:sources:dx",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve sfdx sources from org",
"requiresProject": false,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"sources",
"dx.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:sources:dx",
"org:hardis:retrieve:sources:dx",
"org:retrieve:hardis:sources:dx",
"org:retrieve:sources:hardis:dx",
"org:retrieve:sources:dx:hardis",
"hardis:retrieve:org:sources:dx",
"retrieve:hardis:org:sources:dx",
"retrieve:org:hardis:sources:dx",
"retrieve:org:sources:hardis:dx",
"retrieve:org:sources:dx:hardis",
"hardis:retrieve:sources:org:dx",
"retrieve:hardis:sources:org:dx",
"retrieve:sources:hardis:org:dx",
"retrieve:sources:org:hardis:dx",
"retrieve:sources:org:dx:hardis",
"hardis:retrieve:sources:dx:org",
"retrieve:hardis:sources:dx:org",
"retrieve:sources:hardis:dx:org",
"retrieve:sources:dx:hardis:org",
"retrieve:sources:dx:org:hardis",
"hardis:org:sources:retrieve:dx",
"org:hardis:sources:retrieve:dx",
"org:sources:hardis:retrieve:dx",
"org:sources:retrieve:hardis:dx",
"org:sources:retrieve:dx:hardis",
"hardis:sources:org:retrieve:dx",
"sources:hardis:org:retrieve:dx",
"sources:org:hardis:retrieve:dx",
"sources:org:retrieve:hardis:dx",
"sources:org:retrieve:dx:hardis",
"hardis:sources:retrieve:org:dx",
"sources:hardis:retrieve:org:dx",
"sources:retrieve:hardis:org:dx",
"sources:retrieve:org:hardis:dx",
"sources:retrieve:org:dx:hardis",
"hardis:sources:retrieve:dx:org",
"sources:hardis:retrieve:dx:org",
"sources:retrieve:hardis:dx:org",
"sources:retrieve:dx:hardis:org",
"sources:retrieve:dx:org:hardis",
"hardis:org:sources:dx:retrieve",
"org:hardis:sources:dx:retrieve",
"org:sources:hardis:dx:retrieve",
"org:sources:dx:hardis:retrieve",
"org:sources:dx:retrieve:hardis",
"hardis:sources:org:dx:retrieve",
"sources:hardis:org:dx:retrieve",
"sources:org:hardis:dx:retrieve",
"sources:org:dx:hardis:retrieve",
"sources:org:dx:retrieve:hardis",
"hardis:sources:dx:org:retrieve",
"sources:hardis:dx:org:retrieve",
"sources:dx:hardis:org:retrieve",
"sources:dx:org:hardis:retrieve",
"sources:dx:org:retrieve:hardis",
"hardis:sources:dx:retrieve:org",
"sources:hardis:dx:retrieve:org",
"sources:dx:hardis:retrieve:org",
"sources:dx:retrieve:hardis:org",
"sources:dx:retrieve:org:hardis",
"hardis:org:retrieve:dx:sources",
"org:hardis:retrieve:dx:sources",
"org:retrieve:hardis:dx:sources",
"org:retrieve:dx:hardis:sources",
"org:retrieve:dx:sources:hardis",
"hardis:retrieve:org:dx:sources",
"retrieve:hardis:org:dx:sources",
"retrieve:org:hardis:dx:sources",
"retrieve:org:dx:hardis:sources",
"retrieve:org:dx:sources:hardis",
"hardis:retrieve:dx:org:sources",
"retrieve:hardis:dx:org:sources",
"retrieve:dx:hardis:org:sources",
"retrieve:dx:org:hardis:sources",
"retrieve:dx:org:sources:hardis",
"hardis:retrieve:dx:sources:org",
"retrieve:hardis:dx:sources:org",
"retrieve:dx:hardis:sources:org",
"retrieve:dx:sources:hardis:org",
"retrieve:dx:sources:org:hardis",
"hardis:org:dx:retrieve:sources",
"org:hardis:dx:retrieve:sources",
"org:dx:hardis:retrieve:sources",
"org:dx:retrieve:hardis:sources",
"org:dx:retrieve:sources:hardis",
"hardis:dx:org:retrieve:sources",
"dx:hardis:org:retrieve:sources",
"dx:org:hardis:retrieve:sources",
"dx:org:retrieve:hardis:sources",
"dx:org:retrieve:sources:hardis",
"hardis:dx:retrieve:org:sources",
"dx:hardis:retrieve:org:sources",
"dx:retrieve:hardis:org:sources",
"dx:retrieve:org:hardis:sources",
"dx:retrieve:org:sources:hardis",
"hardis:dx:retrieve:sources:org",
"dx:hardis:retrieve:sources:org",
"dx:retrieve:hardis:sources:org",
"dx:retrieve:sources:hardis:org",
"dx:retrieve:sources:org:hardis",
"hardis:org:dx:sources:retrieve",
"org:hardis:dx:sources:retrieve",
"org:dx:hardis:sources:retrieve",
"org:dx:sources:hardis:retrieve",
"org:dx:sources:retrieve:hardis",
"hardis:dx:org:sources:retrieve",
"dx:hardis:org:sources:retrieve",
"dx:org:hardis:sources:retrieve",
"dx:org:sources:hardis:retrieve",
"dx:org:sources:retrieve:hardis",
"hardis:dx:sources:org:retrieve",
"dx:hardis:sources:org:retrieve",
"dx:sources:hardis:org:retrieve",
"dx:sources:org:hardis:retrieve",
"dx:sources:org:retrieve:hardis",
"hardis:dx:sources:retrieve:org",
"dx:hardis:sources:retrieve:org",
"dx:sources:hardis:retrieve:org",
"dx:sources:retrieve:hardis:org",
"dx:sources:retrieve:org:hardis"
]
},
"hardis:org:retrieve:sources:dx2": {
"aliases": [],
"args": {},
"description": "Retrieve Salesforce DX project from org",
"examples": [
"$ sf hardis:org:retrieve:sources:dx2"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexml": {
"char": "x",
"description": "Path to package.xml file",
"name": "packagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"template": {
"char": "t",
"description": "sfdx-hardis package.xml Template name. ex: wave",
"name": "template",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:sources:dx2",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve sfdx sources from org (2)",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"sources",
"dx2.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:sources:dx2",
"org:hardis:retrieve:sources:dx2",
"org:retrieve:hardis:sources:dx2",
"org:retrieve:sources:hardis:dx2",
"org:retrieve:sources:dx2:hardis",
"hardis:retrieve:org:sources:dx2",
"retrieve:hardis:org:sources:dx2",
"retrieve:org:hardis:sources:dx2",
"retrieve:org:sources:hardis:dx2",
"retrieve:org:sources:dx2:hardis",
"hardis:retrieve:sources:org:dx2",
"retrieve:hardis:sources:org:dx2",
"retrieve:sources:hardis:org:dx2",
"retrieve:sources:org:hardis:dx2",
"retrieve:sources:org:dx2:hardis",
"hardis:retrieve:sources:dx2:org",
"retrieve:hardis:sources:dx2:org",
"retrieve:sources:hardis:dx2:org",
"retrieve:sources:dx2:hardis:org",
"retrieve:sources:dx2:org:hardis",
"hardis:org:sources:retrieve:dx2",
"org:hardis:sources:retrieve:dx2",
"org:sources:hardis:retrieve:dx2",
"org:sources:retrieve:hardis:dx2",
"org:sources:retrieve:dx2:hardis",
"hardis:sources:org:retrieve:dx2",
"sources:hardis:org:retrieve:dx2",
"sources:org:hardis:retrieve:dx2",
"sources:org:retrieve:hardis:dx2",
"sources:org:retrieve:dx2:hardis",
"hardis:sources:retrieve:org:dx2",
"sources:hardis:retrieve:org:dx2",
"sources:retrieve:hardis:org:dx2",
"sources:retrieve:org:hardis:dx2",
"sources:retrieve:org:dx2:hardis",
"hardis:sources:retrieve:dx2:org",
"sources:hardis:retrieve:dx2:org",
"sources:retrieve:hardis:dx2:org",
"sources:retrieve:dx2:hardis:org",
"sources:retrieve:dx2:org:hardis",
"hardis:org:sources:dx2:retrieve",
"org:hardis:sources:dx2:retrieve",
"org:sources:hardis:dx2:retrieve",
"org:sources:dx2:hardis:retrieve",
"org:sources:dx2:retrieve:hardis",
"hardis:sources:org:dx2:retrieve",
"sources:hardis:org:dx2:retrieve",
"sources:org:hardis:dx2:retrieve",
"sources:org:dx2:hardis:retrieve",
"sources:org:dx2:retrieve:hardis",
"hardis:sources:dx2:org:retrieve",
"sources:hardis:dx2:org:retrieve",
"sources:dx2:hardis:org:retrieve",
"sources:dx2:org:hardis:retrieve",
"sources:dx2:org:retrieve:hardis",
"hardis:sources:dx2:retrieve:org",
"sources:hardis:dx2:retrieve:org",
"sources:dx2:hardis:retrieve:org",
"sources:dx2:retrieve:hardis:org",
"sources:dx2:retrieve:org:hardis",
"hardis:org:retrieve:dx2:sources",
"org:hardis:retrieve:dx2:sources",
"org:retrieve:hardis:dx2:sources",
"org:retrieve:dx2:hardis:sources",
"org:retrieve:dx2:sources:hardis",
"hardis:retrieve:org:dx2:sources",
"retrieve:hardis:org:dx2:sources",
"retrieve:org:hardis:dx2:sources",
"retrieve:org:dx2:hardis:sources",
"retrieve:org:dx2:sources:hardis",
"hardis:retrieve:dx2:org:sources",
"retrieve:hardis:dx2:org:sources",
"retrieve:dx2:hardis:org:sources",
"retrieve:dx2:org:hardis:sources",
"retrieve:dx2:org:sources:hardis",
"hardis:retrieve:dx2:sources:org",
"retrieve:hardis:dx2:sources:org",
"retrieve:dx2:hardis:sources:org",
"retrieve:dx2:sources:hardis:org",
"retrieve:dx2:sources:org:hardis",
"hardis:org:dx2:retrieve:sources",
"org:hardis:dx2:retrieve:sources",
"org:dx2:hardis:retrieve:sources",
"org:dx2:retrieve:hardis:sources",
"org:dx2:retrieve:sources:hardis",
"hardis:dx2:org:retrieve:sources",
"dx2:hardis:org:retrieve:sources",
"dx2:org:hardis:retrieve:sources",
"dx2:org:retrieve:hardis:sources",
"dx2:org:retrieve:sources:hardis",
"hardis:dx2:retrieve:org:sources",
"dx2:hardis:retrieve:org:sources",
"dx2:retrieve:hardis:org:sources",
"dx2:retrieve:org:hardis:sources",
"dx2:retrieve:org:sources:hardis",
"hardis:dx2:retrieve:sources:org",
"dx2:hardis:retrieve:sources:org",
"dx2:retrieve:hardis:sources:org",
"dx2:retrieve:sources:hardis:org",
"dx2:retrieve:sources:org:hardis",
"hardis:org:dx2:sources:retrieve",
"org:hardis:dx2:sources:retrieve",
"org:dx2:hardis:sources:retrieve",
"org:dx2:sources:hardis:retrieve",
"org:dx2:sources:retrieve:hardis",
"hardis:dx2:org:sources:retrieve",
"dx2:hardis:org:sources:retrieve",
"dx2:org:hardis:sources:retrieve",
"dx2:org:sources:hardis:retrieve",
"dx2:org:sources:retrieve:hardis",
"hardis:dx2:sources:org:retrieve",
"dx2:hardis:sources:org:retrieve",
"dx2:sources:hardis:org:retrieve",
"dx2:sources:org:hardis:retrieve",
"dx2:sources:org:retrieve:hardis",
"hardis:dx2:sources:retrieve:org",
"dx2:hardis:sources:retrieve:org",
"dx2:sources:hardis:retrieve:org",
"dx2:sources:retrieve:hardis:org",
"dx2:sources:retrieve:org:hardis"
]
},
"hardis:org:retrieve:sources:metadata": {
"aliases": [],
"args": {},
"description": "Retrieve Salesforce DX project from org",
"examples": [
"$ sf hardis:org:retrieve:sources:metadata",
"$ SFDX_RETRIEVE_WAIT_MINUTES=200 sf hardis:org:retrieve:sources:metadata"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"folder": {
"char": "f",
"description": "Folder",
"name": "folder",
"default": ".",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexml": {
"char": "p",
"description": "Path to package.xml manifest file",
"name": "packagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"includemanaged": {
"description": "Include items from managed packages",
"name": "includemanaged",
"allowNo": false,
"type": "boolean"
},
"instanceurl": {
"char": "r",
"description": "URL of org instance",
"name": "instanceurl",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:sources:metadata",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Retrieve sfdx sources from org",
"requiresProject": false,
"triggerNotification": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"sources",
"metadata.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:sources:metadata",
"org:hardis:retrieve:sources:metadata",
"org:retrieve:hardis:sources:metadata",
"org:retrieve:sources:hardis:metadata",
"org:retrieve:sources:metadata:hardis",
"hardis:retrieve:org:sources:metadata",
"retrieve:hardis:org:sources:metadata",
"retrieve:org:hardis:sources:metadata",
"retrieve:org:sources:hardis:metadata",
"retrieve:org:sources:metadata:hardis",
"hardis:retrieve:sources:org:metadata",
"retrieve:hardis:sources:org:metadata",
"retrieve:sources:hardis:org:metadata",
"retrieve:sources:org:hardis:metadata",
"retrieve:sources:org:metadata:hardis",
"hardis:retrieve:sources:metadata:org",
"retrieve:hardis:sources:metadata:org",
"retrieve:sources:hardis:metadata:org",
"retrieve:sources:metadata:hardis:org",
"retrieve:sources:metadata:org:hardis",
"hardis:org:sources:retrieve:metadata",
"org:hardis:sources:retrieve:metadata",
"org:sources:hardis:retrieve:metadata",
"org:sources:retrieve:hardis:metadata",
"org:sources:retrieve:metadata:hardis",
"hardis:sources:org:retrieve:metadata",
"sources:hardis:org:retrieve:metadata",
"sources:org:hardis:retrieve:metadata",
"sources:org:retrieve:hardis:metadata",
"sources:org:retrieve:metadata:hardis",
"hardis:sources:retrieve:org:metadata",
"sources:hardis:retrieve:org:metadata",
"sources:retrieve:hardis:org:metadata",
"sources:retrieve:org:hardis:metadata",
"sources:retrieve:org:metadata:hardis",
"hardis:sources:retrieve:metadata:org",
"sources:hardis:retrieve:metadata:org",
"sources:retrieve:hardis:metadata:org",
"sources:retrieve:metadata:hardis:org",
"sources:retrieve:metadata:org:hardis",
"hardis:org:sources:metadata:retrieve",
"org:hardis:sources:metadata:retrieve",
"org:sources:hardis:metadata:retrieve",
"org:sources:metadata:hardis:retrieve",
"org:sources:metadata:retrieve:hardis",
"hardis:sources:org:metadata:retrieve",
"sources:hardis:org:metadata:retrieve",
"sources:org:hardis:metadata:retrieve",
"sources:org:metadata:hardis:retrieve",
"sources:org:metadata:retrieve:hardis",
"hardis:sources:metadata:org:retrieve",
"sources:hardis:metadata:org:retrieve",
"sources:metadata:hardis:org:retrieve",
"sources:metadata:org:hardis:retrieve",
"sources:metadata:org:retrieve:hardis",
"hardis:sources:metadata:retrieve:org",
"sources:hardis:metadata:retrieve:org",
"sources:metadata:hardis:retrieve:org",
"sources:metadata:retrieve:hardis:org",
"sources:metadata:retrieve:org:hardis",
"hardis:org:retrieve:metadata:sources",
"org:hardis:retrieve:metadata:sources",
"org:retrieve:hardis:metadata:sources",
"org:retrieve:metadata:hardis:sources",
"org:retrieve:metadata:sources:hardis",
"hardis:retrieve:org:metadata:sources",
"retrieve:hardis:org:metadata:sources",
"retrieve:org:hardis:metadata:sources",
"retrieve:org:metadata:hardis:sources",
"retrieve:org:metadata:sources:hardis",
"hardis:retrieve:metadata:org:sources",
"retrieve:hardis:metadata:org:sources",
"retrieve:metadata:hardis:org:sources",
"retrieve:metadata:org:hardis:sources",
"retrieve:metadata:org:sources:hardis",
"hardis:retrieve:metadata:sources:org",
"retrieve:hardis:metadata:sources:org",
"retrieve:metadata:hardis:sources:org",
"retrieve:metadata:sources:hardis:org",
"retrieve:metadata:sources:org:hardis",
"hardis:org:metadata:retrieve:sources",
"org:hardis:metadata:retrieve:sources",
"org:metadata:hardis:retrieve:sources",
"org:metadata:retrieve:hardis:sources",
"org:metadata:retrieve:sources:hardis",
"hardis:metadata:org:retrieve:sources",
"metadata:hardis:org:retrieve:sources",
"metadata:org:hardis:retrieve:sources",
"metadata:org:retrieve:hardis:sources",
"metadata:org:retrieve:sources:hardis",
"hardis:metadata:retrieve:org:sources",
"metadata:hardis:retrieve:org:sources",
"metadata:retrieve:hardis:org:sources",
"metadata:retrieve:org:hardis:sources",
"metadata:retrieve:org:sources:hardis",
"hardis:metadata:retrieve:sources:org",
"metadata:hardis:retrieve:sources:org",
"metadata:retrieve:hardis:sources:org",
"metadata:retrieve:sources:hardis:org",
"metadata:retrieve:sources:org:hardis",
"hardis:org:metadata:sources:retrieve",
"org:hardis:metadata:sources:retrieve",
"org:metadata:hardis:sources:retrieve",
"org:metadata:sources:hardis:retrieve",
"org:metadata:sources:retrieve:hardis",
"hardis:metadata:org:sources:retrieve",
"metadata:hardis:org:sources:retrieve",
"metadata:org:hardis:sources:retrieve",
"metadata:org:sources:hardis:retrieve",
"metadata:org:sources:retrieve:hardis",
"hardis:metadata:sources:org:retrieve",
"metadata:hardis:sources:org:retrieve",
"metadata:sources:hardis:org:retrieve",
"metadata:sources:org:hardis:retrieve",
"metadata:sources:org:retrieve:hardis",
"hardis:metadata:sources:retrieve:org",
"metadata:hardis:sources:retrieve:org",
"metadata:sources:hardis:retrieve:org",
"metadata:sources:retrieve:hardis:org",
"metadata:sources:retrieve:org:hardis"
]
},
"hardis:org:retrieve:sources:retrofit": {
"aliases": [],
"args": {},
"description": "Retrieve changes from org link to a ref branch not present in sources\n\n This command need to be triggered from a branch that is connected to a SF org. It will then retrieve all changes not present in that branch sources, commit them and create a merge request against the default branch. If a merge request already exists, it will simply add a new commit.\n\n Define the following properties in **.sfdx-hardis.yml**\n\n - **productionBranch** : Name of the git branch that is corresponding to production org\n - **retrofitBranch** : Name of the git branch that will be used as merge request target\n\n List of metadata to retrieve can be set in three way, in order of priority :\n\n - `CI_SOURCES_TO_RETROFIT`: env variable (can be defined in CI context)\n - `sourcesToRetrofit` property in `.sfdx-hardis.yml`\n - Default list:\n\n - CompactLayout\n - CustomApplication\n - CustomField\n - CustomLabel\n - CustomLabels\n - CustomMetadata\n - CustomObject\n - CustomObjectTranslation\n - CustomTab\n - DuplicateRule\n - EmailTemplate\n - FlexiPage\n - GlobalValueSet\n - Layout\n - ListView\n - MatchingRules\n - PermissionSet\n - RecordType\n - StandardValueSet\n - Translations\n - ValidationRule\n\n You can also ignore some files even if they have been updated in production. To do that, define property **retrofitIgnoredFiles** in .sfdx-hardis.yml\n\n Example of full retrofit configuration:\n\n ```yaml\n productionBranch: master\n retrofitBranch: preprod\n retrofitIgnoredFiles:\n - force-app/main/default/applications/MyApp.app-meta.xml\n - force-app/main/default/applications/MyOtherApp.app-meta.xml\n - force-app/main/default/flexipages/MyFlexipageContainingDashboards.flexipage-meta.xml\n ```\n ",
"examples": [
"$ sf hardis:org:retrieve:sources:retrofit",
"sf hardis:org:retrieve:sources:retrofit --productionbranch master --commit --commitmode updated",
"sf hardis:org:retrieve:sources:retrofit --productionbranch master --retrofitbranch preprod --commit --commitmode updated --push --pushmode mergerequest"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"commit": {
"description": "If true, a commit will be performed after the retrofit",
"name": "commit",
"allowNo": false,
"type": "boolean"
},
"commitmode": {
"description": "Defines if we commit all retrieved updates, or all updates including creations",
"name": "commitmode",
"default": "updated",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"updated",
"all"
],
"type": "option"
},
"push": {
"description": "If true, a push will be performed after the retrofit",
"name": "push",
"allowNo": false,
"type": "boolean"
},
"pushmode": {
"description": "Defines if we send merge request options to git push arguments",
"name": "pushmode",
"default": "default",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"default",
"mergerequest"
],
"type": "option"
},
"productionbranch": {
"description": "Name of the git branch corresponding to the org we want to perform the retrofit on.\nCan be defined in productionBranch property in .sfdx-hardis.yml",
"name": "productionbranch",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"retrofittargetbranch": {
"description": "Name of branch the merge request will have as target\nCan be defined in retrofitBranch property in .sfdx-hardis.yml",
"name": "retrofittargetbranch",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:org:retrieve:sources:retrofit",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"DEFAULT_SOURCES_TO_RETROFIT": [
"CompactLayout",
"CustomApplication",
"CustomField",
"CustomLabel",
"CustomLabels",
"CustomMetadata",
"CustomObject",
"CustomObjectTranslation",
"CustomTab",
"DuplicateRule",
"EmailTemplate",
"FlexiPage",
"GlobalValueSet",
"Layout",
"ListView",
"MatchingRules",
"PermissionSet",
"RecordType",
"StandardValueSet",
"Translations",
"ValidationRule"
],
"title": "Retrofit changes from an org",
"requiresProject": true,
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"org",
"retrieve",
"sources",
"retrofit.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:org:retrieve:sources:retrofit",
"org:hardis:retrieve:sources:retrofit",
"org:retrieve:hardis:sources:retrofit",
"org:retrieve:sources:hardis:retrofit",
"org:retrieve:sources:retrofit:hardis",
"hardis:retrieve:org:sources:retrofit",
"retrieve:hardis:org:sources:retrofit",
"retrieve:org:hardis:sources:retrofit",
"retrieve:org:sources:hardis:retrofit",
"retrieve:org:sources:retrofit:hardis",
"hardis:retrieve:sources:org:retrofit",
"retrieve:hardis:sources:org:retrofit",
"retrieve:sources:hardis:org:retrofit",
"retrieve:sources:org:hardis:retrofit",
"retrieve:sources:org:retrofit:hardis",
"hardis:retrieve:sources:retrofit:org",
"retrieve:hardis:sources:retrofit:org",
"retrieve:sources:hardis:retrofit:org",
"retrieve:sources:retrofit:hardis:org",
"retrieve:sources:retrofit:org:hardis",
"hardis:org:sources:retrieve:retrofit",
"org:hardis:sources:retrieve:retrofit",
"org:sources:hardis:retrieve:retrofit",
"org:sources:retrieve:hardis:retrofit",
"org:sources:retrieve:retrofit:hardis",
"hardis:sources:org:retrieve:retrofit",
"sources:hardis:org:retrieve:retrofit",
"sources:org:hardis:retrieve:retrofit",
"sources:org:retrieve:hardis:retrofit",
"sources:org:retrieve:retrofit:hardis",
"hardis:sources:retrieve:org:retrofit",
"sources:hardis:retrieve:org:retrofit",
"sources:retrieve:hardis:org:retrofit",
"sources:retrieve:org:hardis:retrofit",
"sources:retrieve:org:retrofit:hardis",
"hardis:sources:retrieve:retrofit:org",
"sources:hardis:retrieve:retrofit:org",
"sources:retrieve:hardis:retrofit:org",
"sources:retrieve:retrofit:hardis:org",
"sources:retrieve:retrofit:org:hardis",
"hardis:org:sources:retrofit:retrieve",
"org:hardis:sources:retrofit:retrieve",
"org:sources:hardis:retrofit:retrieve",
"org:sources:retrofit:hardis:retrieve",
"org:sources:retrofit:retrieve:hardis",
"hardis:sources:org:retrofit:retrieve",
"sources:hardis:org:retrofit:retrieve",
"sources:org:hardis:retrofit:retrieve",
"sources:org:retrofit:hardis:retrieve",
"sources:org:retrofit:retrieve:hardis",
"hardis:sources:retrofit:org:retrieve",
"sources:hardis:retrofit:org:retrieve",
"sources:retrofit:hardis:org:retrieve",
"sources:retrofit:org:hardis:retrieve",
"sources:retrofit:org:retrieve:hardis",
"hardis:sources:retrofit:retrieve:org",
"sources:hardis:retrofit:retrieve:org",
"sources:retrofit:hardis:retrieve:org",
"sources:retrofit:retrieve:hardis:org",
"sources:retrofit:retrieve:org:hardis",
"hardis:org:retrieve:retrofit:sources",
"org:hardis:retrieve:retrofit:sources",
"org:retrieve:hardis:retrofit:sources",
"org:retrieve:retrofit:hardis:sources",
"org:retrieve:retrofit:sources:hardis",
"hardis:retrieve:org:retrofit:sources",
"retrieve:hardis:org:retrofit:sources",
"retrieve:org:hardis:retrofit:sources",
"retrieve:org:retrofit:hardis:sources",
"retrieve:org:retrofit:sources:hardis",
"hardis:retrieve:retrofit:org:sources",
"retrieve:hardis:retrofit:org:sources",
"retrieve:retrofit:hardis:org:sources",
"retrieve:retrofit:org:hardis:sources",
"retrieve:retrofit:org:sources:hardis",
"hardis:retrieve:retrofit:sources:org",
"retrieve:hardis:retrofit:sources:org",
"retrieve:retrofit:hardis:sources:org",
"retrieve:retrofit:sources:hardis:org",
"retrieve:retrofit:sources:org:hardis",
"hardis:org:retrofit:retrieve:sources",
"org:hardis:retrofit:retrieve:sources",
"org:retrofit:hardis:retrieve:sources",
"org:retrofit:retrieve:hardis:sources",
"org:retrofit:retrieve:sources:hardis",
"hardis:retrofit:org:retrieve:sources",
"retrofit:hardis:org:retrieve:sources",
"retrofit:org:hardis:retrieve:sources",
"retrofit:org:retrieve:hardis:sources",
"retrofit:org:retrieve:sources:hardis",
"hardis:retrofit:retrieve:org:sources",
"retrofit:hardis:retrieve:org:sources",
"retrofit:retrieve:hardis:org:sources",
"retrofit:retrieve:org:hardis:sources",
"retrofit:retrieve:org:sources:hardis",
"hardis:retrofit:retrieve:sources:org",
"retrofit:hardis:retrieve:sources:org",
"retrofit:retrieve:hardis:sources:org",
"retrofit:retrieve:sources:hardis:org",
"retrofit:retrieve:sources:org:hardis",
"hardis:org:retrofit:sources:retrieve",
"org:hardis:retrofit:sources:retrieve",
"org:retrofit:hardis:sources:retrieve",
"org:retrofit:sources:hardis:retrieve",
"org:retrofit:sources:retrieve:hardis",
"hardis:retrofit:org:sources:retrieve",
"retrofit:hardis:org:sources:retrieve",
"retrofit:org:hardis:sources:retrieve",
"retrofit:org:sources:hardis:retrieve",
"retrofit:org:sources:retrieve:hardis",
"hardis:retrofit:sources:org:retrieve",
"retrofit:hardis:sources:org:retrieve",
"retrofit:sources:hardis:org:retrieve",
"retrofit:sources:org:hardis:retrieve",
"retrofit:sources:org:retrieve:hardis",
"hardis:retrofit:sources:retrieve:org",
"retrofit:hardis:sources:retrieve:org",
"retrofit:sources:hardis:retrieve:org",
"retrofit:sources:retrieve:hardis:org",
"retrofit:sources:retrieve:org:hardis"
]
},
"hardis:project:deploy:sources:metadata": {
"aliases": [],
"args": {},
"description": "Deploy metadatas to source org",
"examples": [
"$ sf hardis:project:deploy:sources:metadata"
],
"flags": {
"json": {
"description": "Format output as json.",
"helpGroup": "GLOBAL",
"name": "json",
"allowNo": false,
"type": "boolean"
},
"flags-dir": {
"helpGroup": "GLOBAL",
"name": "flags-dir",
"summary": "Import flag values from a directory.",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"check": {
"char": "c",
"description": "Only checks the deployment, there is no impact on target org",
"name": "check",
"allowNo": false,
"type": "boolean"
},
"deploydir": {
"char": "x",
"description": "Deploy directory",
"name": "deploydir",
"default": ".",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"packagexml": {
"char": "p",
"description": "Path to package.xml file to deploy",
"name": "packagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"filter": {
"char": "f",
"description": "Filter metadatas before deploying",
"name": "filter",
"allowNo": false,
"type": "boolean"
},
"destructivepackagexml": {
"char": "k",
"description": "Path to destructiveChanges.xml file to deploy",
"name": "destructivepackagexml",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"testlevel": {
"char": "l",
"description": "Level of tests to apply to validate deployment",
"name": "testlevel",
"default": "RunLocalTests",
"hasDynamicHelp": false,
"multiple": false,
"options": [
"NoTestRun",
"RunSpecifiedTests",
"RunLocalTests",
"RunAllTestsInOrg"
],
"type": "option"
},
"debug": {
"char": "d",
"description": "Activate debug mode (more logs)",
"name": "debug",
"allowNo": false,
"type": "boolean"
},
"websocket": {
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
"name": "websocket",
"hasDynamicHelp": false,
"multiple": false,
"type": "option"
},
"skipauth": {
"description": "Skip authentication check when a default username is required",
"name": "skipauth",
"allowNo": false,
"type": "boolean"
},
"target-org": {
"aliases": [
"targetusername",
"u"
],
"char": "o",
"deprecateAliases": true,
"name": "target-org",
"noCacheDefault": true,
"required": true,
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
"hasDynamicHelp": true,
"multiple": false,
"type": "option"
}
},
"hasDynamicHelp": true,
"hiddenAliases": [],
"id": "hardis:project:deploy:sources:metadata",
"pluginAlias": "sfdx-hardis",
"pluginName": "sfdx-hardis",
"pluginType": "core",
"strict": true,
"enableJsonFlag": true,
"title": "Deploy metadata sources to org",
"requiresProject": false,
"requiresSfdxPlugins": [
"sfdx-essentials"
],
"isESM": true,
"relativePath": [
"lib",
"commands",
"hardis",
"project",
"deploy",
"sources",
"metadata.js"
],
"aliasPermutations": [],
"permutations": [
"hardis:project:deploy:sources:metadata",
"project:hardis:deploy:sources:metadata",
"project:deploy:hardis:sources:metadata",
"project:deploy:sources:hardis:metadata",
"project:deploy:sources:metadata:hardis",
"hardis:deploy:project:sources:metadata",
"deploy:hardis:project:sources:metadata",
"deploy:project:hardis:sources:metadata",
"deploy:project:sources:hardis:metadata",
"deploy:project:sources:metadata:hardis",
"hardis:deploy:sources:project:metadata",
"deploy:hardis:sources:project:metadata",
"deploy:sources:hardis:project:metadata",
"deploy:sources:project:hardis:metadata",
"deploy:sources:project:metadata:hardis",
"hardis:deploy:sources:metadata:project",
"deploy:hardis:sources:metadata:project",
"deploy:sources:hardis:metadata:project",
"deploy:sources:metadata:hardis:project",
"deploy:sources:metadata:project:hardis",
"hardis:project:sources:deploy:metadata",
"project:hardis:sources:deploy:metadata",
"project:sources:hardis:deploy:metadata",
"project:sources:deploy:hardis:metadata",
"project:sources:deploy:metadata:hardis",
"hardis:sources:project:deploy:metadata",
"sources:hardis:project:deploy:metadata",
"sources:project:hardis:deploy:metadata",
"sources:project:deploy:hardis:metadata",
"sources:project:deploy:metadata:hardis",
"hardis:sources:deploy:project:metadata",
"sources:hardis:deploy:project:metadata",
"sources:deploy:hardis:project:metadata",
"sources:deploy:project:hardis:metadata",
"sources:deploy:project:metadata:hardis",
"hardis:sources:deploy:metadata:project",
"sources:hardis:deploy:metadata:project",
"sources:deploy:hardis:metadata:project",
"sources:deploy:metadata:hardis:project",
"sources:deploy:metadata:project:hardis",
"hardis:project:sources:metadata:deploy",
"project:hardis:sources:metadata:deploy",
"project:sources:hardis:metadata:deploy",
"project:sources:metadata:hardis:deploy",
"project:sources:metadata:deploy:hardis",
"hardis:sources:project:metadata:deploy",
"sources:hardis:project:metadata:deploy",
"sources:project:hardis:metadata:deploy",
"sources:project:metadata:hardis:deploy",
"sources:project:metadata:deploy:hardis",
"hardis:sources:metadata:project:deploy",
"sources:hardis:metadata:project:deploy",
"sources:metadata:hardis:project:deploy",
"sources:metadata:project:hardis:deploy",
"sources:metadata:project:deploy:hardis",
"hardis:sources:metadata:deploy:project",
"sources:hardis:metadata:deploy:project",
"sources:metadata:hardis:deploy:project",
"sources:metadata:deploy:hardis:project",
"sources:metadata:deploy:project:hardis",
"hardis:project:deploy:metadata:sources",
"project:hardis:deploy:metadata:sources",
"project:deploy:hardis:metadata:sources",
"project:deploy:metadata:hardis:sources",
"project:deploy:metadata:sources:hardis",
"hardis:deploy:project:metadata:sources",
"deploy:hardis:project:metadata:sources",
"deploy:project:hardis:metadata:sources",
"deploy:project:metadata:hardis:sources",
"deploy:project:metadata:sources:hardis",
"hardis:deploy:metadata:project:sources",
"deploy:hardis:metadata:project:sources",
"deploy:metadata:hardis:project:sources",
"deploy:metadata:project:hardis:sources",
"deploy:metadata:project:sources:hardis",
"hardis:deploy:metadata:sources:project",
"deploy:hardis:metadata:sources:project",
"deploy:metadata:hardis:sources:project",
"deploy:metadata:sources:hardis:project",
"deploy:metadata:sources:project:hardis",
"hardis:project:metadata:deploy:sources",
"project:hardis:metadata:deploy:sources",
"project:metadata:hardis:deploy:sources",
"project:metadata:deploy:hardis:sources",
"project:metadata:deploy:sources:hardis",
"hardis:metadata:project:deploy:sources",
"metadata:hardis:project:deploy:sources",
"metadata:project:hardis:deploy:sources",
"metadata:project:deploy:hardis:sources",
"metadata:project:deploy:sources:hardis",
"hardis:metadata:deploy:project:sources",
"metadata:hardis:deploy:project:sources",
"metadata:deploy:hardis:project:sources",
"metadata:deploy:project:hardis:sources",
"metadata:deploy:project:sources:hardis",
"hardis:metadata:deploy:sources:project",
"metadata:hardis:deploy:sources:project",
"metadata:deploy:hardis:sources:project",
"metadata:deploy:sources:hardis:project",
"metadata:deploy:sources:project:hardis",
"hardis:project:metadata:sources:deploy",
"project:hardis:metadata:sources:deploy",
"project:metadata:hardis:sources:deploy",
"project:metadata:sources:hardis:deploy",
"project:metadata:sources:deploy:hardis",
"hardis:metadata:project:sources:deploy",
"metadata:hardis:project:sources:deploy",
"metadata:project:hardis:sources:deploy",
"metadata:project:sources:hardis:deploy",
"metadata:project:sources:deploy:hardis",
"hardis:metadata:sources:project:deploy",
"metadata:hardis:sources:project:deploy",
"metadata:sources:hardis:project:deploy",
"metadata:sources:project:hardis:deploy",
"metadata:sources:project:deploy:hardis",
"hardis:metadata:sources:deploy:project",
"metadata:hardis:sources:deploy:project",
"metadata:sources:hardis:deploy:project",
"metadata:sources:deploy:hardis:project",
"metadata:sources:deploy:project:hardis"
]
}
},
"version": "5.45.0"
}