Introduction to node-vault
Node-vault is a powerful and versatile client for HashiCorp Vault written in JavaScript. It provides a seamless way to interact with Vault’s HTTP API to manage secrets, encryption keys, and other sensitive data in a secure and automated manner.
Getting Started with node-vault
To install node-vault, you can use npm:
npm install node-vault
Here’s the basic setup to initialize the client:
const vault = require('node-vault')({
apiVersion: 'v1', // default
endpoint: 'http://127.0.0.1:8200', // default
token: 'my-token' // use your own vault token here
});
API Examples
The following are some examples of how to use the various APIs that node-vault provides.
Read a Secret
You can read a secret with the following code snippet:
vault.read('secret/my-secret')
.then((result) => console.log(result))
.catch((err) => console.error(err));
Write a Secret
To write a secret:
vault.write('secret/my-secret', { value: 'my-secret-value' })
.then(() => console.log('Secret written successfully'))
.catch((err) => console.error(err));
Delete a Secret
To delete a secret:
vault.delete('secret/my-secret')
.then(() => console.log('Secret deleted successfully'))
.catch((err) => console.error(err));
List Secrets
To list all secrets:
vault.list('secret')
.then((result) => console.log(result))
.catch((err) => console.error(err));
App Example Using node-vault
Here’s an example of a simple Node.js app that uses node-vault to securely manage and retrieve secrets:
const express = require('express');
const vault = require('node-vault')({
apiVersion: 'v1',
endpoint: 'http://127.0.0.1:8200',
token: 'my-token'
});
const app = express();
app.get('/get-secret', (req, res) => {
vault.read('secret/my-secret')
.then((result) => res.send(result))
.catch((err) => res.status(500).send(err.message));
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Conclusion
Node-vault is an essential tool for developers looking to integrate HashiCorp Vault into their applications. With its easy-to-use API and extensive functionality, securing your app’s sensitive information has never been easier.
Hash: 6375fe81144c3e401879b6bca1912f55cc7e4b8499c7fbd2ffb2b172c10011f1