sfdx plugins:install shane-sfdx-plugins
You'll be prompted that this, like any plugin, is not officially code-signed by Salesforce. If that's annoying, you can whitelist it
what all is in here and how does it work?
install and run this sfdx shane -h
but you like README, you say? Good thing oclif auto-generates all this for me. :)
$ npm install -g shane-sfdx-plugins
$ sfdx COMMAND
running command...
$ sfdx (-v|--version|version)
shane-sfdx-plugins/3.5.0 darwin-x64 node-v11.7.0
$ sfdx --help [COMMAND]
USAGE
$ sfdx COMMAND
...
sfdx shane:analytics:dataset:download
sfdx shane:analytics:dataset:list
sfdx shane:analytics:dataset:upload
sfdx shane:cdc:create
sfdx shane:cdc:prep
sfdx shane:cdc:stream
sfdx shane:data:file:upload
sfdx shane:data:id:query
sfdx shane:github:package:install
sfdx shane:github:src:install
sfdx shane:group:photo
sfdx shane:heroku:repo:deploy
sfdx shane:iot:activation
sfdx shane:label:add
sfdx shane:mdapi:describe
sfdx shane:mdapi:list
sfdx shane:mdapi:package:get
sfdx shane:mdapi:package:xml
sfdx shane:mdapi:pull
sfdx shane:mdapi:push
sfdx shane:object:create
sfdx shane:object:fat
sfdx shane:object:field
sfdx shane:object:fields:describe
sfdx shane:object:perms:align
sfdx shane:object:powerofone
sfdx shane:object:tab
sfdx shane:object:unperm
sfdx shane:org:componentlibrary
sfdx shane:org:create
sfdx shane:org:delete
sfdx shane:org:domain:verify
sfdx shane:org:metadatacoverage
sfdx shane:org:reauth
sfdx shane:org:refreshtoken
sfdx shane:package2:version:bump
sfdx shane:permset:check
sfdx shane:permset:create
sfdx shane:profile:convert
sfdx shane:profile:whitelist
sfdx shane:project:create
sfdx shane:remotesite:create
sfdx shane:static:create
sfdx shane:theme:activate
sfdx shane:tsp:username:update
sfdx shane:uiapi:objectinfo
sfdx shane:uiapi:record
sfdx shane:uiapi:recordui
sfdx shane:user:allPhotos
sfdx shane:user:lightning:debug
sfdx shane:user:loginurl
sfdx shane:user:password:set
sfdx shane:user:photo
download a dataset as csv
USAGE
$ sfdx shane:analytics:dataset:download
OPTIONS
-i, --id=id dataset id
-n, --name=name dataset name
-r, --rows=rows [default: 1000000000] how many rows?
-t, --target=target [default: .] where you want to save the file
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--versionid=versionid specify a version
EXAMPLES
sfdx shane:analytics:dataset:download -n YourDataSetName -t myLocalFolder
sfdx shane:analytics:dataset:download -i 0Fb6A000000gDFxSAM --versionid 0Fc6A000002d8GwSAI -t myLocalFolder -r 100
See code: src/commands/shane/analytics/dataset/download.ts
what analytics datasets are in my org?
USAGE
$ sfdx shane:analytics:dataset:list
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:analytics:dataset:list
See code: src/commands/shane/analytics/dataset/list.ts
upload a dataset from csv
USAGE
$ sfdx shane:analytics:dataset:upload
OPTIONS
-a, --app=app app name
-f, --csvfile=csvfile (required) local csv file containing the data
-m, --metajson=metajson path to json file for describing your upload (highly recommended)
-n, --name=name (required) dataset name
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:analytics:dataset:upload
See code: src/commands/shane/analytics/dataset/upload.ts
USAGE
$ sfdx shane:cdc:create
OPTIONS
-d, --dir=dir (required) folder to upload, containing /cdc/records
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--batchsize=batchsize [default: 200] how many records to insert in a batch
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
See code: src/commands/shane/cdc/create.ts
USAGE
$ sfdx shane:cdc:prep
OPTIONS
-d, --dir=dir (required) folder to upload, containing /cdc/records
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
See code: src/commands/shane/cdc/prep.ts
USAGE
$ sfdx shane:cdc:stream
OPTIONS
-d, --dir=dir stream the events to a folder instead of the console
-o, --object=object subscribe to change events for only a single object (api name,
including __c)
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:cdc:stream // get all the change events
sfdx shane:cdc:stream -o Account // get all the change events on a single object
sfdx shane:cdc:stream -d myDir // stream change events to myDir/cdc, organized into folders by object api type
See code: src/commands/shane/cdc/stream.ts
upload a file from local resources, optionally as a chatter post or attached file on a record
USAGE
$ sfdx shane:data:file:upload
OPTIONS
-c, --chatter attach as a chatter content post instead of just as a file
-f, --file=file (required) path to file on local filesystem
-n, --name=name set the name of the uploaded file
-p, --parentid=parentid optional record ID that the file should be attached to
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:data:file:upload -f ~/Downloads/King.png
//uploads file from local filesystem as a file
sfdx shane:data:file:upload -f ~/Downloads/King.png -p 0011900000VkJgrAAF
//uploads file from local filesystem as a file and attaches to a record
sfdx shane:data:file:upload -f ~/Downloads/King.png -p 0011900000VkJgrAAF -c
//uploads and attaches it to the indicated record, but as a chatter file post
sfdx shane:data:file:upload -f ~/Downloads/King.png -p 0011900000VkJgrAAF -n CustomName -c
//uploads and attaches it to the indicated record, but as a chatter file post with a name that's not the same
name as the local filesystem used
See code: src/commands/shane/data/file/upload.ts
query some object and get back the id of the matching record
USAGE
$ sfdx shane:data:id:query
OPTIONS
-o, --object=object (required) object
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
-w, --where=where (required) SOQL where clause for your query
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:data:id:query -o User -u platformers -w "Firstname = 'Shane' and Lastname = 'McLaughlin' and username =
'[email protected]'"'
// returns the id of the user. Use these ids between `` in other commands
See code: src/commands/shane/data/id/query.ts
installs a package from github using the sfdx-project.json file (v43+) OR the latestVersion.json file convention
USAGE
$ sfdx shane:github:package:install
OPTIONS
-g, --githubuser=githubuser (required) github username where the package lives
-r, --repo=repo (required) repo where the packages lives
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:github:package:install -g someUser -r someRepo -u someOrg
// installs packageVersion (04t) from https://github.com/someUser/someRepo/sfdx-project.json or
https://github.com/someUser/someRepo/latestVersion.json
See code: src/commands/shane/github/package/install.ts
installs a package from github from mdapi src
USAGE
$ sfdx shane:github:src:install
OPTIONS
-g, --githubuser=githubuser (required) github username where the package lives
-k, --keeplocally keep the cloned repo in local source instead of deleting it
-p, --path=path [default: src] folder where the source lives
-r, --repo=repo (required) repo where the packages lives
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:github:src:install -g someUser -r someRepo -u someOrg
// pulls mdapi-formatted code from https://github.com/someUser/someRepo/src and deploys to the org
sfdx shane:github:src:install -g someUser -r someRepo -u someOrg -p my/folder/tree
// pulls mdapi-formatted code from https://github.com/someUser/someRepo/my/folder/tree and deploys to the org
See code: src/commands/shane/github/src/install.ts
Set the photo for a user by first/last name
USAGE
$ sfdx shane:group:photo
OPTIONS
-b, --banner=banner local path of the chatter banner photo to use
-f, --file=file local path of the photo to use
-g, --group=group the name of the group name you want to set the photo/banner for
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:group:photo -g AwesomePeople -f ~/Downloads/King.png
// sets the chatter photo for the group named AwesomePeople using the local file
sfdx shane:user:photo -b ~/Downloads/King.png -g AwesomePeople
// sets the chatter banner photo for the group named AwesomePeople using the local file
See code: src/commands/shane/group/photo.ts
deploy a heroku app that has a valid app.json.
USAGE
$ sfdx shane:heroku:repo:deploy
OPTIONS
-d, --days=days [default: 1] days you want the heroku app to live (does nothing
locally)
-g, --githubuser=githubuser (required) github username where the app lives
-n, --name=name what do you want to Heroku app to be named
-o, --overrides=overrides an array of key-value pairs, like SOME_VAR="some Value" (use quotes
where string have spaces!)
-r, --repo=repo (required) repo where the app lives
-t, --team=team assign this new app to an existing heroku team
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--envpassword=envpassword grab the default scratch org password and set it to this Heroku
environment var
--envuser=envuser grab the default scratch org username and set it to this Heroku
environment var
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:heroku:repo:deploy -g someUser -r someRepo -u
// deploys code from https://github.com/someUser/someRepo that has a valid app.json
See code: src/commands/shane/heroku/repo/deploy.ts
Activate an iot orchestration by name
USAGE
$ sfdx shane:iot:activation
OPTIONS
-d, --deactivate deactivate the orchestration
-n, --name=name (required) API name of the orchestration
-r, --reset reset all instances of the orchestration
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:iot:activate -n orchName -r
// activates the orchestration, including the context if necessary, optionally resetting all the instances
sfdx shane:iot:activate -n orchName -d
// deactivates the orchestration, without resetting all the instances
See code: src/commands/shane/iot/activation.ts
create a remote site setting in the local source. Push it when you're done
USAGE
$ sfdx shane:label:add
OPTIONS
-d, --description=description description for your label
-l, --language=language [default: en_US] language code
-n, --name=name api name for your label
-t, --target=target [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
-t, --text=text (required) the text you want to turn into a label
--bundle=bundle [default: CustomLabels] label bundle when you want to organize them
more
--categories=categories categories to add to your custom label
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--protected mark as protected (packaged, subscribers cannot change the label
EXAMPLE
sfdx shane:label:add -t "This is some Text"
// create a custom label with the displayed text and all the defaults
See code: src/commands/shane/label/add.ts
what's in the org?
USAGE
$ sfdx shane:mdapi:describe
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:mdapi:describe -u someOrg
// list the metadata available in the org
See code: src/commands/shane/mdapi/describe.ts
what's in the org?
USAGE
$ sfdx shane:mdapi:list
OPTIONS
-t, --type=type (required) pull only a specific type. See the metadata api docs for
type names
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:mdapi:list -u someOrg -t CustomObject
// what metadata exists for a specific type
See code: src/commands/shane/mdapi/list.ts
gets package from an org, converts, and merges it into the local source
USAGE
$ sfdx shane:mdapi:package:get
OPTIONS
-p, --packagename=packagename (required) the name of the package you want to retrieve
-t, --target=target [default: force-app] where to convert the result to...defaults to
force-app
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:mdapi:package:get -p MyPkg -u someOrg
// pulls a package from the org and converts/merges it into force-app
sfdx shane:mdapi:package:get -p MyPkg -u someOrg -t someDir
// pulls a package from the org and converts/merges it into /someDir
See code: src/commands/shane/mdapi/package/get.ts
DEPRECATED. Use force:source:retrieve these days! gets metadata form an org based on a local package.xml, converts, and merges it into the local source
USAGE
$ sfdx shane:mdapi:package:xml
OPTIONS
-p, --xmlpath=xmlpath (required) the location of the package.xml you want to use
-t, --target=target [default: force-app] where to convert the result to...defaults to
force-app
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:mdapi:package:xml -p someFolder/package.xml -u someOrg
// pulls a metadat from the org and converts/merges it into force-app
sfdx shane:mdapi:package:xml -p someFolder/package.xml -u someOrg -t someDir
// pulls a package from the org and converts/merges it into /someDir
See code: src/commands/shane/mdapi/package/xml.ts
gets unpackaged metadata for you
USAGE
$ sfdx shane:mdapi:pull
OPTIONS
-c, --code ApexClass,ApexTrigger,ApexComponent,ApexPage,AuraDefinitionBundle,Stat
icResource
-i, --ui CompactLayout,Layout,ListView,CustomTab,AppMenu,CustomApplication,Cust
omPageWebLink,HomePageComponent,HomePageLayout,PathAssistant,WebLink,C
ustomLabels,FlexiPage,QuickAction
-o, --object=object pull metadata for a single object
-p, --perms PermissionSet,Profile,Role,CustomPermission,Group
-s, --schema ExternalDataSource,CustomMetadata,RecordType,GlobalValueSet,CustomFiel
d,CustomObject,StandardValueSet
-t, --type=type pull only a specific type. See the metadata api docs for type names
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--all Pulls just about everything. Don't use this flag with any other
subset of metadata. Not recommended for really large metatadat orgs
because it'll overflow stdout
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--reporting Report,Dashboard
--wave WaveApplication,WaveDashboard,WaveDataflow,WaveLens,WaveTemplateBundle
,Wavexmd,WaveDataset
EXAMPLES
sfdx shane:mdapi:pull -c -u someOrg
// pulls code kinda stuff from the org and converts/merges it into your project's default pkgDir
sfdx shane:mdapi:pull -u someOrg
// pulls all the external data source metadata from the org and converts/merges it into your project's default pkgDir
See code: src/commands/shane/mdapi/pull.ts
convert and deploy the packaged source
USAGE
$ sfdx shane:mdapi:push
OPTIONS
-d, --convertedfolder=convertedfolder [default: mdapiout] where to store the mdapi-converted source
-k, --keepconverted Don't automatically delete the converted source
-r, --source=source [default: force-app] deploy a specific folder that's not force-app
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
-w, --deploymenttimelimit=deploymenttimelimit [default: 200] How many minutes to wait for the deployment to finish
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:mdapi:push -u someOrg
// convert to mdapi format and push to the given org
See code: src/commands/shane/mdapi/push.ts
create an object in local source. Only __c (limited support), __b (big objects) and events __e are currently supported
USAGE
$ sfdx shane:object:create
OPTIONS
-a, --api=api api name. Ends with one of the supported types: [__b, __e]
-d, --directory=directory [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
-h, --highvolume high volume, valid only for platform events (__e)
-i, --interactive fully interactive--ask me every possible question.
-l, --label=label label for the UI
-p, --plural=plural plural label for the UI
-t, --type=custom|big|event type of object
--activities the enableActivities flag on an object (invalid for __b, __e)
--autonumberformat=autonumberformat the display format for the autonumbering
--description=description [default: added from sfdx plugin] optional description so you can
remember why you added this and what it's for
--enterprise enable bulk/sharing/streaming
--feeds the enableFeeds flag on an object (invalid for __b, __e)
--history the enableHistory flag on an object (invalid for __b, __e)
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--namefieldlabel=namefieldlabel [default: Name] the label for the name field
--nametype=Text|AutoNumber name field type
--reports the enableReports flag on an object (invalid for __b, __e)
--search the enableSearch flag on an object (invalid for __b, __e)
--sharingmodel=Read|ReadWrite|Private [default: ReadWrite] sharing model
EXAMPLES
sfdx shane:object:create
// without any params, the cli is going to ask you questions to generate your object interactively
sfdx shane:object:create --label "Platypus" --plural "Platypi" --api Platypus__b --directory /my/project/path
// label, plural, api name specified so the tool doesn't have to ask you about them. Creates in a non-default path
sfdx shane:object:create --label "Platypus" --plural "Platypi" --api Platypus__b --directory /my/project/path
// label, plural, api name specified so the tool doesn't have to ask you about them. Creates in a non-default path
sfdx shane:object:create --label "Signal" --plural "Signals" --api Signal__e
// create a platform event
See code: src/commands/shane/object/create.ts
add or update a field audit trail retention policy on an object. Modifies local source--you still need to push/deploy
USAGE
$ sfdx shane:object:fat
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata?
defaults to force-app/main/default
-m, --archiveaftermonths=archiveaftermonths [default: 18] archive after this number of months
-o, --object=object (required) object to manage the policy for
-y, --archiveretentionyears=archiveretentionyears [default: 10] Archive for this many years
--description=description optional friendly description for the policy
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:object:fat -o Account
// set the retention policy on Account to the defaults (archive after 18 months, archive for 10 years)
sfdx shane:object:fat -o Account -m 4 -y 5
// archive history for 5 years, after being in regular history for 4 months
sfdx shane:object:fat -o Account -m 4 -y 5 -d myDir
// same as 2nd example, except metadata is in myDir instead of the default force-app/main/default
sfdx shane:mdapi:pull -o Account -u realOrg && sfdx shane:object:fat -o Account -m 4 -y 5 -d myDir && sfdx
shane:mdapi:push -u realOrg
// get some object you don't have locally, create the policy, and push that back up to where it came from
See code: src/commands/shane/object/fat.ts
create or add fields to an existing object
USAGE
$ sfdx shane:object:field
OPTIONS
-a, --api=api API name for the field
-d, --directory=directory [default: force-app/main/default] Where is this object metadata?
defaults to force-app/main/default
-i, --interactive fully interactive--ask me every possible question.
-l, --length=length length (for text fields and text area)
-n, --name=name Label for the field
-o, --object=object API name of an object to add a field to
-r, --required field is required
-s, --scale=scale places right of the decimal
-t, --type=type field type. Big Objects: Text,Number,DateTime,Lookup,LongTextArea.
Events: Text,Number,DateTime,Date,LongTextArea,Checkbox. Regular
Objects:
Text,Number,DateTime,Date,LongTextArea,Checkbox,Url,Email,Phone
-u, --unique field must be unique
--default=default required for checkbox fields. Express in Salesforce formula language
(good luck with that!)
--description=description optional description for the field so you remember what it's for next
year
--externalid use as an external id
--helptext=helptext optional inline help text
--indexappend put next in the big object index
--indexdirection=ASC|DESC sort direction for the big object index
--indexposition=indexposition put in a specific position in the big object index (0 is the first
element). You're responsible for dealing with producing a sane array
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--lookupobject=lookupobject API name of the object the lookup goes to
--noindex do not add this field to the index
--precision=precision maximum allowed digits of a number, including whole and decimal places
--relname=relname API name for the lookup relationship
--trackhistory enable history tracking on the field
EXAMPLES
sfdx shane:object:field
// without any params, the cli is going to ask you questions to generate your field interactively
sfdx shane:object:field --api My_Field__c -l 255 -n "My Field" -t Text -o BigTest__b --noindex
// create new text field called My Field (My_Field__c) on BigObject BigTest__b
sfdx shane:object:field --api My_Index_Field__c -l 255 -n "My Index Field" -t Text -o BigTest__b --indexdirection ASC
--indexposition 1
// create new text field called My Field (My_Field__c) on BigObject BigTest__b, add it to the existing index as the
second field
sfdx shane:object:field --api My_Field__c -l 255 -n "My Field" -t Text -o EventTest__e
// create new text field called My Field (My_Field__c) on Platform Event EventTest__e
See code: src/commands/shane/object/field.ts
what fields are on the object?
USAGE
$ sfdx shane:object:fields:describe
OPTIONS
-o, --object=object (required) the object to describe
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:object:fields:describe -o Account -u someOrg
// list the fields (with type/label) on account
See code: src/commands/shane/object/fields/describe.ts
align profiles with
USAGE
$ sfdx shane:object:perms:align
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata?
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:object:perms:align
// go through all the profiles/permsets in force-app/main/default and remove references to stuff that isn't in local
source
See code: src/commands/shane/object/perms/align.ts
add a "power of one" formula field to any object
USAGE
$ sfdx shane:object:powerofone
OPTIONS
-a, --api=api [default: Power_Of_One__c] api name (will include the __c for you if
you don't add it here
-d, --description=description [default: Power of one is used for formulas, reporting, etc] optional
description so you can remember why you added this and what it's for
-l, --label=label [default: Power Of One] label
-o, --object=object (required) API name of the object to add the field to
-t, --target=target [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:object:powerofone -a Poo -l "Power of One" -o User
// create a field with api name Poo__c and label "Power of One" on the user object with the default description in the
default folder
See code: src/commands/shane/object/powerofone.ts
create a tab from a custom object, and you have to pick an
USAGE
$ sfdx shane:object:tab
OPTIONS
-i, --icon=icon (required) icon number from
https://lightningdesignsystem.com/icons/#custom but only up to 100
-o, --object=object (required) object api name
-t, --target=target [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:object:tab -o SomeObject__c -i 86
// create a tab for the object using icon #86 from https://lightningdesignsystem.com/icons/#custom
See code: src/commands/shane/object/tab.ts
remove references to an object from profiles/permsets (all or a specific one)
USAGE
$ sfdx shane:object:unperm
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata? defaults
to force-app/main/default
-o, --object=object (required) remove all references to an object from profiles or
permsets
-s, --specific=specific specify a profile or permset by name to only remove it from that one
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:object:unperm -o OpportunitySplit
// go through all the profiles/permsets in force-app/main/default and remove the object, field, recordtypes and layout
assignments (profile only) for the named object
See code: src/commands/shane/object/unperm.ts
opens the lightning component library for the specified org
USAGE
$ sfdx shane:org:componentlibrary
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:org:componentlibrary
// opens /componentReference/suite.app on the default scratch org
sfdx shane:org:componentlibrary -u someOrgAlias
// opens library for specified org
See code: src/commands/shane/org/componentlibrary.ts
create an org with a friendly username. wraps force:org:create
USAGE
$ sfdx shane:org:create
OPTIONS
-a, --setalias=setalias set an alias for for the created scratch org
-c, --noancestors do not include second-generation package ancestors in the scratch org
-d, --durationdays=durationdays [default: 7] duration of the scratch org (in days) (default:7, min:1,
max:30)
-f, --definitionfile=definitionfile [default: config/project-scratch-def.json] path to a scratch org
definition file. Default = config/project-scratch-def.json
-i, --clientid=clientid connected app consumer key
-n, --nonamespace creates the scratch org with no namespace
-o, --userdomain=userdomain (required) last part of the generated username (after the @ sign).
Example: 'demo.org' produces [email protected], [email protected]
-s, --setdefaultusername set the created org as the default username
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--userprefix=userprefix (required) first part of the generated username. Example: 'shane'
produces [email protected], [email protected]
--wait=wait [default: 20] the streaming client socket timeout (in minutes)
(default:20, min:2)
EXAMPLES
sfdx shane:org:create --userprefix shane -o org.test
// creates an org from the default project config/project-scratch-def.json but with username shane[i]@org.test where i
is a unique sequence number for that -u/-o combination
sfdx shane:org:create --userprefix shane -o org.test -a sydneyBristow -d 30 -v myOtherHub -f config/thatOtherFile.json
// above, but with an alias, a longer duration, and not the default hub, and not the default config file
See code: src/commands/shane/org/create.ts
delete the default scratch org. Won't prompt you for confirmation
USAGE
$ sfdx shane:org:delete
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:org:delete
// deletes the current default scratch org
See code: src/commands/shane/org/delete.ts
Verifies that a domain was successfully setup with MyDomain
USAGE
$ sfdx shane:org:domain:verify
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:org:domain:verify
See code: src/commands/shane/org/domain/verify.ts
opens the metadata coverage report page
USAGE
$ sfdx shane:org:metadatacoverage
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:org:metadatacoverage
// opens /mdcoverage/report.jsp on the default scratch org
sfdx shane:org:metadatacoverage -u someOrgAlias
// opens mdcoverage for specified org
See code: src/commands/shane/org/metadatacoverage.ts
reauthenticates (generates a new authinfo) for a scratch org, optionally insisting on custom domain being ready. Requires a hub
USAGE
$ sfdx shane:org:reauth
OPTIONS
-r, --requirecustomdomain keep trying until you get back an org with a custom domain on it
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
-v, --targetdevhubusername=targetdevhubusername username or alias for the dev hub org; overrides default dev hub org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:org:reauth
// reauths, and takes what it can get
sfdx shane:org:reauth --requirecustomdomain
// will try each minute, up to 60 minutes, until an org with a valid mydomain is ready
See code: src/commands/shane/org/reauth.ts
Outputs a refresh token from an org that you've already auth'd sfdx to. PLEASE BE CAREFUL WITH THIS AND TREAT IT AS A PASSWORD
USAGE
$ sfdx shane:org:refreshtoken
OPTIONS
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:org:refreshtoken -u someAliasOrUsername
// prints the refresh token for some org that you've already connected to
See code: src/commands/shane/org/refreshtoken.ts
bump the major/minor version number in the packageDirectory
USAGE
$ sfdx shane:package2:version:bump
OPTIONS
-M, --major Bump the major version by 1, sets minor,build to 0
-c, --create create a new packageVersion from the new versionNumber
-m, --minor Bump the minor version by 1
-p, --patch Bump the patch version by 1
-r, --release set the newly version as released (out of Beta). Implies create
whether you flag it or not :)
-t, --target=target [default: force-app] name of your package directory (defaults to
force-app)
-v, --targetdevhubusername=targetdevhubusername username or alias for the dev hub org; overrides default dev hub org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:package2:version:bump -m
// bump the minor version up by one (and set patch to 0)
sfdx shane:package2:version:bump -M
// bump the major version up by one (and set minor/patch to 0)
sfdx shane:package2:version:bump -p
// bump the patch version up by one
sfdx shane:package2:version:bump -M -t myDir
// bump the major version up by one for a particular directory that's not the default
sfdx shane:package2:version:bump --minor --create
// bump the minor version up by one and create a new package2version
sfdx shane:package2:version:bump --minor --release
// bump the minor version up by one and create a new package2version, then set that as released
See code: src/commands/shane/package2/version/bump.ts
who has access to what
USAGE
$ sfdx shane:permset:check
OPTIONS
-f, --field=field what field to check
-o, --object=object (required) what object to check perms on
-u, --targetusername=targetusername username or alias for the target org; overrides default
target org
--apiversion=apiversion override the api version used for api requests made by this
command
--fieldlevel=Read|Edit [default: Read] what level of perms are you looking for
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--objectlevel=Read|Edit|Create|Delete|ViewAll|ModifyAll [default: Read] what level of perms are you looking for
--permsets return names/ids of permission sets
--profiles return names/ids of profiles
--users return names/ids of users with those profiles and/or
permission sets
EXAMPLES
sfdx shane:permset:check -o Project__c --profiles --permsets
// list the profiles and permsets that have Read access to the object
sfdx shane:permset:check -o Project__c -f Due_Date__c --fieldlevel Edit --profiles --permsets
// list the profiles and permsets that have Edit access to the field on the object
sfdx shane:permset:check -o Project__c -f Due_Date__c --users
// list the users that have Read access to the field on the object, and the profile/permset(s) that are granting
it
See code: src/commands/shane/permset/check.ts
create or add stuff to a permset with maximum access
USAGE
$ sfdx shane:permset:create
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata? defaults
to force-app/main/default
-f, --field=field API name of an field to add perms for. Required --object If blank,
then you mean all the fields
-n, --name=name (required) path to existing permset. If it exists, new perms will be
added to it. If not, then it'll be created for you
-o, --object=object API name of an object to add perms for. If blank, then you mean ALL
the objects and ALL their fields and ALL their tabs
-t, --tab also add the tab for the specified object (or all objects if there is
no specified objects)
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:permset:create -n MyPermSet1 -o Something__c -f Some_Field__c
// create a permset in force-app/main/default for the object/field. If MyPermSet1 doesn't exist, it will be created.
sfdx shane:permset:create -n MyPermSet1 -o Something__c
// create a permset in force-app/main/default for every field on Something__c.
sfdx shane:permset:create -n MyPermSet1
// create a permset in force-app/main/default for every field on every object!
sfdx shane:permset:create -n MyPermSet1 -t
// create a permset in force-app/main/default for every field on every object. If there's a tab for any of those
objects, add that tab to the permset, too
See code: src/commands/shane/permset/create.ts
convert a profile into a permset
USAGE
$ sfdx shane:profile:convert
OPTIONS
-c, --skinnyclone create a new profile that's the original profile less permset (does
not modify original profile)
-d, --directory=directory [default: force-app/main/default] Where is all this metadata? defaults
to force-app/main/default
-e, --editprofile remove metadata from original profile
-n, --name=name (required) path to existing permset. If it exists, new perms will be
added to it. If not, then it'll be created for you
-p, --profile=profile (required) API name of an profile to convert. If blank, then you mean
ALL the objects and ALL their fields and ALL their tabs
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:profile:convert -p Admin -n MyNewPermSet -e
// create a permset in force-app/main/default from the Admin profile (profiles/Admin). If MyNewPermSet doesn't exist,
it will be created. Content is removed from Admin profile (-e)
sfdx shane:profile:convert -p Admin -n MyNewPermSet -c
// create a permset in force-app/main/default from the Admin profile (profiles/Admin). If MyNewPermSet doesn't exist,
it will be created. Leaves the original Admin profile and creates an Admin_Skinny profile that has everything in the
permset removed (-c)
See code: src/commands/shane/profile/convert.ts
whitelist the whole internet for a profile (no ip verification or 2FA/OTP challenges in dev)
USAGE
$ sfdx shane:profile:whitelist
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata? defaults
to force-app/main/default
-n, --name=name (required) profile name
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:profile:whitelist -n Admin
// add loginIpRanges of 0.0.0.0 to 255.255.255.255 to an existing profile, or create one if it doesn't exist
See code: src/commands/shane/profile/whitelist.ts
creates an sfdx project
USAGE
$ sfdx shane:project:create
OPTIONS
-g, --gitremote=gitremote (required) full github url for the remote
-n, --name=name (required) name and path for the project
-v, --targetdevhubusername=targetdevhubusername username or alias for the dev hub org; overrides default dev hub org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:project:create -n myProject
// create a project in the folder with all the default structure
See code: src/commands/shane/project/create.ts
create a remote site setting in the local source. Push it when you're done
USAGE
$ sfdx shane:remotesite:create
OPTIONS
-d, --description=description [default: added from sfdx plugin] optional description so you can
remember why you added this and what it's for
-n, --name=name (required) name it (Salesforce API compliant name)
-t, --target=target [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
-u, --url=url (required) url that you want to allow callouts to
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:remotesite:create -n Test -u https://www.google.com
// create a remote site setting in force-app/main/default
sfdx shane:remotesite:create -n Test -u https://www.google.com -d "my description" -t myOtherDirectory/main/default
// create a remote site setting in myOtherDirectory/main/default with a description
See code: src/commands/shane/remotesite/create.ts
create a static resource locally
USAGE
$ sfdx shane:static:create
OPTIONS
-d, --description=description [default: added from sfdx plugin] optional description so you can
remember why you added this and what it's for
-n, --name=name (required) name it (Salesforce API compliant name)
-p, --public mark the cache control public
-t, --target=target [default: force-app/main/default] where to create the folder (if it
doesn't exist already) and file...defaults to force-app/main/default
-y, --type=zip|css|js|text|xml (required) choose one of the following: zip, css, js, text, xml
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:static:create -n myJSResource -y js
// creates /staticresources/myJSResource.js (empty file) and /staticresources/myJSResource.resource-meta.xml
sfdx shane:static:create -n myZipResource -y js -d "my description" -t myOtherDirectory/main/default
// create an empty folder (zips when pushed), the meta.xml, with a description in a non-default directory.
See code: src/commands/shane/static/create.ts
Activate a LightningExperienceTheme via Puppeteer/Chromium headless. Recommended: use shane:org:reuath -r to make darn sure that the domain is ready to open something
USAGE
$ sfdx shane:theme:activate
OPTIONS
-b, --showbrowser show the browser...useful for local debugging
-n, --name=name (required) name of the theme to activate
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
See code: src/commands/shane/theme/activate.ts
change the username on all transaction security policies
USAGE
$ sfdx shane:tsp:username:update
OPTIONS
-d, --directory=directory [default: force-app/main/default] Where is all this metadata? defaults
to force-app/main/default
-n, --newusername=newusername manually specify the username, ignoring your default or any -u
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:tsp:username:update -n [email protected]
// updates the username for executionUser and all notifications in all transaction security policies
sfdx shane:tsp:username:create
// updates the username for executionUser and all notifications in all transaction security policies to the default
org's username
sfdx shane:tsp:username:create -u someAlias
// updates the username for executionUser and all notifications in all transaction security policies to the specified
target org's username
See code: src/commands/shane/tsp/username/update.ts
get a ui api response from the objectinfo endpoint: https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_resources_object_info.htm
USAGE
$ sfdx shane:uiapi:objectinfo
OPTIONS
-o, --object=object object api name
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--outputfile=outputfile local path to save the output to
EXAMPLES
sfdx shane:uiapi:objectinfo -o Account --json
// returns ui-api objectinfo for Account
sfdx shane:uiapi:objectinfo -o Account --json --outputfile accountObjectInfo.json
// returns ui-api objectinfo for Account and saves it to a local file
See code: src/commands/shane/uiapi/objectinfo.ts
get a ui api response from the getrecord endpoint: https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_resources_record_get.htm
USAGE
$ sfdx shane:uiapi:record
OPTIONS
-f, --fields=fields (required) fields to return. Specify with the object API name, like
Account.Name, Account.Phone, etc. If not visible to the running user,
an error is thrown
-r, --recordid=recordid (required) single recordId to generate the data/metadata
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--optionalfields=optionalfields optional fields to return. If not visible to the running user, the
field is just omitted
--outputfile=outputfile local path to save the output to
EXAMPLE
sfdx shane:uiapi:record -r 001R0000003I6CoIAK -f Account.Name --optionalfields
Account.AnnualRevenue,AccountAccount.Number --json
// default ui-api response for a getrecord.
See code: src/commands/shane/uiapi/record.ts
get a ui api response from the record-ui endpoint: https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_resources_record_ui.htm
USAGE
$ sfdx shane:uiapi:recordui
OPTIONS
-l, --layouttypes=layouttypes which layout (Compact, Full or both)
-m, --modes=modes which mode (Create, Edit, View, or combo)
-r, --recordid=recordid single recordId to generate the data/metadata
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
--outputfile=outputfile local path to save the output to
--recordids=recordids array of recordIds to generate the data/metadata
EXAMPLE
sfdx shane:uiapi:recordui -r 001R0000003I6CoIAK --json
// default ui-api response for a single recordId
See code: src/commands/shane/uiapi/recordui.ts
set the chatter photos of anyone who has not set theirs already to encourage them to do so
USAGE
$ sfdx shane:user:allPhotos
OPTIONS
-f, --folder=folder optional local folder of photos. Overrides --repo
-r, --repo=repo [default: https://github.com/mshanemc/badProfilePhotos] optional
alternate repo of photos, which contains a folder of photos named /img
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:user:allphotos -u someAlias
See code: src/commands/shane/user/allPhotos.ts
set the user to debug mode
USAGE
$ sfdx shane:user:lightning:debug
OPTIONS
-g, --firstname=firstname first (given) name of the user--keeping -f for file for consistency
-l, --lastname=lastname last name of the user
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:user:lightning:debug
// puts the default user in lightning debug mode
sfdx shane:user:lightning:debug -g Sarah -l McLaughlin
// puts the named user in lightning debug mode
See code: src/commands/shane/user/lightning/debug.ts
generate a long-lived shareable login url for the org
USAGE
$ sfdx shane:user:loginurl
OPTIONS
-p, --starturl=starturl url to open
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:user:loginurl
// generates a url including un and pw query strings to simplify logging into the scratch org
sfdx shane:user:loginurl -p /lightning/setup/ObjectManager/home
// same, but sets the start url to ObjectManager
See code: src/commands/shane/user/loginurl.ts
Set the password for a user by first/last name
USAGE
$ sfdx shane:user:password:set
OPTIONS
-g, --firstname=firstname (required) first (given) name of the user--keeping -f for file for
consistency
-l, --lastname=lastname (required) last name of the user
-p, --password=password (required) local path of the photo to use
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLE
sfdx shane:user:password:set -p sfdx1234 -g User -l User
// sets the password for User User to sfdx1234
See code: src/commands/shane/user/password/set.ts
Set the photo for a user by first/last name
USAGE
$ sfdx shane:user:photo
OPTIONS
-b, --banner=banner local path of the chatter banner photo to use
-f, --file=file local path of the photo to use
-g, --firstname=firstname first (given) name of the user--keeping -f for file for consistency
-l, --lastname=lastname (required) last name of the user
-u, --targetusername=targetusername username or alias for the target org; overrides default target org
--apiversion=apiversion override the api version used for api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal) logging level for this command invocation
EXAMPLES
sfdx shane:user:photo -f ~/Downloads/King.png -g User -l User
// sets the chatter photo for the user named User User using the local file
sfdx shane:user:photo -b ~/Downloads/King.png -g User -l User
// sets the chatter banner photo for the user named User User using the local file
sfdx shane:user:photo -f ~/Downloads/King.png -b ~/Downloads/OtherPhoto.jpg -g User -l User
// sets the chatter banner photo AND user photo at the same time
See code: src/commands/shane/user/photo.ts