jsf1
v1.2.4
Published
just some sf script.
Readme
jsf1
Salesforce CLI utility toolkit. Three commands: jsf1, jsf1dl, jsf1m.
Install
npm install -g jsf1
# or dev
npm link .Requirements
- Node.js 18+
- Java 17+ (for
jsf1dl) - sfdx / sf CLI (for org authentication)
.env
Auto-loaded from the current working directory on every command.
# .env
SF_ORG=myorg # default sfdx alias (-u), replaces --alias on all commands
SF_SQLITE=./data.db # auto-append to --output on get-db (writes to sqlite)
# Optional
LOG_LEVEL=DEBUG # DEBUG | INFO | WARN | ERROR | FATAL
API_VERSION=63.0 # Salesforce API version
SF_LIMIT=100 # default --limit / --size
SF_ORDER=CreatedDate DESC # default --order
SF_TOOLING=1 # enable Tooling API by default
SF_STANDARD_SOBJECTS=User,Account,Contact # override standard sobject list
SF_LOG_DIR=logs # default output dir for logging/test-result
JSF1_DEBUG=1 # sqlite debug outputjsf1
Salesforce data & metadata CLI.
Auth
sfdx force:auth:web:login -a myorgCRUD
jsf1 q -s Account --limit 10 # query (SF_ORG auto-injected)
jsf1 q -s Account -u myorg --limit 10 --table
jsf1 q -s Account/0011U000026qmBUQAY -u myorg # get by id
jsf1 query "SELECT Id,Name FROM Account" -u myorg
jsf1 search -s Account -k keyword -u myorg
jsf1 bulk-query "SELECT Id FROM Account" -u myorg -o out.csv
jsf1 create Account -u myorg -f data.json
jsf1 update Account -u myorg -f data.json
jsf1 upsert Account -u myorg -f data.json --pkey ExternalId__c
jsf1 delete Account -u myorg -f ids.jsonSchema
jsf1 describe -u myorg # list all sobjects
jsf1 get-schema -u myorg -s Account # describe single sobject
jsf1 get-schema -u myorg --output schema.xlsx
jsf1 get-db -u myorg --standard Account User RecordType --limit 2000 --output ./dist/db
jsf1 get-db -u myorg # SF_SQLITE auto-writes to sqlite
jsf1 relation-parser -d ./dist/db/sobjects -s Account --maxdeepth 6 --flatLogs & Monitor
jsf1 logging -u myorg # stream apex logs (SF_LOG_DIR)
jsf1 test-result -u myorg # stream test results
jsf1 get-apex-log -u myorg --size 20
jsf1 get-event-log -u myorg --limit 10
jsf1 get-async-apex-job -u myorg
jsf1 get-setup-audit-trail -u myorgMetadata
jsf1 md describe -u myorg
jsf1 md list -u myorg --type CustomObject
jsf1 md read -u myorg --type CustomObject -f Account
jsf1 md-read -u myorg CustomObject:Account
jsf1 md-cp -f org1 -t org2 CustomField:Account.MyField__c
jsf1 metadata -u myorg describeDiagram / ERD
jsf1 erd -u myorg --output erd.mmd
jsf1 dependency -u myorg --type ApexClass
jsf1 dependency-summary -u myorgOther
jsf1 limit -u myorg
jsf1 token -u myorg
jsf1 rest /services/data/v63.0/sobjects -X get -u myorg
jsf1 start-server -p 8888 # hpm proxy server
jsf1 xlsx -f data.xlsx # read excel
jsf1 sql -u myorg --type pg # generate postgres DDL
jsf1 process-conf -u myorg # dataloader process-conf.xml
jsf1 package-sort # sort package.xml
jsf1 package-merge -f p1.xml p2.xml -o merged.xmlOutput formats
Most commands support --output (array):
jsf1 q -s Account -u myorg -o out.json out.xlsx out.csv out.dbSupported: .json, .yaml, .csv, .tsv, .xlsx, .db, .sqlite
jsf1m
Local metadata parser (no org connection needed).
jsf1m apex-summary -d force-app/main/default -o summary.xlsx
jsf1m customlabel -d force-app/main/default -o labels.xlsx
jsf1m sobject -d force-app/main/default -o sobjects.xlsx
jsf1m exp-route -d force-app/main/default/experiences -o routes.xlsx
jsf1m deploy-script -a HEAD~1 -b HEAD # generate sf deploy script from git diff
jsf1m packagexml -f metadata.xlsx -o package.xml
jsf1m changeset <packageName> -c jsf1m.yml
jsf1m deploy <packageName>
jsf1m init <packageName>jsf1dl
Salesforce Dataloader wrapper. Requires Java 17+.
# 1. Initialize config (username/password auth)
jsf1dl init -u [email protected] -p MyPass+SecurityToken -e https://login.salesforce.com
# 2. Encrypt password
jsf1dl encrypt MyPass+SecurityToken -c jsf1dl/config
# 3. Export
jsf1dl export -q "SELECT Id,Name FROM Account" -c jsf1dl/config
# 4. Insert / Update / Upsert / Delete
jsf1dl insert -c jsf1dl/config
jsf1dl update -c jsf1dl/config
jsf1dl upsert -c jsf1dl/config
jsf1dl delete -c jsf1dl/config
# Open Dataloader UI
jsf1dl uiNote:
jsf1dluses username/password authentication (not OAuth). The security token must be appended to the password.
