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

dotawsenv

v1.0.3

Published

Tiny utility to load AWS secrets in application environment.

Downloads

28

Readme

dotawsenv

The project was inspired by dotenv and uses dotenv as dependency to load the config file. The idea is similar to dotenv and but in dotawsenv case the information is loaded from AWS secret manager. if the .awsenv file is found and if the environment variable declared do not have value than the lib will fetch the value from AWS Secret Manager.

The seret name is the value of the env variables in .awsenv file.

Install

# with npm
npm install dotawsenv

# or with Yarn
yarn add dotawsenv

Usage

As early as possible in your application, require and configure dotawsenv.

require('dotawsenv').config()

Create a .awsenv file in the root directory of your project. Add environment-specific variables on new lines in the form of NAME=VALUE. For example:

DB_CREDENTIALS=msSQLCredentials

The lib will fetch msSQLCredentials from AWS Secret Manager into DB_CREDENTIALS set inside process.env in format (string/binary) you have set in AWS Secret Manger.

const db = require('db')
const dbCredential = JSON.parse(process.env.DB_CREDENTIALS);

db.connect({
  host: 'hostName',
  username: dbCredential.userName,
  password: dbCredential.password
})

Preload

You can use the --require (-r) command line option to preload dotawsenv. By doing this, you do not need to require and load dotawsenv in your application code. This is the preferred approach when using import instead of require.

$ node -r dotawsenv/config your_script.js

You can also chain with dotenv

$ node -r dotenv/config -r dotawsenv/config your_script.js

The configuration options below are supported as command line arguments in the format dotawsenv_config_<option>=value

$ node -r dotawsenv/config your_script.js dotawsenv_config_path=/custom/path/to/.env dotawsenv_config_accessKeyId=ABSCHDH dotawsenv_config_secretAccessKey=DHYETHJD

Additionally, you can use environment variables to set configuration options. Command line arguments will precede these.

$ dotawsenv_CONFIG_<OPTION>=value node -r dotawsenv/config your_script.js
$ DOTAWSENV_CONFIG_ACCESS_KEY_ID=ABSCHDH DOTAWSENV_CONFIG_SECRET_ACCESS_KEY=DHYETHJD dotawsenv_CONFIG_ENCODING=latin1 node -r dotawsenv/config your_script.js dotawsenv_config_path=/custom/path/to/.awsenv

Config

config will read your .awsenv file, parse the contents, assign it to process.env, and return an Object with a parsed key containing the loaded content or an error key if it failed.

const result = dotawsenv.config()

if (result.error) {
  throw result.error
}

console.log(result.parsed)

You can additionally, pass options to config.

Options

| option | cli param | | description | | ------ | ----------- | -- | ----------- | | path | dotawsenv_config_path | optional, default: path.resolve(process.cwd(), '.env') | You may specify a custom path if your file containing environment variables is located elsewhere.| | encoding | dotawsenv_config_encoding | optional| You may specify the encoding of your file containing environment variables. | | accessKeyId | dotawsenv_config_accessKeyId | required, default: AWS SDK will look for .aws file | AWS Access Key| | secretAccessKey | dotawsenv_config_secretAccessKey | required, default: AWS SDK will look for .aws file | AWS Secret key | | region | dotawsenv_config_region | required, default: AWS SDK will look for .aws file | AWS secret region | | async | dotawsenv_config_async | optional, default false | To run in async mode. | | debug | dotawsenv_config_debug | optional| To turn on debugging. |