Although gaps in the Metadata API are being filled very quickly recently, still not all Configuration in the Setup Menu is available as Metadata.
This sfdx plugin uses Browser Automation to toggle Features and apply Configuration as a last resort for automation.
Examples: "Enabling critical updates", "Setting up Customer Portal" or "Activating Standard LEX Themes"
For certain Metadata Types there is a different behaviour of the file-based vs. CRUD-based Metadata API.
This sfdx plugin provides the sfdx force:source:read
command to read Metadata using the "CRUD-based" Metadata API similar to sfdx force:source:retrieve
(which uses the "file-based" Metadata API).
Example: Reading full Profiles where the file-based Metadata API only returns a fraction.
In times before Salesforce DX this CLI provided many useful commands to deal with Metadata. The top two features are:
Note: force-dev-tool has been deprecated in July 2018 in favor of Salesforce DX.
With Salesforce DX and the growing number of sfdx plugins, the stack is set to Node.js and npm/yarn.
This package makes it easy for you to install and use the famous PMD (static code analyzer; written in Java) in your projects using npm/yarn.
Whether you want to do a "full" Metadata Backup, start going Git-based, or simply explore the Metadata components in your org, this is the right plugin for you.
This plugin is similar to the sf project generate manifest --from-org
command but has more options to filter the components and more output formats.
After retrieving or before deploying Metadata, you'll sometimes need to remove or replace org-specific values.
Unlike other tools, metadata-xml-tool understands basic XML and preserves the indentation and line-endings.
When executing Anonymous Apex using sfdx force:apex:execute
the logs contain a lot of debug information.
If you want to show only the output coming from System.debug()
this is the tool to use.
Unlike a simple grep '|USER_DEBUG|'
this tools supports multi-line messages.
Looking for an sf/sfdx plugin to do get your job done?
This website offers a searchable list of sf plugins and their commands. In contrast to the lovingly maintained https://github.com/mshanemc/awesome-sfdx-plugins list, this website is fed by raw data from the NPM registry and the GitHub API.
This plugin installs a hook exposing certain useful org-specific data to the Metadata String Replacements feature of the sf
CLI. This is especially useful for deployments to Scratch Orgs.
Examples:
This is a simple but very convenient plugin for dealing with Sfdx Auth Urls in the form of two easy to remember commands: auth-url:import
and auth-url:export
.
It takes the pain of having to read/write the credential from/to a file. Use it to keep your CI setup scripts simple and share credentials to scratch orgs with your colleagues ad-hoc.
An inofficial collection of Minimum Working Examples (MWE) and Minumum Reproduction Examples (MRE) to demonstrate bugs and problems with the Salesforce Metadata API (MDAPI).
What do Admins and Developers have in common? They change Metadata all day long! Either you have already seen those XML files or you just heard about it: Salesforce Metadata is the secret sauce which makes customising the Salesforce platform so powerful - and sometimes so complicated.
Join us on a journey to better understand what Salesforce Metadata is and how you could utilise it for faster Salesforce customisation. Get insights, inspiration and surprises from two Metadata addicts to be more efficient in your day by day Salesforce business.
Recording available on YouTube.
Co-Speaker: Christian Menzinger
Matthias Rolke and Christian Menzinger having a code based conversation on how the CLI and JavaScript can help with Metadata challenges.
Live Coding a CLI using Node.js and the official @salesforce/core library to retrieve the full content of a Profile (Source Code available here).
Tired of manually clicking through pre- or post-deployment tasks? Need to activate that Critical Update in hundreds of orgs?
Prevent Carpal Tunnel Syndrome by using the open source sfdx-browserforce-plugin.
This talk highlights why browser automation can be crucial in a Software Development Lifecycle with Salesforce.
"Revisiting our Software Development Lifecycle (SDLC): from CD (chaotic disorder) to CI (continuous integration) in 12 weeks."
This talk highlights the necessity for transitioning to Salesforce DX both from a technical and project management perspective.
Co-Speaker: Harald Mayer (IPfolio)
This talk highlights five major challenges in the Salesforce Software Development Lifecycle and presents an opinionated workflow using force-dev-tool.
After using Hutte for my clients since 2019, I'm now part of the team as an advisor with the mission to make Salesforce DX accessible to anyone.
Together with a team of a PDO (Product Development Outsourcer), I've developed a custom-tailored solution for an ISV to provision orgs with different combinations of Packages, Metadata and Data.
Transition a Customer Org to Salesforce DX with 2nd Generation (Org-Dependent Unlocked) Packages.
Challenges:
Solution:
Rollout Lightning Experience in bulk for an OEM ISV with a large customer base.
Challenge: manual steps not feasible
Solution: develop an sfdx plugin leveraging different APIs
Transition a 1st generation Salesforce Certified Managed Package to Salesforce DX.
Set up Version Control and a CI/CD pipeline with Travis CI.
Challenge: gaps in Metadata preventing development and testing in scratch orgs
Solution: develop an sfdx plugin (sfdx-browserforce-plugin) to enable and set up required features using browser automation
Develop an sfdx plugin to automate OEM ISV specific release tasks.
Challenge: issues in the CRUD- and file-based Metadata API as well as the Tooling API
Solution: develop an sfdx plugin leveraging different APIs
On-demand support for a development team with challenging Salesforce DevOps topics.
Challenges:
Solution: provide consultation services and implement solutions remotely and on-demand
Consulting and development for a Salesforce Tooling Vendor regarding org-based Metadata retrieval and deployment.
Challenges:
Transition an internal 1st generation Salesforce Managed Package to Salesforce DX to be used in a Multi-Org setup.
Set up Version Control and a CI/CD pipeline with Bitbucket Pipelines.
On-site consulting and training for a Salesforce customer to set up an org-based CI/CD pipeline with Jenkins.
Set up a Cron Job on Jenkins to dynamically retrieve all Metadata to Version Control.
Challenge: large org with many dependencies and long-running tests
Develop and operate an internal tool for procesing long-running operations (e.g. Metadata retrieval, Unit Test Execution) against Salesforce orgs.
Challenge: large number of jobs
Solution: queue-based scheduling to ensure scalability
Manage and operate Metadata Deployments in a large Salesforce project.
Challenge: integrating multiple streams of development with passive version control
Temporarily analyse and resolve deployment issues in an org-based CI/CD pipeline which was never run successfully before.
Challenge: lots of different issues after a long period of development without active version control
Solution: battle through issues documenting each error and workaround
DevOps Consulting for a Salesforce App Vendor (ISV).
Challenge: early days of Salesforce DX with lots of issues
Design and implement a Pragmatic org-based Development Lifecycle for a Salesforce Implementation Partner.
Challenge: declarative and cloud-based development/administration
Solution: implement passive version control
Analyze and improve an org-based CI/CD pipeline.
Challenge: improve overall build and release performance
Solution: switch from full to incremental deployments based on Git