Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

biome

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

biome

A simple way to manage environment variables on a per-project basis

  • 0.3.0
  • npm
  • Socket score

Version published
Weekly downloads
13K
decreased by-1.34%
Maintainers
1
Weekly downloads
 
Created
Source

Biome: a small script to manage a user's environment variables

CircleCI npm version Licence

Manage environment variables in a sane way. Never push up secrets again!

  • Enforces a clear separation of secrets and code.
  • All secrets are in one configurable place. (by default, ~/.biome)
  • Associate any number of variables with any number of projects.
  • Easily create complex variable structures that inherit from one-another.

Installation

npm install -g biome

Usage

$ biome --help
  Usage: biome [options] [command]

  Commands:

    init [project]            Create a new project with the specified name, and save an alias to this folder.
    add [project]             Add a variable to a project. Specify like NAME=value.
    use [project]             Open a shell with a project's associated variables included.
    edit [project]            Open $EDITOR with the project's associated environment variables.
    vars [options] [project]  Echo all variables.

  Options:
    -h, --help     output usage information
    -V, --version  output the version number

  Examples:

  $ biome init project
  $ biome add project FOO=bar BAZ="I'm a teapot"
  $ biome use project

Workflow

To set up an environment, first run biome init project to set up a new environment called project. Then, to add new variables to an environment, run biome add project KEY=value. To perform more complicated configurations, edit the environment directly with biome edit project.

Once you'd like to use the environment, run biome use project. A new instance of $SHELL will be spawned containing all the configured variables, plus a few Biome-specific ones. To view your current environment, type biome.

How it works:

For each project, biome creates 2 files: a local Biomefile and a global project.json.

// Biomefile
{
  "name": "project"
}
// project.json
{
  "VARIABLE": "value"
}

The local Biomefile can be committed to source control because it just contains a reference to the global project. The project.json is stored in ~/.biome/project.json, where project is replaced with the identifier in the Biomefile. This file is where the environment variables themselves are actually stored. Since each user can have a separate project.json for each system, everyone can customize their config to suit their needs.

Configuration

  • BIOME_LOCAL_NAME: The name of the file in the project that references an environment. Defaults to Biomefile.
  • BIOME_FOLDER_NAME: The name of the folder that biome stores all secrets within. Defaults to ~/.biome.

Tips and Tricks

  • Want to include other environments into a project? Within the project's environment, add the special key $include mapping to an array of envornments. For example, "$include": ["another", "environment", "here"].
  • Easily give new users a simple way to enter values. Within the Biomefile, define a property called template. Each key of template should be the variable name, while each value should be its default value. For example:
{
  "name": "my-project",
  "template": {
    "KEY": "value"
  }
}

Then, when the user runs biome init, they'll be prompted for the values specified. Above, they'd be prompted for KEY, and given a default choice of "value".

  • Don't want to hardcode templates into a project? As an argument to biome init, specify a template url after the project name, like biome init project http://example.com/template.json.

Created by Ryan Gaus

Keywords

FAQs

Package last updated on 12 Jul 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc