diff --git a/.automation/test/salesforce-lfs/bad/force-app/main/default/flows/Unused_Variable.flow-meta.xml b/.automation/test/salesforce-lfs/bad/force-app/main/default/flows/Unused_Variable.flow-meta.xml new file mode 100644 index 00000000000..ebb52bed43c --- /dev/null +++ b/.automation/test/salesforce-lfs/bad/force-app/main/default/flows/Unused_Variable.flow-meta.xml @@ -0,0 +1,56 @@ + + + 58.0 + This flow demonstrates a violation of the rule "Unused Variable". + Default + Unused Variable {!$Flow.CurrentDateTime} + + + BuilderType + + LightningFlowBuilder + + + + CanvasMode + + AUTO_LAYOUT_CANVAS + + + + OriginBuilderType + + LightningFlowBuilder + + + Flow + + mock_screen + + 176 + 134 + true + true + true + true + true + + + 50 + 0 + + mock_screen + + + Active + + anUnusedVariable + String + false + false + false + + hello world + + + diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b75be649d3..f18ec083f2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - Fixes - Fix conflict between prettier and yamllint about spaces - Ensure [trufflehog](https://github.com/trufflesecurity/trufflehog) does not auto-update itself + - Salesforce linters: use sf + default Flow Scanner rules - Doc diff --git a/TEMPLATES/.flow-scanner.json b/TEMPLATES/.flow-scanner.json new file mode 100644 index 00000000000..d2ff9bf3c04 --- /dev/null +++ b/TEMPLATES/.flow-scanner.json @@ -0,0 +1,41 @@ +{ + "rules": { + "APIVersion": { + "severity": "warning" + }, + "CopyAPIName": { + "severity": "warning" + }, + "DMLStatementInLoop": { + "severity": "error" + }, + "DuplicateDMLOperation": { + "severity": "error" + }, + "FlowDescription": { + "severity": "note" + }, + "FlowName": { + "severity": "warning", + "expression": "[A-Za-z0-9]+_(SCR|SFL|SCH|EVT|EML|BeforeCreate|BeforeUpdate|BeforeDelete|BeforeCreateBeforeUpdate|AfterCreate|AfterUpdate|AfterDelete|AfterCreateAfterUpdate)_[A-Za-z0-9]+" + }, + "HardcodedId": { + "severity": "error" + }, + "MissingFaultPath": { + "severity": "note" + }, + "MissingNullHandler": { + "severity": "note" + }, + "SOQLQueryInLoop": { + "severity": "error" + }, + "UnconnectedElement": { + "severity": "error" + }, + "UnusedVariable": { + "severity": "error" + } + } +} \ No newline at end of file diff --git a/megalinter/descriptors/salesforce.megalinter-descriptor.yml b/megalinter/descriptors/salesforce.megalinter-descriptor.yml index 48c66456054..baba7a77617 100644 --- a/megalinter/descriptors/salesforce.megalinter-descriptor.yml +++ b/megalinter/descriptors/salesforce.megalinter-descriptor.yml @@ -12,7 +12,7 @@ install: - ENV PATH="$JAVA_HOME/bin:${PATH}" - | RUN sf plugins install @salesforce/plugin-packaging \ - && echo y|sfdx plugins:install sfdx-hardis \ + && echo y|sf plugins install sfdx-hardis \ && npm cache clean --force || true \ && rm -rf /root/.npm/_cacache # Salesforce DX @@ -41,7 +41,7 @@ linters: linter_rules_inline_disable_url: https://docs.pmd-code.org/latest/pmd_userdocs_suppressing_warnings.html linter_megalinter_ref_url: https://github.com/forcedotcom/sfdx-scanner/pull/307 config_file_name: apex-pmd-ruleset.xml - cli_executable: sfdx + cli_executable: sf cli_config_arg_name: "--pmdconfig" cli_lint_extra_args: - "scanner:run" @@ -59,7 +59,7 @@ linters: cli_help_extra_args: - "scanner:run" cli_help_extra_commands: - - "sfdx scanner:rule:list" + - "sf scanner:rule:list" cli_version_extra_args: - "plugins" cli_version_arg_name: "" @@ -67,11 +67,11 @@ linters: cli_lint_errors_count: regex_sum cli_lint_errors_regex: "found ([0-9]+) violation" examples: - - "sfdx scanner:run" + - "sf scanner:run" install: dockerfile: - | - RUN sfdx plugins:install @salesforce/sfdx-scanner \ + RUN sf plugins install @salesforce/sfdx-scanner \ && npm cache clean --force || true \ && rm -rf /root/.npm/_cacache ide: @@ -112,7 +112,7 @@ linters: linter_megalinter_ref_url: https://github.com/forcedotcom/sfdx-scanner/pull/307 config_file_name: --eslintconfig cli_config_arg_name: ".eslintrc-aura.json" - cli_executable: sfdx + cli_executable: sf cli_lint_extra_args: - "scanner:run" - "--engine" @@ -129,7 +129,7 @@ linters: cli_help_extra_args: - "scanner:run" cli_help_extra_commands: - - "sfdx scanner:rule:list" + - "sf scanner:rule:list" cli_version_extra_args: - "plugins" cli_version_arg_name: "" @@ -137,11 +137,11 @@ linters: cli_lint_errors_count: regex_sum cli_lint_errors_regex: "found ([0-9]+) violation" examples: - - "sfdx scanner:run" + - "sf scanner:run" install: dockerfile: - | - RUN sfdx plugins:install @salesforce/sfdx-scanner \ + RUN sf plugins install @salesforce/sfdx-scanner \ && npm cache clean --force || true \ && rm -rf /root/.npm/_cacache ide: @@ -172,7 +172,7 @@ linters: linter_megalinter_ref_url: https://github.com/forcedotcom/sfdx-scanner/pull/307 config_file_name: --eslintconfig cli_config_arg_name: ".eslintrc-lwc.json" - cli_executable: sfdx + cli_executable: sf cli_lint_extra_args: - "scanner:run" - "--engine" @@ -189,7 +189,7 @@ linters: cli_help_extra_args: - "scanner:run" cli_help_extra_commands: - - "sfdx scanner:rule:list" + - "sf scanner:rule:list" cli_version_extra_args: - "plugins" cli_version_arg_name: "" @@ -197,11 +197,11 @@ linters: cli_lint_errors_count: regex_sum cli_lint_errors_regex: "found ([0-9]+) violation" examples: - - "sfdx scanner:run" + - "sf scanner:run" install: dockerfile: - | - RUN sfdx plugins:install @salesforce/sfdx-scanner \ + RUN sf plugins install @salesforce/sfdx-scanner \ && npm cache clean --force || true \ && rm -rf /root/.npm/_cacache ide: @@ -223,7 +223,7 @@ linters: linter_rules_configuration_url: https://github.com/Lightning-Flow-Scanner/lightning-flow-scanner-sfdx#configuration config_file_name: .flow-scanner.json cli_config_arg_name: --config - cli_executable: sfdx + cli_executable: sf cli_lint_extra_args: - "flow:scan" cli_lint_mode: project @@ -234,14 +234,14 @@ linters: cli_version_arg_name: "" version_extract_regex: "(?<=lightning-flow-scanner )\\d+(\\.\\d+)+" cli_lint_errors_count: regex_number - cli_lint_errors_regex: "=== Total: ([0-9]+) Results in .* Flows" + cli_lint_errors_regex: "- error: ([0-9]+)" test_folder: salesforce-lfs examples: - - "sfdx flow:scan" + - "sf flow:scan" install: dockerfile: - | - RUN echo y|sfdx plugins:install lightning-flow-scanner \ + RUN echo y|sf plugins install lightning-flow-scanner \ && npm cache clean --force || true \ && rm -rf /root/.npm/_cacache ide: