The hotglue CLI derives its configuration from two places: the Profile config and the Project config.

Profile config

The Profile config is stored in a config.yaml file located at $HOME/.hotglue/. At the moment, it is only used to store your apikey.

Project config

The Project config is stored in a hotglue rc-like file and can be created anywhere in your project’s folder structure. A Project settings file can hold any of the CLI’s parameters (including overriding the apikey, although this is not recommended) and is used to define configuration values specific for that context.

The configuration files can use any of the following names: hotglue.yaml.hotglue.yaml.hotgluerc.yaml.hotgluerc.yml.hotgluerc.hotgluerc.json.hotgluerc.js

As the extensions suggest, the files support either yaml, json or js syntax (in case of JS, the config object has to be exported). However, we recommend using the yaml format.

Configure your environment

Set API Key

To start, you’ll need to get your Personal API Key from _Account > Login & Security > Personal API Key*, as shown below:

3068

Personal API Key

Once you have this, you can save the API Key to your Profile config

$ hotglue config set apikey <api key> Updating profile config file...Done

Project settings

Once you have this done, you can create your Project config. For this example, I’ll use the yaml syntax and a file named .hotgluerc. This config can include the following parameters:

OptionDescription
envSpecify your hotglue environment id (ie. dev.hotglue.acme.com)
flowSpecify your hotglue flow id (ie. MDKdfumqM)
tapSpecify the tap to use for the hotglue commands. (ie. salesforce)
tenantOptional. The tenant id to use for the commands. Defaults to default, the admin config.

Here’s a sample config based on the examples listed above:

.hotgluerc
  env: dev.hotglue.acme.com 
  flow: MDKdfumqM 
  tap: salesforce 

You can now verify your config was created successfully using the hotglue config command:

$ hotglue config
┌─────────┬───────────────────────────┬─────────────────────────────────────────┬─────────┐
│ Setting │ Value                     │ Config File                             │ Type    │
├─────────┼───────────────────────────┼─────────────────────────────────────────┼─────────┤
│ apikey  │ ************************  │ /.hotglue/config.yaml                   │ Profile │
├─────────┼───────────────────────────┼─────────────────────────────────────────┼─────────┤
│ env     │ dev.hotglue.acme.com      │ .hotgluerc                              │ Project │
├─────────┼───────────────────────────┼─────────────────────────────────────────┼─────────┤
│ flow    │ MDKdfumqM                 │ .hotgluerc                              │ Project │
├─────────┼───────────────────────────┼─────────────────────────────────────────┼─────────┤
│ tap     │ salesforce                │ .hotgluerc                              │ Project │
├─────────┼───────────────────────────┼─────────────────────────────────────────┼─────────┤
│ tenant  │ default                   │ .hotgluerc                              │ Project │
└─────────┴───────────────────────────┴─────────────────────────────────────────┴─────────┘

Project structure

When developing transformation scripts, we recommend a project structure similar to the following, so you can easily deploy scripts for multiple sources with ease. Note that each folder contains a unique .hotgluerc which reference different sources (and can even reference different flows).

├── salesforce
│   ├── etl.ipynb
│   └── .hotgluerc
├── hubspot
│   ├── etl.ipynb
│   └── .hotgluerc
├── pipedrive
│   ├── etl.ipynb
│   └── .hotgluerc