Narcoleptic Programmers' Medicine

    sfdx-hydrate

    0.5.0 • Public • Published

    sfdx-hydrate

    This is a plugin to help create new SFDX projects from existing Salesforce orgs. The ultimate goal is to run an sfdx hydrate:project command, and produce an SFDX project from an existing orgs metadata.

    Creating a scratch file from a source org

    The first feature built towards this goal is creating a scratch file. Salesforce is piloting an org shape feature, but I'm impatient and could get 90% of the way there without it.

    The only missing piece from the resulting scratch org is the features list. I'm working on it.

    Run the command:

    $ sfdx hydrate:scratchfile -u {username|alias} > project-scratch-def.json
    

    This will produce a scratch definition and pipe it into the project-scratch-def.json file.

    Creating a complete package.xml from a source org

    When migrating to an SFDX project, I find starting with a complete package.xml, and then trimming undesirable metadata elements until I have a working project is a good approach.

    This addition to the hydrate tool will generate that complete package.xml.

    Run the command:

    $ sfdx hydrate:packagexml -u {username|alias} > package.xml
    

    This will produce an XML string, and pipe it directly into the file called package.xml.

    Optional Parameters

    Parameter Description
    -a, --api Set the API version of the packagexml file (Default is 42.0)
    -c, --config Configuration file to help make pulling metadata more scriptable
    -f, --formatxml Formats the xml output in an easier to read format
    -q, --quickfilter CSV list of metadata types to filter

    Non-config file example

    $ sfdx hydrate:packagexml -u {username|alias} -f -a 40.0 -q Report,Dashboard > package.xml
    

    An example config file is defined below. The "quickfilter" array lets you specify a list of metadata types that will be included in the output. You can have the xml output formatted by setting the "formatxml" to true.

    Note: commandline parameters will override what is in the config file

        //config.json
        {
            "quickfilter": ["Report",
                "Dashboard",
                "ReportType"
            ],
            "formatxml":"true",
            "apiVersion":"40.0"
        }
     
    $ sfdx hydrate:packagexml -u {username|alias} -c ./config.json > package.xml
    

    Install as plugin

    1. Install plugin: sfdx plugins:install sfdx-hydrate

    Install from source

    1. Install the SDFX CLI.

    2. Clone the repository: git clone git@github.com:loganm/sfdx-hydrate.git

    3. Install npm modules: npm install

    4. Link the plugin: sfdx plugins:link .

    Contributing

    Bug reports and pull requests are welcome on GitHub at https://github.com/loganm/sfdx-hydrate. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

    Install

    npm i sfdx-hydrate

    DownloadsWeekly Downloads

    4

    Version

    0.5.0

    License

    MIT

    Unpacked Size

    195 kB

    Total Files

    8

    Last publish

    Collaborators

    • loganm