@mavens/sfdx-commands
v1.3.0
Published
Miscellaneous collection of handy SFDX commands, brought to you by Mavens (っ▀¯▀)つ
Downloads
48
Readme
Getting Started
$ sfdx plugins:install @mavens/sfdx-commands
Usage
mavens:ci:lcov
Generating an lcov.info
file based on sfdx test results, consumeable by tools like Coveralls.
$ sfdx mavens:ci:lcov --rootdir="." --targetusername [email protected]
Generating the lcov.info file... done
Here's a sample .travis.yaml
configuration file, when used alongside Travis CI:
node_js: "7"
before_script:
# [insert here sfdx installation & login]
- npm install coveralls -g
- echo y | sfdx plugins:install @mavens/sfdx-commands
script:
- sfdx force:org:create --setdefaultusername --definitionfile scratchdef.json --setalias ci
- sfdx force:source:push
- mkdir coverage
- sfdx force:apex:test:run --codecoverage --testlevel=RunLocalTests --resultformat=json --outputdir=coverage
- sfdx mavens:ci:lcov
- sfdx force:org:delete --noprompt
- cat ./coverage/lcov.info | coveralls
mavens:ci:replace
Used to find and replace files within a directory and sub directories, using pre-defined environment variables.
These can be exported from your resource file, a .env
file (refer to dotenv documentation), via your CI configuration...
$ sfdx mavens:ci:replace --rootdir=packages --targetusername [email protected]
1 files updated... done
You must have a .mavens.yaml
configuration file, with the replace
key defined:
replace:
- VAULT_ENDPOINT
- VAULT_USERNANE
- VAULT_PASSWORD
Any metadata containing (such as this sample packages/force-app/main/default/namedCredentials/Vault_MVN.namedCredential-meta.xml
) containing ${VAULT_ENDPOINT}
:
<?xml version="1.0" encoding="UTF-8"?>
<NamedCredential xmlns="http://soap.sforce.com/2006/04/metadata">
<allowMergeFieldsInBody>true</allowMergeFieldsInBody>
<allowMergeFieldsInHeader>true</allowMergeFieldsInHeader>
<endpoint>${VAULT_ENDPOINT}</endpoint>
<generateAuthorizationHeader>false</generateAuthorizationHeader>
<label>Vault</label>
<principalType>NamedUser</principalType>
<protocol>Password</protocol>
<username>${VAULT_USERNANE}</username>
<password>${VAULT_PASSWORD}</password>
</NamedCredential>
Will be replaced to look like the following:
<?xml version="1.0" encoding="UTF-8"?>
<NamedCredential xmlns="http://soap.sforce.com/2006/04/metadata">
<allowMergeFieldsInBody>true</allowMergeFieldsInBody>
<allowMergeFieldsInHeader>true</allowMergeFieldsInHeader>
<endpoint>https://sb-customer-medcomms.veevavault.com</endpoint>
<generateAuthorizationHeader>false</generateAuthorizationHeader>
<label>Vault</label>
<principalType>NamedUser</principalType>
<protocol>Password</protocol>
<username>[email protected]</username>
<password>[placeholder]</password>
</NamedCredential>
mavens:manifest:generate
$ sfdx mavens:manifest:generate --targetusername [email protected]
Describing metadata types... 103 types retrieved.
Listing metadata members... done
Metadata Type | Count
─────────────────────────── | ─────
ActionLinkGroupTemplate | 0
AnalyticSnapshot | 0
AnimationRule | 0
ApexClass | 1076
...
TopicsForObjects | 338
Translations | 30
Workflow | 32
Generating package.xml... done
mavens:schema:dictionaries
Generates field dictionaries from Salesforce objects, using the Metadata API.
$ sfdx mavens:schema:dictionaries --outputdir=packages --targetusername [email protected]
=== Retrieving Salesforce Object fields from Metadata API
Querying objects from 4/4... done
=== Salesforce Object Fields Retrieved
OBJECT FIELD COUNT
──────────────────────────────── ───────────
Account 66
Case 125
Congres_MVN__c 10
PersonAccount 0
User 10
=== Salesforce Object Fields Retrieved
Generating Field Dictionaries... 4 files written.
You must have a .mavens.yaml
configuration file, with the schema.dictionaries.sobjects
key defined:
schema:
dictionaries:
sobjects:
- Account
- Case
- Congress_MVN__c
- PersonAccount
- User
file_format: split # options: split | unique (default: split)
CSV files will be created in your --outputdir
.
dictionaries
├── Account.csv
├── Case.csv
├── Congress_MVN__c.csv
├── PersonAccount.csv
└── User.md
.mavens.yaml
Here's an example Account.csv
:
| Label | Field API Name | Data Type | Picklist Values | Required | Description |
| ----------- | -------------------- | --------- | :----------------------------------------------------------------------------------------------------------------------: | :------: | ------------------------------------------------------------------------------------------------------------------- |
| Company | MED_Company__c
| Picklist | Servier | false | The company associated with the Employee Account. |
| Country | MED_Country__c
| Picklist | GlobalValueSet (MED_Country) | false | The primary country for the account. |
| Credentials | MED_Credentials__c
| Picklist | DOMDPharmDRNNPPHARHBPPAPHTPHARMPVNSWMANAMD-SPSYODPHD | false | Picklist of the professional's (Person Account) credentials. Edit the picklist to change the available credentials. |
| ... | ... | ... | ... | ... | ... |
mavens:typings:generate
$ sfdx mavens:typings:generate --targetusername [email protected] --outputdir=.typescript
Querying Custom Labels... done
Writing 641 labels to .typescript/salesforce/customlabels.d.ts... done
Querying Custom Permissions... done
Writing 10 custom permissions to .typescript/salesforce/custom-permissions.d.ts... done