Introduction to Node Vault
Node Vault is a client module for HashiCorp’s Vault – a tool for securely accessing and storing secrets. It provides a simple and straightforward API for interacting with Vault’s HTTP API. By leveraging Node Vault, developers can ensure that sensitive information, such as API keys and passwords, are securely managed and accessed.
Installing Node Vault
npm install node-vault
Using Node Vault APIs
Here are several examples showcasing the rich set of functionalities offered by Node Vault:
Initialization
const vault = require('node-vault')({ apiVersion: 'v1', endpoint: 'http://127.0.0.1:8200', token: 'myroot' });
Reading Secrets
vault.read('secret/mySecret') .then((result) => { console.log(result) }) .catch(console.error);
Writing Secrets
vault.write('secret/mySecret', { value: 's3cr3tValu3' }) .then(() => { console.log('Secret written successfully'); }) .catch(console.error);
Listing Secrets
vault.list('secret') .then((res) => { console.log(res); }) .catch(console.error);
Deleting Secrets
vault.delete('secret/mySecret') .then(() => { console.log('Secret deleted successfully'); }) .catch(console.error);
Renewing Secret Leases
vault.renew('sys/leases/renew', { lease_id: 'myLeaseId' }) .then((result) => { console.log(result); }) .catch(console.error);
Application Example
Below is a complete application example that leverages Node Vault to manage secrets securely.
const vault = require('node-vault')({ apiVersion: 'v1', endpoint: 'http://127.0.0.1:8200', token: 'myroot' }); async function manageSecrets() { try { // Write a secret await vault.write('secret/myAppSecret', { value: 'superSecretValue' }); console.log('Secret written'); // Read the secret const result = await vault.read('secret/myAppSecret'); console.log('Secret read:', result); // List all secrets const secretsList = await vault.list('secret'); console.log('Secrets list:', secretsList); // Delete the secret await vault.delete('secret/myAppSecret'); console.log('Secret deleted'); } catch (error) { console.error('Error managing secrets:', error); } } manageSecrets();
By integrating Node Vault into your JavaScript applications, you are well-equipped to handle secret management in a secure and efficient manner.
Hash: 6375fe81144c3e401879b6bca1912f55cc7e4b8499c7fbd2ffb2b172c10011f1