metadata-xml-tool
CLI tool for processing Salesforce Metadata XML files
Installation
$ npm install -g metadata-xml-tool
Usage
metadata-xml-tool. Usage: metadata-xml-tool [options] <command> Commands: remove-element <element> [file]... remove-element-matching <element> <expression> [file]... replace-tag-value <tag> <expression> <new_value> [file]... Options: -h --help Show help
Examples
$ metadata-xml-tool remove-element validationRules src/objects/Account.object
<searchResultsAdditionalFields>CORE.USERS.ALIAS</searchResultsAdditionalFields> </searchLayouts> <sharingModel>ReadWrite</sharingModel>- <validationRules>- <fullName>VAT_Number_10</fullName>- <active>true</active>- <errorConditionFormula>LEN(VAT_Number__c) < 10</errorConditionFormula>- <errorDisplayField>VAT_Number__c</errorDisplayField>- <errorMessage>VAT Number must be 10 characters</errorMessage>- </validationRules>- <validationRules>- <fullName>Test_Min_5_Max_10</fullName>- <active>true</active>- <errorConditionFormula>OR(- LEN(Test__c) < 5,- LEN(Test__c) > 10- )</errorConditionFormula>- <errorDisplayField>Test__c</errorDisplayField>- <errorMessage>Test__c should be between 5 and 10 characters long</errorMessage>- </validationRules> <webLinks> <fullName>AltavistaNews</fullName> <availability>online</availability>
$ metadata-xml-tool remove-element-matching listViews "<fullName>Ideas_Last_7_Days</fullName>" src/objects/Idea.object
</picklist> <type>Picklist</type> </fields>- <listViews>- <fullName>Ideas_Last_7_Days</fullName>- <columns>IDEA.CREATED_DATE</columns>- <columns>IDEA.TITLE</columns>- <columns>IDEA.CREATED_BY_NICKNAME</columns>- <columns>VOTE_STATS.WEIGHTED_SUM</columns>- <columns>IDEA.NUM_COMMENTS</columns>- <columns>IDEA.STATUS</columns>- <columns>IDEA.CATEGORIES</columns>- <columns>COMMUNITY.NAME</columns>- <columns>IDEA.IDEA_THEME</columns>- <filterScope>Everything</filterScope>- <filters>- <field>IDEA.CREATED_DATE</field>- <operation>equals</operation>- <value>LAST_N_DAYS:7</value>- </filters>- <label>Last 7 Days</label>- </listViews> <recordTypes> <fullName>InternalIdeasIdeaRecordType</fullName> <active>true</active>
$ metadata-xml-tool remove-element-matching userPermissions "<name>ManageEncryptionKeys</name>" src/profiles/Admin.profile
<enabled>true</enabled> <name>ViewSetup</name> </userPermissions>- <userPermissions>- <enabled>true</enabled>- <name>ManageEncryptionKeys</name>- </userPermissions> </Profile>
$ metadata-xml-tool replace-tag-value runningUser ".*" "user@example.com" src/dashboards/CompanyDashboards/AdoptionDashboard.dashboard
<useReportChart>false</useReportChart> </components> </rightSection>- <runningUser>admin@universal.containers</runningUser>+ <runningUser>user@example.com</runningUser> <textColor>#000000</textColor> <title>Adoption Dashboard</title> <titleColor>#000099</titleColor>
Sponsors
License
MIT © Matthias Rolke