Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lightning-flow-scanner-core

Package Overview
Dependencies
Maintainers
1
Versions
173
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lightning-flow-scanner-core

##### _This the rule engine is used in both the [VSCode extension](https://marketplace.visualstudio.com/items?itemName=ForceConfigControl.lightningflowscanner&ssr=false#review-details) and the [SFDX plugin](https://www.npmjs.com/package/lightning-flow-sca

  • 2.12.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.9K
decreased by-5.9%
Maintainers
1
Weekly downloads
 
Created
Source

Lightning Flow Scanner(Rule Engine)

This the rule engine is used in both the VSCode extension and the SFDX plugin of the same name.

Rules


Old API version

Newer API components may cause older versions of Flows to start behaving incorrectly due to differences in the underlying mechanics. The Api Version has been available as an attribute on the Flow since API v50.0 and it is recommended to limit variation and to update them on a regular basis.

Default Value: >50.0

Configuration example:

APIVersion:
    {
        severity: 'error',
        expression: '===58'
    }

Configuration ID: APIVersion (View source code)


DML statements in a loop

To avoid hitting Apex governor limits, we recommend grouping all of your changes together at the end of the flow, whether those changes create, update, or delete records.

Configuration ID: DMLStatementInLoop (View source code)


Duplicate DML operations

If the flow commits changes to the database or performs actions between two screens, don't let users navigate back between screen. Otherwise, the flow may perform duplicate database operations.

Configuration ID: DuplicateDMLOperations (View source code)


Hardcoded Ids

IDs are org-specific, so don’t hard-code IDs. Instead, pass them into variables when the flow starts. You can do so, for example, by using merge fields in URL parameters or by using a Get Records element.

Configuration ID: HardcodedIds (View source code)


Flow naming conventions

Readability of flow is very important. Agreeing on and following the same naming conventions will ease collaboration.

Default Value: [A-Za-z0-9]+_[A-Za-z0-9]+

Configuration example:

FlowName:
    {
        severity: 'error',
        expression: '[A-Za-z0-9]'
    }

Configuration ID: FlowName (View source code)


Missing flow description

Descriptions are useful for documentation purposes. It is recommended to provide information about where it is used and what it will do.

Configuration ID: MissingFlowDescription (View source code)


Missing error handlers

Sometimes a flow doesn’t perform an operation that you configured it to do. By default, the flow shows an error message to the user and emails the admin who created the flow. However, you can control that behavior.

Configuration ID: MissingFaultPath (View source code)


Missing null handlers

If a Get Records operation does not find any data it will return null. Use a decision element on the operation result variable to validate that the result is not null.

Configuration ID: MissingNullHandler (View source code)


Unconnected elements

Unconnected elements which are not being used by the Flow should be avoided to keep Flows efficient and maintainable.

Configuration ID: UnconnectedElements (View source code)


Unused variables

Unconnected variables which are not being used by the Flow should be avoided to keep Flow more efficient and maintainable.

Configuration ID: UnusedVariables (View source code)

Core Functions

getRules(ruleNames? : string[]): IRuleDefinition[];

Returns all rules that are currently available if there are no ruleNames specified. In case ruleNames are specified, it will only return rules which are included by name.

scan(flows: Flow[], ruleOptions?: IRulesConfig): ScanResult[];

If there are no rules specified, the scan will run all available rules by default. In case that there are ruleNames specified, only the specified rules will be ran. Specified exceptions will be ignored from the results altogether.

fix(flows :Flow[]): ScanResult[];

Removes unused variables and unconnected elements from selected flows automatically.

FAQs

Package last updated on 27 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc