OpenFn/devtools CircleCI

A set of tools for writing & testing expressions, managing OpenFn projects, and developing new adaptors.


🔥 The documentation for this project can be found at 🔥

Up and running

  1. Make sure you’ve got git (maybe GitBash for Windows?)
  2. And Node.js (version 12 or greater)
  3. Run git clone for SSH or git clone
  4. Run cd devtools
  5. Run ./ ssh or ./ https to install core, language-common, and language-http

Note: If you get a “permission denied” message when running ./, run chmod +x ./ then retry the install command.

To install specific adaptors, run ./ ${ssh || https} language-${name}

To interactively generate a project configuration yaml, run ./scripts/generate-project.js

You can run core from anywhere by using npm install -g for global install npm install -g github:openfn/core#main


Read the docs at

execute takes:

  1. -l [language-xyz].Adaptor: The adaptor being used
  2. -e [expression.js]: The expression being tested
  3. -s [state.json]: The message data: {...} and credentialconfiguration: {...}
  4. -o [output.json]: The file to which the output will be written

Run a job like this:

./core/bin/core execute \
  -l ./adaptors/language-XXXXXXX/ \
  -s ./tmp/state.json \
  -o ./tmp/output.json \
  -e ./tmp/expression.js

Deploying Adaptors


Using the CLI via ./bin/cli:

via Docker

docker build -t dev
docker run --rm -it \
  --name devtools \
  -v $PWD:/opt \
  -v $(realpath ../adaptor):/tmp/adaptor \
  devtools \
  cli release /tmp/adaptor