shane-sfdx-plugins

install

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

docs

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. :)

Usage

$ npm install -g shane-sfdx-plugins
$ sfdx COMMAND
running command...
$ sfdx (-v|--version|version)
shane-sfdx-plugins/3.16.1 darwin-x64 node-v12.1.0
$ sfdx --help [COMMAND]
USAGE
  $ sfdx COMMAND
...

Commands

sfdx shane:analytics:app:share -n <string> [--allprm -c] [--allcsp undefined] [--org] [-t <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

share an analytics app by name

USAGE
  $ sfdx shane:analytics:app:share -n <string> [--allprm -c] [--allcsp undefined] [--org] [-t <string>] [-u <string>] 
  [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -c, --community                                 enable community sharing
  -n, --name=name                                 (required) name of the analytics app
  -t, --type=View|Edit|Manage                     [default: View] access level
  -u, --targetusername=targetusername             username or alias for the target org; overrides default target org
  --allcsp                                        share with all customer portal users
  --allprm                                        share with all partner users
  --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)  [default: warn] logging level for this command invocation
  --org                                           share with all internal users

EXAMPLE
  sfdx shane:analytics:app:share -n SharedApp --allprm -c
  // share the standard SharedApp with all partners view level perms (default) and check the "enable sharing with 
  communities" box for this app

See code: src/commands/shane/analytics/app/share.ts

sfdx shane:analytics:community:enable [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Activate a community using a headless browser

USAGE
  $ sfdx shane:analytics:community:enable [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

OPTIONS
  -b, --showbrowser                               show the browser...useful for local debugging
  -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)  [default: warn] logging level for this command invocation

ALIASES
  $ sfdx shane:communities:analytics:enable

See code: src/commands/shane/analytics/community/enable.ts

sfdx shane:analytics:dataflow:start [-n <string>] [-i <id>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

start an analytics dataflow by name/label/id

USAGE
  $ sfdx shane:analytics:dataflow:start [-n <string>] [-i <id>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -i, --id=id                                     the id of the dataflow
  -n, --name=name                                 name or label of the analytics app (will match either)
  -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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:analytics:dataflow:start -n MyDataFlowName
  // enqueue a job for the the analytics dataflow with name/label MyDataFlowName (will not wait for completion of the 
  dataflow)

See code: src/commands/shane/analytics/dataflow/start.ts

sfdx shane:analytics:dataset:download [-i <id>] [-n <string>] [--versionid <string>] [-t <filepath>] [-r <number>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

download a dataset as csv

USAGE
  $ sfdx shane:analytics:dataset:download [-i <id>] [-n <string>] [--versionid <string>] [-t <filepath>] [-r <number>] 
  [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:analytics:dataset:list [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

what analytics datasets are in my org?

USAGE
  $ sfdx shane:analytics:dataset:list [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:analytics:dataset:list

See code: src/commands/shane/analytics/dataset/list.ts

sfdx shane:analytics:dataset:upload -n <string> -f <filepath> [-a <string>] [-m <filepath>] [--async] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

upload a dataset from csv

USAGE
  $ sfdx shane:analytics:dataset:upload -n <string> -f <filepath> [-a <string>] [-m <filepath>] [--async] [-u <string>] 
  [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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

  --async                                         do not wait for successful completion of the dataset upload...just
                                                  return and hope for the best.  If omitted, will poll the analytics
                                                  rest API for job processing status until complete

  --json                                          format output as json

  --loglevel=(trace|debug|info|warn|error|fatal)  [default: warn] logging level for this command invocation

EXAMPLES
  sfdx shane:analytics:dataset:upload -n someName -f data/myFile.csv -m myMetaFile.json
  sfdx shane:analytics:dataset:upload -n someName -f data/myFile.csv -m myMetaFile.json -a SharedApp  --async

See code: src/commands/shane/analytics/dataset/upload.ts

sfdx shane:cdc:create -d <directory> [--batchsize <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

USAGE
  $ sfdx shane:cdc:create -d <directory> [--batchsize <integer>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

See code: src/commands/shane/cdc/create.ts

sfdx shane:cdc:prep -d <directory> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

USAGE
  $ sfdx shane:cdc:prep -d <directory> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

See code: src/commands/shane/cdc/prep.ts

sfdx shane:cdc:stream [-o <string>] [-d <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

USAGE
  $ sfdx shane:cdc:stream [-o <string>] [-d <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:communities:activate -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Activate a community using a headless browser

USAGE
  $ sfdx shane:communities:activate -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

OPTIONS
  -b, --showbrowser                               show the browser...useful for local debugging
  -n, --name=name                                 (required) name of the community 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)  [default: warn] logging level for this command invocation

See code: src/commands/shane/communities/activate.ts

sfdx shane:communities:describe [--store] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

tell me about the communities in the org, and optionally store the description

USAGE
  $ sfdx shane:communities:describe [--store] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation
  --store                                         store the community description in externalApps.json

EXAMPLE
  sfdx shane:communities:describe

See code: src/commands/shane/communities/describe.ts

sfdx shane:communities:publish -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Publish a community using a headless browser

USAGE
  $ sfdx shane:communities:publish -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

OPTIONS
  -b, --showbrowser                               show the browser...useful for local debugging
  -n, --name=name                                 (required) name of the community to publish
  -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)  [default: warn] logging level for this command invocation

See code: src/commands/shane/communities/publish.ts

sfdx shane:communities:url [-p <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

get me the login for a community from an org

USAGE
  $ sfdx shane:communities:url [-p <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

OPTIONS
  -p, --prefix=prefix                             community prefix (thing after the slash in the url)
  -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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:communities:url --prefix dealers

See code: src/commands/shane/communities/url.ts

sfdx shane:connectedapp:uniquify -p <string> -a <filepath> [--json] [--loglevel trace|debug|info|warn|error|fatal]

modify a clientId/consumerKey on a local connected app to guaranatee uniqueness

USAGE
  $ sfdx shane:connectedapp:uniquify -p <string> -a <filepath> [--json] [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -a, --app=app                                   (required) full path to your connected app locally
  -p, --prefix=prefix                             (required) add a prefix to the connected app's consumerKey
  --json                                          format output as json
  --loglevel=(trace|debug|info|warn|error|fatal)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:connectedapp:uniquify -a force-app/main/default/connectedappmyConnectedApp -p 5h4n3
  // update the consumerKey of myConnectedApp to be unique, but start with 5h4n3

See code: src/commands/shane/connectedapp/uniquify.ts

sfdx shane:data:file:upload -f <filepath> [-c -p <id>] [-n <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

upload a file from local resources, optionally as a chatter post or attached file on a record

USAGE
  $ sfdx shane:data:file:upload -f <filepath> [-c -p <id>] [-n <string>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:data:id:query -o <string> -w <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

query some object and get back the id of the matching record

USAGE
  $ sfdx shane:data:id:query -o <string> -w <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:data:id:query -o User -u platformers -w "Firstname = 'Shane' and Lastname = 'McLaughlin' and username = 
  'shane@platformers.org'"'
       // returns the id of the user. Use these ids between `` in other commands

See code: src/commands/shane/data/id/query.ts

sfdx shane:data:tree:import -p <filepath> -d <directory> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

similr to the original tree:import, but handles more than 200 records at a go, while still preserving relationships. Takes longer.

USAGE
  $ sfdx shane:data:tree:import -p <filepath> -d <directory> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

OPTIONS
  -d, --filesfolder=filesfolder                   (required) folder that the plan lives in
  -p, --plan=plan                                 (required) location of plan 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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:data:tree:import -p data/myPlan.json -d data/  // run all the data in the plan, and files mentioned are 
  relative to ./data

See code: src/commands/shane/data/tree/import.ts

sfdx shane:github:package:install -g <string> -r <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

installs a package from github using the sfdx-project.json file (v43+) OR the latestVersion.json file convention

USAGE
  $ sfdx shane:github:package:install -g <string> -r <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:github:src:install -g <string> -r <string> [-p <directory>] [-k] [-c] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

installs a package from github from mdapi src

USAGE
  $ sfdx shane:github:src:install -g <string> -r <string> [-p <directory>] [-k] [-c] [-u <string>] [--apiversion 
  <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -c, --convert                                   the path folder is sfdx format, not mdapi, and should be converted
                                                  first

  -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)  [default: warn] 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

sfdx shane:group:photo [-g <string>] [-f <filepath> | -b <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Set the photo for a user by first/last name

USAGE
  $ sfdx shane:group:photo [-g <string>] [-f <filepath> | -b <filepath>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:heroku:connect -a <string> -f <filepath> [-e <string>] [-p <string>] [-b] [-i] [-u <string>] [--apiversion <string>] [--verbose] [--json] [--loglevel trace|debug|info|warn|error|fatal]

set up heroku connect on an existing app to an existing org (that you may have just created)

USAGE
  $ sfdx shane:heroku:connect -a <string> -f <filepath> [-e <string>] [-p <string>] [-b] [-i] [-u <string>] 
  [--apiversion <string>] [--verbose] [--json] [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -a, --app=app                                   (required) name of the heroku app
  -b, --showbrowser                               show the browser...useful for local debugging
  -e, --environment=sandbox|production|custom     [default: custom] environment of the salesforce org
  -f, --configfile=configfile                     (required) path to the json file exported from Heroku Connect

  -i, --instance                                  salesforce instance for making login easier.  Will be read from
                                                  org:display if exists...this is the override

  -p, --password=password                         pass in a password to override the one associated with your org in
                                                  sfdx, or if you don't have one set properly (like you used
                                                  `shane:user:password:set` instead of `force:user:password:generate

  -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)  [default: warn] logging level for this command invocation

  --verbose                                       emit additional command output to stdout

EXAMPLES
  sfdx shane:heroku:connect -a prosaic-samurai-4564 -f assets/myConfig.json
  // auth the heroku app to the current default org, assuming password is available from force:org:display, then import 
  the json config file

  sfdx shane:heroku:connect -a prosaic-samurai-4564 -f assets/myConfig.json -p p455w0rd -u myother@scratch.org
  // same, but not the default org, with a specified password

See code: src/commands/shane/heroku/connect.ts

sfdx shane:heroku:repo:deploy -g <string> -r <string> [-n <string>] [-o <array>] [--envuser <string>] [--envpassword <string>] [-t <string>] [-d <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

deploy a heroku app that has a valid app.json.

USAGE
  $ sfdx shane:heroku:repo:deploy -g <string> -r <string> [-n <string>] [-o <array>] [--envuser <string>] [--envpassword 
  <string>] [-t <string>] [-d <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:heroku:repo:deploy -g someUser -r someRepo
  // deploys code from https://github.com/someUser/someRepo that has a valid app.json

See code: src/commands/shane/heroku/repo/deploy.ts

sfdx shane:iot:activation -n <string> [-r] [-d] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Activate an iot orchestration by name

USAGE
  $ sfdx shane:iot:activation -n <string> [-r] [-d] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:label:add -t <string> [--bundle <string>] [-n <string>] [-d <string>] [--protected] [--categories <array>] [-l <string>] [-t <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create a remote site setting in the local source. Push it when you're done

USAGE
  $ sfdx shane:label:add -t <string> [--bundle <string>] [-n <string>] [-d <string>] [--protected] [--categories 
  <array>] [-l <string>] [-t <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:describe [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

what's in the org?

USAGE
  $ sfdx shane:mdapi:describe [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:list -t <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

what's in the org?

USAGE
  $ sfdx shane:mdapi:list -t <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:package:get -p <string> [-t <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

gets package from an org, converts, and merges it into the local source

USAGE
  $ sfdx shane:mdapi:package:get -p <string> [-t <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:package:xml -p <filepath> [-t <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 -p <filepath> [-t <directory>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:pull [-c | --all] [-p | undefined] [--wave | undefined] [-s | undefined | -o <string>] [-i | undefined] [--reporting | undefined] [-t <string> | undefined] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

gets unpackaged metadata for you

USAGE
  $ sfdx shane:mdapi:pull [-c | --all] [-p | undefined] [--wave | undefined] [-s | undefined | -o <string>] [-i | 
  undefined] [--reporting | undefined] [-t <string> | undefined] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:mdapi:push [-d <directory>] [-k] [-r <directory>] [-w <integer>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

convert and deploy the packaged source

USAGE
  $ sfdx shane:mdapi:push [-d <directory>] [-k] [-r <directory>] [-w <integer>] [-u <string>] [--apiversion <string>] 
  [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:create [-t <string>] [-l <string>] [-a <string>] [-p <string>] [--description <string>] [--enterprise] [--sharingmodel <string>] [--activities] [--search] [--reports] [--history] [--feeds] [--nametype <string>] [--namefieldlabel <string>] [--autonumberformat <string>] [-h] [-i] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create an object in local source. Only __c (limited support), __b (big objects) and events __e are currently supported

USAGE
  $ sfdx shane:object:create [-t <string>] [-l <string>] [-a <string>] [-p <string>] [--description <string>] 
  [--enterprise] [--sharingmodel <string>] [--activities] [--search] [--reports] [--history] [--feeds] [--nametype 
  <string>] [--namefieldlabel <string>] [--autonumberformat <string>] [-h] [-i] [-d <directory>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:fat -o <string> [-m <integer>] [-y <integer>] [--description <string>] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 -o <string> [-m <integer>] [-y <integer>] [--description <string>] [-d <directory>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)     [default: warn] 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

sfdx shane:object:field [-o <string>] [-n <string>] [-a <string>] [-t <string>] [--description <string>] [--default <string>] [-r] [-u] [--externalid] [--trackhistory] [--helptext <string>] [-l <integer>] [-s <integer>] [--precision <integer>] [--lookupobject <string>] [--relname <string>] [--indexposition <integer>] [--indexappend] [--indexdirection <string>] [--noindex] [-i] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create or add fields to an existing object

USAGE
  $ sfdx shane:object:field [-o <string>] [-n <string>] [-a <string>] [-t <string>] [--description <string>] [--default 
  <string>] [-r] [-u] [--externalid] [--trackhistory] [--helptext <string>] [-l <integer>] [-s <integer>] [--precision 
  <integer>] [--lookupobject <string>] [--relname <string>] [--indexposition <integer>] [--indexappend] 
  [--indexdirection <string>] [--noindex] [-i] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:fields:describe -o <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

what fields are on the object?

USAGE
  $ sfdx shane:object:fields:describe -o <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:perms:align [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

align profiles with

USAGE
  $ sfdx shane:object:perms:align [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:powerofone -o <string> [-l <string>] [-a <string>] [-d <string>] [-t <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

add a "power of one" formula field to any object

USAGE
  $ sfdx shane:object:powerofone -o <string> [-l <string>] [-a <string>] [-d <string>] [-t <directory>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:tab -o <string> -i <integer> [-t <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create a tab from a custom object, and you have to pick an

USAGE
  $ sfdx shane:object:tab -o <string> -i <integer> [-t <directory>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:object:unperm -o <string> [-d <directory>] [-s <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

remove references to an object from profiles/permsets (all or a specific one)

USAGE
  $ sfdx shane:object:unperm -o <string> [-d <directory>] [-s <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:org:componentlibrary [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

opens the lightning component library for the specified org

USAGE
  $ sfdx shane:org:componentlibrary [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:org:create --userprefix <string> -o <string> [-i <string>] [-f <filepath>] [-a <string>] [-d <integer>] [--wait <integer>] [-c] [-n] [-s] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create an org with a friendly username. wraps force:org:create

USAGE
  $ sfdx shane:org:create --userprefix <string> -o <string> [-i <string>] [-f <filepath>] [-a <string>] [-d <integer>] 
  [--wait <integer>] [-c] [-n] [-s] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 shane1@demo.org, shane2@demo.org

  -s, --setdefaultusername                        set the created org as the default username

  --json                                          format output as json

  --loglevel=(trace|debug|info|warn|error|fatal)  [default: warn] logging level for this command invocation

  --userprefix=userprefix                         (required) first part of the generated username.  Example: 'shane'
                                                  produces shane1@demo.org, shane2@demo.org

  --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

sfdx shane:org:delete [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

delete the default scratch org. Won't prompt you for confirmation

USAGE
  $ sfdx shane:org:delete [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

ALIASES
  $ sfdx shane:org:destroy

EXAMPLE
  sfdx shane:org:delete
  // deletes the current default scratch org

See code: src/commands/shane/org/delete.ts

sfdx shane:org:domain:verify [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Verifies that a domain was successfully setup with MyDomain

USAGE
  $ sfdx shane:org:domain:verify [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:org:domain:verify

See code: src/commands/shane/org/domain/verify.ts

sfdx shane:org:metadatacoverage [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

opens the metadata coverage report page

USAGE
  $ sfdx shane:org:metadatacoverage [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:org:reauth [-r] [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

reauthenticates (generates a new authinfo) for a scratch org, optionally insisting on custom domain being ready. Requires a hub

USAGE
  $ sfdx shane:org:reauth [-r] [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)   [default: warn] 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

sfdx shane:org:refreshtoken [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:package2:version:bump [-M | -m | -p] [-c] [-r] [-t <string>] [-v <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

bump the major/minor version number in the packageDirectory

USAGE
  $ sfdx shane:package2:version:bump [-M | -m | -p] [-c] [-r] [-t <string>] [-v <string>] [--apiversion <string>] 
  [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)   [default: warn] 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

sfdx shane:permset:check -o <string> [-f <string>] [--users | --permsets | --profiles] [--fieldlevel <string>] [--objectlevel <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

who has access to what

USAGE
  $ sfdx shane:permset:check -o <string> [-f <string>] [--users | --permsets | --profiles] [--fieldlevel <string>] 
  [--objectlevel <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)           [default: warn] 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

sfdx shane:permset:create -n <string> [-f <string> -o <string>] [-d <directory>] [-t] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create or add stuff to a permset with maximum access

USAGE
  $ sfdx shane:permset:create -n <string> [-f <string> -o <string>] [-d <directory>] [-t] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:profile:convert -n <string> -p <string> [-d <directory>] [-e | -c] [--json] [--loglevel trace|debug|info|warn|error|fatal]

convert a profile into a permset

USAGE
  $ sfdx shane:profile:convert -n <string> -p <string> [-d <directory>] [-e | -c] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:profile:whitelist -n <string> [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

whitelist the whole internet for a profile (no ip verification or 2FA/OTP challenges in dev)

USAGE
  $ sfdx shane:profile:whitelist -n <string> [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:project:create -n <string> -g <string> [-v <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

creates an sfdx project

USAGE
  $ sfdx shane:project:create -n <string> -g <string> [-v <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)   [default: warn] 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

sfdx shane:remotesite:create -u <url> -n <string> [-d <string>] [-t <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create a remote site setting in the local source. Push it when you're done

USAGE
  $ sfdx shane:remotesite:create -u <url> -n <string> [-d <string>] [-t <directory>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:static:create -n <string> -y <string> [-d <string>] [-t <directory>] [-p] [--json] [--loglevel trace|debug|info|warn|error|fatal]

create a static resource locally

USAGE
  $ sfdx shane:static:create -n <string> -y <string> [-d <string>] [-t <directory>] [-p] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:theme:activate -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 -n <string> [-b] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

See code: src/commands/shane/theme/activate.ts

sfdx shane:tsp:username:update [-n <email>] [-d <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

change the username on all transaction security policies

USAGE
  $ sfdx shane:tsp:username:update [-n <email>] [-d <directory>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLES
  sfdx shane:tsp:username:update -n newusername@example.com
  // 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

sfdx shane:uiapi:objectinfo [-o <string>] [--outputfile <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 [-o <string>] [--outputfile <filepath>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:uiapi:record -r <string> -f <array> [--optionalfields <array>] [--outputfile <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 -r <string> -f <array> [--optionalfields <array>] [--outputfile <filepath>] [-u <string>] 
  [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:uiapi:recordui [-r <string> | --recordids <array>] [-l <array>] [-m <array>] [--outputfile <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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 [-r <string> | --recordids <array>] [-l <array>] [-m <array>] [--outputfile <filepath>] 
  [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:user:allPhotos [-r <url>] [-f <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

set the chatter photos of anyone who has not set theirs already to encourage them to do so

USAGE
  $ sfdx shane:user:allPhotos [-r <url>] [-f <directory>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:user:allphotos -u someAlias

See code: src/commands/shane/user/allPhotos.ts

sfdx shane:user:lightning:debug [-g <string>] [-l <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

set the user to debug mode

USAGE
  $ sfdx shane:user:lightning:debug [-g <string>] [-l <string>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:user:loginurl [-p <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

generate a long-lived shareable login url for the org

USAGE
  $ sfdx shane:user:loginurl [-p <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel 
  trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:user:password:set -g <string> -l <string> -p <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Set the password for a user by first/last name

USAGE
  $ sfdx shane:user:password:set -g <string> -l <string> -p <string> [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:user:permset:assign -l <string> -n <string> [-g <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Assign a permset to a user by first/last name

USAGE
  $ sfdx shane:user:permset:assign -l <string> -n <string> [-g <string>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -g, --firstname=firstname                       first (given) name of the user--keeping -f for file for consistency
  -l, --lastname=lastname                         (required) last name of the user
  -n, --name=name                                 (required) the value of the permset name or label field
  -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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:user:permset:assign -n thePermSet -g User -l User

See code: src/commands/shane/user/permset/assign.ts

sfdx shane:user:photo -l <string> [-g <string>] [-f <filepath> | -b <filepath>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Set the photo for a user by first/last name

USAGE
  $ sfdx shane:user:photo -l <string> [-g <string>] [-f <filepath> | -b <filepath>] [-u <string>] [--apiversion 
  <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

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)  [default: warn] 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

sfdx shane:user:psl -l <string> -n <filepath> [-g <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]

Assign a permset license already in an org for a user

USAGE
  $ sfdx shane:user:psl -l <string> -n <filepath> [-g <string>] [-u <string>] [--apiversion <string>] [--json] 
  [--loglevel trace|debug|info|warn|error|fatal]

OPTIONS
  -g, --firstname=firstname                       first (given) name of the user--keeping -f for file for consistency
  -l, --lastname=lastname                         (required) last name of the user
  -n, --name=name                                 (required) developer name or label of the PermSetLicense
  -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)  [default: warn] logging level for this command invocation

EXAMPLE
  sfdx shane:user:psl -n SomePSL -g User -l User
  // assign the PSL named 'somePSL' for the user named User User

See code: src/commands/shane/user/psl.ts