Socket
Socket
Sign inDemoInstall

yml

Package Overview
Dependencies
9
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    yml

Read Yaml files based on NODE_ENV or passed env + support for encryption


Version published
Weekly downloads
1.3K
decreased by-15.14%
Maintainers
2
Install size
2.21 MB
Created
Weekly downloads
 

Readme

Source

yml

Build Status npm version Coverage Status

Load a yaml file in Node.js

It can load a yaml file based on NODE_ENV or passed env (or using development as default). It uses ursa for encryption.

It can deep merge default section and env section of your yaml perfectly.

You can have yaml file

default: 
  username: Admin
  password: Password
  days:
    - Monday
    - Tuesday
    - Friday
  devices:
    android: true
    ios: false
development:
  password: local
  devices:
    ios: true
production:
  password: decrypt(A7YzqIBjGgXWKA9yl81hgSal7djwBuXK5nBS15JswtzyxKWXilS8buiTZ2XqK9czq)
configs = Yml.load 'config.yml'
# { username: 'Admin', password: 'local', days: ['Monday', 'Tuesday', 'Friday'], devices: { android: true, ios: true } }
configs = Yml.load 'config.yml', 'production', { key: 'security.key.pem' }
# { username: 'Admin', password: 'decrypted_pass', days: ['Monday', 'Tuesday', 'Friday'], devices: { android: true, ios: false } }

If you have defined NODE_ENV in your system, you dont need to pass the env parameter.

# if NODE_ENV = 'production' is set in server, these lines have same result
configs = Yml.load 'config.yml', { key: 'security.key.pem' }
configs = Yml.load 'config.yml', 'production', { key: 'security.key.pem' }
# { username: 'Admin', password: 'decrypted_pass', days: ['Monday', 'Tuesday', 'Friday'], devices: { android: true, ios: false } }

Encryption

You should create public/private keys with a command like this:

openssl rsa -in security.key.pem -pubout -out security.pub 

You can store public key in the machine which responsible for generating the encrypted information. And use private key in the machine which should load the .yml file.

You can use the helper method provided in the library to generate the encrypted phrase, instead of storing the password or critical information.

Yml = require 'yml'
Yml.encrypt 'password', 'security.pub'
# A7YzqIBjGgXWKA9yl81hgSal7djwBuXK5nBS15JswtzyxKWXilS8buiTZ2XqK9czq
# You can store this value in your .yml file

You can read more about encryption here.

FAQs

Last updated on 12 Jul 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc