1.0.3 • Published 2 years ago

dotawsenv v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

optioncli paramdescription
pathdotawsenv_config_pathoptional, default: path.resolve(process.cwd(), '.env')You may specify a custom path if your file containing environment variables is located elsewhere.
encodingdotawsenv_config_encodingoptionalYou may specify the encoding of your file containing environment variables.
accessKeyIddotawsenv_config_accessKeyIdrequired, default: AWS SDK will look for .aws fileAWS Access Key
secretAccessKeydotawsenv_config_secretAccessKeyrequired, default: AWS SDK will look for .aws fileAWS Secret key
regiondotawsenv_config_regionrequired, default: AWS SDK will look for .aws fileAWS secret region
asyncdotawsenv_config_asyncoptional, default falseTo run in async mode.
debugdotawsenv_config_debugoptionalTo turn on debugging.
1.0.2

2 years ago

1.0.3

2 years ago

1.0.1

4 years ago

1.0.0

4 years ago