Snowfakery Recipe Templates repository showcases all contributed Snowfakery recipes by volunteers from numerous SFDC Community Sprints. All the recipes are under the BSD 3-Clause License and are maintained by Data Gen Toolkit team.
- You can use Snowfakery to seed synthetic data into a sandbox or a scratch org.
- You can generate synthetic data for standard objects, custom objects and custom objects for managed packages.
- You can generate synthetic data and output as SQL or CSV file or load directly to a target Salesforce org using CCI.
- Snowfakery also supports seeding files as ContentVersions using standard plugins.
- You can query existing Salesforce data and relate to snowfakery recipe.
- The usage of Snowfakery is not limited to NPSP nor EDA; however, Data Gen Toolkit team develops resources to advocate nonprofits and education community.
Most people who participate in this project have access to VS Code.
This project is not installable.
We have orgs ready for you to use during a sprint. You can request access in Slack in the snowfakery-recipe-makers channel.
We keep track of next steps in GitHub in the Issues tab
The items checked below are needed to actively contribute to the project. Find more details about these tools
- GitHub
- Metecho
- CumulusCI
- Google Drive (not needed, but we do have a folder. Ask for access in Slack in the snowfakery-recipe-makers channel.)
Multiple steps are required to set up a development-ready environment in your local machine. After completing the initial setup, the snowfakery recipes in the repository can be utilized for loading data to a scratch org.
- Install Visual Studio Code
- Install SFDX extension for VSC
- Install Git
- Install CumulusCI
- (optional) CumulusCI extension for VSC
Salesforce Environment
- Setup DevHub
CumulusCI
- Clone this repository into your local directory
$ git clone https://github.com/SFDO-Community-Sprints/Snowfakery-Recipe-Templates.git
- Set up CumulusCI : this repository includes a project initialization in cumulusci.yml file. You can skip the project initialization
cci project init
If you want to use a scratch org to play with Snowfakery recipes in this repository, you may want to install NPSP, EDA, Outbound Funds (OBF), or Program Management Module (PMM) as well.
- For EDA recipes, run
cci org scratch eda eda --default
to create a new scratch org and set it as a default- Install EDA Run
cci flow run eda_scratch --org eda
- Optional for EDA orgs: Install Advisor Link Run
cci flow run sal_eda_scratch --org eda
- Optional for EDA orgs: Install Advisor Link Run
- Install EDA Run
- For NPSP, OBF, or PMM recipes, run
cci org scratch dev dev --default
to create a new scratch org and set it as a default- Install NPSP Run
cci flow run npsp:install_prod --org dev
- Install OBF Run
cci flow run obf_scratch --org dev
- Optional for OBF orgs: Install NPSP Run
cci flow run obf_npsp_scratch --org dev
- Optional for OBF orgs: Install NPSP Run
- Install PMM Run
cci flow run pmm_scratch --org dev
- Optional for PMM orgs: Install NPSP Run
cci flow run npsp_scratch --org dev
- Optional for PMM orgs: Install NPSP Run
- Install NPSP Run
- For Nonprofit Cloud scratch orgs run
cci org scratch npc npc --default; cci org browser
to create a new scratch org and set it as a default. No further packages are required. - For Education Cloud recipes, run
cci org scratch edc edc --default; cci org browser
to create a new scratch org, set it as default, and open it. No further installs are required, but education cloud may require additional setup.
There are several open issues suggesting new recipes we need and fixes to existing recipes. We also welcome contributions of new recipes we haven't though of yet.
- Please test your contribution carefully.
- Follow the project naming conventions when adding your file(s).
- Create a pull request that explains what recipe you are adding/changing, and include any special testing instructions we should know about.
Most of our work in this repo is around creating recipes for use directly within Salesforce, so the final work should make sense within a Salesforce context. That said, Snowfakery has its own CLI that can output a file of data instead of adding it to Salesforce.
# To view the list of options for running a snowfakery recipe file
# https://snowfakery.readthedocs.io/en/docs/#command-line-interface
$ snowfakery --help
- Output as a comma-separated csv file.
# snowfakery
# --output-format [png|svg|svgz|jpeg|jpg|ps|dot|json|txt|csv|sql]
# --output-file <fileName.extension>
# <Relative path to a recipe yml file>
$ snowfakery --output-format json --output-file src/foo.json snowfakery_samples/npsp/RD_npsp.recipe.yml
- Snowfakery Cheatsheet (link coming soon)
- Project Meeting Notes.
- Snowfakery
- Fellow Developers, What Should Our Last Name Be?
- Data Management with CumulusCI Trailhead
- Data Generation Toolkit project on Power of Us Hub
- Smart Sandbox: their website is still up but no longer active
- Faker Documentation
- NPSP Data Dictionary
- Wave Data Generator (generates data for Salesforce org, and builds linkages between objects)
- JSON/YAML Editor