dotawsenv

1.0.3 • Public • Published

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.

Dependencies (3)

Dev Dependencies (8)

Package Sidebar

Install

npm i dotawsenv

Weekly Downloads

9

Version

1.0.3

License

MIT

Unpacked Size

72.7 kB

Total Files

11

Last publish

Collaborators

  • blaisefonseca