npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

embrasure

v1.0.10

Published

Embrasure Secrets Manager Core Features

Downloads

3

Readme

Embrasure

Embrasure is a lightweight, open source tool for managing application secrets across a small development team. Embrasure is fully built in AWS in the free tier and builds all of its own architecture so as to not affect any existing aws resources a user may or may not have. Embrasure works as a wrapper that wraps your project, aquires all secrets your project uses, and then runs your project with the necessary secrets injected into their desired location. This eliminates hard coding sensitive information into your codebase and also acts as a single secrets repository to prevent secret sprawl in your teams project environment.

Embrasure encrypts secrets at rest in the secrets database and also utilizes TLS/HTTPS to encrypt your secrets while pulling them down from their cloud storage database to keep your teams secrets a secret. Embrasure also verifies the identity of all users attempting to work with embrasure to determine if they have access before sending any information anywhere. This is all done using aws's high quality security tools along with aws IAM to verify the identity of anyone trying to access your secrets. All this is to say that if you trust amazon to keep your sensitive information secure, then you can trust Embrasure as well!

Installation

Pre Embrasure download setup

If you regularly use AWS you may already have the following but embrasure relies on the .aws folder to determine what aws account is being used. This folder must be created in your machines home directory, NOT YOUR PROJECT HOME DIRECTORY. If your not sure what your machines home directory is, run the following script in your terminal:

cd ~
pwd

Create a folder called ".aws" in your home directory and create 2 files: "credentials" and "config" (note that files have no file extension and are all lowercase). Please fill both files with your aws account information as shown below:

NOTE: THE TEAM ADMIN WILL PROVIDE THE AWS_ACCESS_KEY_ID AND AWS_SECRET_ACCESS_KEY TO THEIR TEAMMATES DURING THE SETUP OF EMBRASURE. TEAMMATES SHOULD NOT USE THEIR AWS ACCOUNT CREDENTIALS IF THEY HAVE THEM!

credentials (do not use quotation marks): [default] aws_access_key_id = your_aws_access_key_id_here aws_secret_access_key = your_aws_secret_access_key_here

config: [default] region=your_aws_region (ex: region=us-east-1) output=json

Now you are all set up to install embrasure!

Embrasure download setup

Run the following commands in the root directory of the project you wish to use Embrasure Secrets for. They will install all of Embrasure's dependencies and allow the usage of Embrasure's CLI commands. The final command should only be run by the admin which will have the admin build all of the aws resources embrasure requires to work in the aws account you have in your ".aws/credentials" file and account you have chosen (if you have multiple accounts in the credentials file) when the command is run.

npm install embrasure // install dependencies into your project
npm link // enables embrasure's CLI Commands in your dev environment
embrasure/src/utils/aws-init/init.js // builds aws architecture for secure secrets storage

embrasure init // ONLY ADMIN RUNS THIS COMMAND!! Builds Embrasure cloud architecture that your team will use to store and interact with secrets
// GO TO EMBRASURE SERVERLESS REPO TO FINISH EMBRASURE PROJECT SETUP

What did Embrasure just create in my aws account?

Embrasure fully builds all of the aws dependencies it requires to work and makes no assumptions regarding what resources are available to connect to in the admins aws account. Because of this, the following aws resources are built:

  • x1 VPC (virtual private cloud)
  • x2 Subnets
  • x1 VPC Security Group
  • x1 Subnet Group
  • x1 RDS Database running PostgreSQL
  • x1 Lambda (built from setup in "Embrasure Serverless" Repo)
  • x1 API Gateway (built from setup in "Embrasure Serverless" Repo)

Usage

Usage is dependent on what accessibility is granted to a user by the admin but all embrasure commands are listed below:

// Meta Commands
embrasure init --username <username> --password <password> // Initialize backend architecture. Run this only once.

embrasure teardown // Delete backend architecture. NOTE: YOU MUST RUN SERVERLESS REMOVE BEFORE RUNNING THIS COMMAND OR IT WILL NOT WORK

embrasure run --file <file> // Run file with secrets injected

// Secrets database interaction commands
embrasure getAllSecrets // returns all secrets a user has access to in a development environment

embrasure getSecret --name <secretName> // returns the value of a specified secret if user has access to that secret

embrasure addSecret --name <name> --value <value> // adds a secret to the secrets manager if user has create secret access

embrasure updateSecret --name <name> --value <value> // updates the value of a specified secret if user has update secret access

embrasure deleteSecret --name <name> // deletes a specified secret from the secrets manager is user has delete secret access

// Admin only user interaction and access audit log commands
embrasure addUser --name <name> --writePermissions=[boolean] // Add a user to your organization and specify read and write permission or only read permission

embrasure showPermissions --name <name> // Show read/write permissions of a user

embrasure editPermission --name <name> --setWritePermission // Edit read/write permission for a user

embrasure deleteUser --name <name> // Delete user with specified name

embrasure getAllUsers // Get all users for your current project environment

embrasure getAllLogs // Get all logs

embrasure deleteUser --name <name> // Delete user with specified name

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License .

MIT