A set of declarative rules to validate best practices in your org:
- nodejs
- sf or sfdx connected on a default org
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
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
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
A CustomField API Name must be in english and PascalCase
Custom Fields must have a Description (at least 10 chars)
Flow Description is required (at least 10 chars)
Flow Label must be Short Yet Meaningful
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
An LWC must have an author
An LWC must have a description
Name is following project convention
Description is required (more than 10 chars)
PermissionSetGroup must have a description (more than 10 chars)
CustomPermissions must have a description
No field level security on Profiles (except System Administrator)
Flexcards names must be pascal case
Flexcards must have a description
Omniscript Type should be camel case (for LWC compatibility)
Omniscript SubType must be PascalCase
Omniscripts must have a description
Omniscript must have less than 100 elements
Remote action and DataRaptor Actions must have a description
Set Values and Set Errors must start with Set+PascalCase
Remote Action must start with 'Invoke+PascalCase'
DataRaptor Extract must start with 'DRE+PascalCase'
DataRaptor Post must start with 'DRP+PascalCase'
Integration Procedure must start with 'IP+PascalCase'
DataRaptors must have a description
CustomLabel name must be PascalCase
StaticResource must have a description
CustomApplication must have a description
ValidationRule must have a description
Custom Button must have a description
Custom Button name must be pascal case