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

sfdl

v1.0.6

Published

Salesforce Debu Logs to you it's a cli app that allow user download ApexLogs using token and instanceUrl

Downloads

5

Readme

sfdl-gif-logo

sfdl

sfdl is a command line interface tool to download, format and extract information from Salesforce Apex Logs. In addition, the compare feature allows to validate key/value records between two Salesforce orgs

Releases

  • v1.x.x - This version is focused on troubleshooting analysis, requiring to extract Manage Package logs using Grant Salesforce Support login access where Users don't have credentials (username/password) for authentication. Workaround described bellow.
    • v.1.0.0: Download, format, transform and extract logs information

    • v.1.0.4: Comparing org records feature (--compare)

Installation

  • Download and Install Node at: https://nodejs.org/
  • Validate your version Node using node -v
  • Install the sfdl using NPM npm install --global sfdl

Configuration

config.json contains the information required for authentication purpose.

{
  "authToken": "Bearer 00D2w00000FEDhn\u0021AQwAQDrHuK17Bs.Rh84C5iJHXgHbTC.LuRU381NpUY2t7XVdaTcKBtpxQFaTb3Mtjc76sDlkG649jGEuHZ7AN6OrX8WdFJdw",
  "instanceUrl": "{yourinstance}.my.salesforce.com",
  "compare": {
    "authToken": "Bearer 00D1y0000000Mf4\u0021AQgAQDYJ9hpisnkZvCIRJoxKv4.XPyxCQYz4OxUTVrRZu2s6DEqDuWraGyKbCtALOIE0FcMO1Pxkl9lqFKZZaoQAUpRCW4IJ",
    "instanceUrl": "https://{yourinstance}.my.salesforce.com",
    "queries": [
      {
        "vlocity_cmt__TriggerSetup__c": {
          "query": "SELECT Name, vlocity_cmt__isTriggerOn__c FROM vlocity_cmt__TriggerSetup__c ORDER BY Name",
          "nameFields": "Name",
          "valueFields": "vlocity_cmt__IsTriggerOn__c"
        }
      },
      {
        "vlocity_cmt__InterfaceImplementationDetail__c": {
          "query": "SELECT vlocity_cmt__InterfaceId__r.Name, vlocity_cmt__IsActive__c FROM vlocity_cmt__InterfaceImplementationDetail__c ORDER BY vlocity_cmt__InterfaceId__r.Name",
          "nameFields": "vlocity_cmt__InterfaceId__r.Name",
          "valueFields": "vlocity_cmt__IsActive__c"
        }
      }
    ]
  }
}

Notes:

  • If this file is not added, each time you execute sfdl the authToken and the instanceUrl will be asked as inputs
  • You can add as many query as objects you chan

Execution

Workaround to get the authToken

  • Install Salesforce Inspector Chrome extension

  • Execute a query operation to get the cUrl request with the information required: getCurlRequest

  • Create the config.json file in your troubleshooting folder using the information from cUrl request: createConfigFile

  • If you copy/paste the cUrl request in the config file as the image above, delete the cUrl request information and save the file with the proper JSON format

Run sfdl

  • Execute sfdl in your troubleshooting directory where you configured the config.json file

  • A new folder called ApexLogs will be created with all the existing logs in the org***

*** Check the options bellow to filter the logs to download using queryWhere

By default the information retrieved comes from SELECT Id FROM ApexLog

Additional Command Line Options

The options using --optionName are:

| Option Name |Description |Example |Default value | |----------------|-------------------------------|-----------------------|---------| |methodHierarchy OR -m|Nests information between METHOD_ENTRY with its METHOD_EXIT as well as CODE_UNIT_STARTED and CODE_UNIT_FINISHED| sfdl --methodHierarchy OR sfdl --format | | queryWhere OR -q |Allows you to enter a SOQL statements after the FROM ApexLog |WHERE Operation != '<empty'> ORDER BY LastModifiedDate DESC| |folderName OR -n |Allows you to enter the name of the folder where the logs will be saved |NewLogs2022 | ApexLog | debug OR -d| It will turn on logs from the module | |createDraftConfig|It will create config.json file|{   "authToken":"",   "instanceUrl": ""}| |clearFinest OR -c|It will remove all lines that contains HEAP_ALLOCATE and STATEMENT_EXECUTE|| |format OR -f|It will display 3 options:    1) One file: Extract all query lines,    2) One file: Clear out HEAP_ALLOCATE and STATEMENT_EXECUTE,    3) All files in a folder: Clear out HEAP_ALLOCATE and STATEMENT_EXECUTE || |help|Additional information related to sfdl cli app|| |version OR -v|current version sfdl installed in your system|| |compare|It will use all the information from config to query and compare orgs records looking for differences and creating a file with them if exist||