@sf-explorer/devops
v0.0.37
Published
Devops rules
Downloads
288
Maintainers
Readme
SF Explorer Devops Rules
A set of declarative rules to validate best practices in your org:
Pre-requisite
- nodejs
- sf or sfdx connected on a default org
Running the rules
Run the command:
npx @sf-explorer/devops.cli -o myOrg -d 2024-03-01 --exclude '@Sys admin' --exclude 'CustomField.*_del'
The command will generate an output file name testReport.xml
similar to the one you can find here.
Options
Options:
--version Show version number [boolean]
-d, --from-date From date execution, in format YYYY-MM-DD
[default: "2024-04-01"]
-e, --exclude Exclude specified author, in format @name, multiple
values are supported
-o, --target-org Username or alias of the target org. Not required if the
`target-org` configuration variable is already set.
-u, --sfdx-url sfdx auth url
-r, --print-rules Print rules
-h, --help Show help [boolean]
The command will generate:
- an xml file named
testReport.xml
similar to the one you can find here - an csv file named
errors.csv
- an json file named
errors.json
Customize the rules
You can ignore specific errors with a file named .sfexplorerignore
(using regex similar to a .gitignore file)
- ignore an author with @ and the author name
- ignore a record with its type and target
Default Rules
EntityDefinition
A custom object Name must be in english and PascalCase
A custom object Description is required
Less than 100 custom fields
Maximum one custom trigger per object
Maximum 15 record types per object
CustomField
A CustomField API Name must be in english and PascalCase
Custom Fields must have a Description (at least 10 chars)
Flow
Flow Description is required (at least 10 chars)
Flow Label must be Short Yet Meaningful
ApexClass
An Apex class name must be PascalCase and use a correct Suffix
An ApexClass must follow the best practices
An ApexClass must have a Description
An ApexClass must have an author
Apex variables must be camelCase
Apex methods must be camelCase
LightningComponentResource
An LWC must have an author
An LWC must have a description
LightningComponentBundle
An LWC must have a description
PermissionSet
Name is following project convention
Description is required (more than 10 chars)
PermissionSetGroup
PermissionSetGroup must have a description (more than 10 chars)
CustomPermission
CustomPermissions must have a description
FieldPermissions
No field level security on Profiles (except System Administrator)
OmniUiCard
Flexcards names must be pascal case
Flexcards must have a description
OmniProcess
Omniscript Type should be pascal case
Omniscript SubType must be PascalCase
Omniscripts must have a description
Omniscript must have less than 100 elements
OmniProcessElement
Remote action and Data mapper Actions must have a description
Set Values and Set Errors must start with Set+PascalCase
Remote Action must start with 'Invoke+PascalCase'
Data Mapper Extract must start with 'DRE+PascalCase'
Data Mapper Post must start with 'DRP+PascalCase'
Integration Procedure must start with 'IP+PascalCase'
OmniDataTransform
Data mappers must have a description
ExpressionSet
ExpressionSet names must be pascal case
ExpressionSet must have a description
CalculationMatrix
CalculationMatrix must have a description
ExternalString
CustomLabel name must be PascalCase
FlexiPage
LightningRecordPage must have a description
StaticResource
StaticResource must have a description
CustomApplication
CustomApplication must have a description
ValidationRule
ValidationRule must have a description
WebLink
Custom Button must have a description
Custom Button name must be pascal case