Quick -- I need a blank scratch org
11 May 2023
Whew! As I prepare to talk about subflows (sign up now!), I’m working my way through old usernames and passwords to Salesforce dev orgs and realizing they’ve mostly expired, now that I no longer work the old job to which all the reminder emails were being sent.
I don’t want to clutter up the one I found that still works, so instead of playing around with configuration inside of it, I’d like to use it merely as a “hub” from which to spin up a “scratch org” that will live for 7 days (perfect – I only have 6 to get the presentation ready!).
I can’t remember a darned thing about what to do, so I figured I might as well live-blog the process of retracing my steps.
Make sure the dev org is a dev hub
I went to https://login.salesforce.com/ and got myself signed into the dev org.
Then I opened up Setup, searched for Dev Hub, and made sure it was enabled (it was).
I also took note of the server that my dev org was associated with: “examplecom-d9-dev-ed
.”
Double-check my CLI tool installation status
I double-checked whether I have the SFDX and CumulusCI CLI tools installed with the following 2 commands:
cci --version
sfdx --version
Interestingly, I didn’t have the SFDX CLI tool installed. It must be that the only project I’d ever worked on from this computer is downloading copies of object and field configuration out of long-lived orgs, which doesn’t involve scratch orgs at all and therefore only needs the CumulusCI CLI tool, not the SFDX CLI tool. So I installed it and now sfdx --version
works.
Log the SFDX CLI into my dev org
I already noted that my dev org was associated with the Salesforce server “examplecom-d9-dev-ed
.”
I think I’ll “alias” the dev org “my-last-remaining-dev-org
” in my SFDX CLI context.
That means running this command to log my computer’s copy of the SFDX CLI tool into my dev org and nickname the logged-in state “my-last-remaining-dev-org
”:
sfdx force:auth:web:login --setalias my-last-remaining-dev-org --instanceurl https://examplecom-d9-dev-ed.my.salesforce.com/
This command confirms I logged SFDX in correctly:
sfdx auth:list
Create a new folder on my computer
When it’s been a while, I always think I need to create a new empty C:\example\
folder on my computer from scratch and Git-track it and hand-add various files to it, but no, that’s not correct.
The better way to do things is to create a new C:\example\
folder on my computer with a copy of my Salesforce CumulusCI project minimum viable build in it, update the sourceApiVersion
in C:\example\sfdx-project.json
to 57.0
, update the project.name
to “subflow-202305
and project.package.name
” to “Subflow 2023-05 presentation
” in C:\example\cumulusci.yml
, and replace “CumulusCI Minimum Viable Build to make a scratch org
” with “Subflow 2023-05 presentation
” in each of the 4 .json
files under C:\example\orgs
.
OK, done.
Tell my folder what dev org to use as a dev hub
Per my CumulusCI Minimum Viable Build article, I created a new file (and “.sfdx
” subfolder of C:\example\
to hold it) at C:\example\.sfdx\sfdx-config.json
and put the following content into it:
{
"defaultdevhubusername": "my-last-remaining-dev-org"
}
Now whenever I run any CumulusCI CLI commands I run out of a C:\example\
context that have to do with creating or deleting scratch orgs, the CCI CLI tool will authenticate into my dev org as a “dev hub” for doing so.
Create a scratch org
OK, now I can create a 7-day-lifespan org nicknamed “dev
” within the C:\example\
context using the following command:
cci flow run dev_org --org dev
And I can log my web browser into that scratch org and start configuring things with the following command:
cci org browser --org dev --url-only
Do everything else
And so on and so forth – other handy commands for synchronizing what I do in the web browser back and forth with C:\example
are in myCumulusCI Minimum Viable Build article.
Links
Since it seems I end up Googling myself every time I forget how to use SFDX, CCI, or scratch orgs…
- CumulusCI Minimum Viable Build and its sample codebase on GitHub
- Random handy CumulusCI notes
- How I set up VSCode for a new Salesforce project and its 2019 predecessor, Setting up VSCode to edit Salesforce metadata
- Download your org schema with CumulusCI (which doesn’t need the SFDX CLI tool at all) and its sample codebase on GitHub