1.0.3 • Published 6 years ago

envincible v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

Envincible

Command line interface to manage project environment variables and securely provision access to team members.

Table of Contents

  1. Documentation
    1. Installation
    2. Cloud Connect
      1. AWS
      2. More Coming Soon
    3. Quick Start
    4. Manage Environments
    5. Provision Access
  2. Deploy
    1. Create React App
    2. Serverless
    3. Elastic Beanstalk
    4. Kubernetes

Documentation

Installation

npm install -g envincible

Cloud Connect

AWS
  1. Sign Up for AWS

  2. Add credentials to local machine

More coming soon

If you have a cloud provider that you would like us to implement please let us know here!

Quick Start

  1. nv set API_SECRET "super secret" -p test -s dev

  2. nv run "node -e 'console.log(process.env.API_SECRET)'" -p test -s dev

Manage Environments

nv status

Display the status of the current cloud accounts associated with envincible.

nv ls

List all project names.

nv ls -p <project>

List all project environment stages and their variable keys.

nv ls -p <project> -s <stage>

List all variables in specific project and environment stage.

Provision Access

nv users

List all of the users found in the cloud account.

nv create -p <project>

Create the READ and FULL access policies for a project.

nv policies -p <project>

List all of the policies associated with the current project.

nv who -p <project>

List all users, groups, and roles that have access to the current project.

nv allow -p <project> -t [users|roles|groups]

Select cloud entities (users, roles, or groups) that should have access to the project secrets.

Options

  1. -t users default
  2. -t groups
  3. -t roles

Deploy

Create React App

Inject envincible variables into a create react app environment.

nv run "yarn build" -p test -s dev

Only variables prefixes with REACT_APP will be allowed through the CRA build process. This enables client and server variables to live in the same project but blocks sensitive secrets from making their way to the client.

Serverless

Inject envincible variables into a serverless lambda environment.

provider:
  name: aws
  stage: ${opt:stage,'dev'}
  environment:
    API_SECRET: ${ssm:/${file(./package.json):name}/${self:provider.stage}/API_SECRET}
serverless deploy --stage dev

Elastic Beanstalk

Coming soon...

Kubernetes

Coming soon...