biome v0.3.3

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 biomeUsage
$ 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 projectWorkflow
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 toBiomefile.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
$includemapping 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 calledtemplate. Each key oftemplateshould 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, likebiome init project http://example.com/template.json.
Created by Ryan Gaus