node package manager


node figaro

Build Status Dependency status

npm module to help on configuration of sensitive information on open source projects. This project is directly inspired by Figaro



$ npm install figaro -g


node figaro relies on creating a file (figaro.json) where you will store your sensitive information (passwords, secret keys, etc...) as key/value pairs The contents of this file can then be used in different environments by encrypting them with the environment public key.


The options that you can use with node figaro are:

  • --skipGitIgnore Skips updating .gitignore file, default: false
  • --figaro-file File where your sensitive configuration will be stored, default: figaro.json
  • --version Print the version of figaro.
  • --help Print the help of figaro.


From the root of your module (where your package.json lives):

$ figaro --setup

This will generate a figaro.json file and it will be added to your .gitignore In the figaro.json file you can add something like:

{ "PASSWORD": "SuperSecretPassword" }

Populate process.env

Simply require figaro and run parse to import all the variables in figaro.json into your nodes environment.

figaro = require('figaro').parse(figaroJSONPath, callback); // figaroJSONPath can be null and in such case default location of figaro.json is used

Travis usage

You can encrypt the contents of figaro.json for later usage as environment variables in travis

$ figaro --travis

This will generate something like:

  - {secure: "df/EJcOiNPNpPn9i6Nr5cpH1OOYL0FYpXdIY8zpHh7LLfwJ5q4gIwAWSXjXC2NLk13Ki+HsBgph84PX0Bd4/8FCvw6FH8lgkBkjxjG5/tgJ9j8K733CtoxuvVwSMEJsyFEHU1r9JeNx4nyriTu6JhWRnTAYVLQJjhXEncXG4Fsc="}

You can add that to your .travis.yml file safely (it is encrypted using your module public key in travis, so only travis can decrypt it) And now in travis you will have an environment variable called PASSWORD with value SuperSecretPassword.