npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@sf-explorer/devops

v0.0.37

Published

Devops rules

Downloads

288

Readme

SF Explorer Devops Rules

A set of declarative rules to validate best practices in your org: report

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

Group

Group must have a description