1.0.0 • Published 9 months ago
@litehex/node-vault v1.0.0
node-vault is a Javascript HTTP client for HashiCorp's Vault API that allows you to have typesafe access to the API using TypeScript and Zod.
👀 Features
- Simple API
- Typesafe and Validated Requests from Zod
- Extendable using Custom Commands
📦 Installation
npm install @litehex/node-vault
📖 Usage
Init and unseal vault
import { Client } from '@litehex/node-vault';
// Get a new instance of the client
const vc = new Client({
apiVersion: 'v1', // default
endpoint: 'http://127.0.0.1:8200', // default
token: 'hv.xxxxxxxxxxxxxxxxxxxxx' // Optional in case you want to initialize the vault
});
// Init vault
const init = await vc.init({ secret_shares: 1, secret_threshold: 1 });
console.log(init); // { data: { keys: [ ... ], keys_base64: [ ... ], ... } }
// Set token
const { keys, root_token } = init;
vc.token = root_token;
const unsealed = await vc.unseal({ key: keys[0] });
console.log(unsealed); // { data: { type: 'shamir', initialized: true, sealed: false, ... } }
Create Key/Value V2 engine
const mounted = await vc.mount({
mountPath: 'my-secret',
type: 'kv-v2'
});
console.log(mounted); // { data: true }
const info = await vc.engineInfo({ mountPath: 'my-secret' });
console.log(info); // { data: { type: 'kv', options: { version: '2' }, ... } }
Write, read and delete secrets
const mountPath = 'my-secret';
const path = 'hello';
const write = await vc.kv2.write({
mountPath,
path,
data: { foo: 'bar' }
});
console.log(write); // { data: { request_id: '...', lease_id: '...', ... } }
const read = await vc.kv2.read({ mountPath, path });
console.log(read); // { data: { request_id: '...', lease_id: '...', ... } }
const deleted = await vc.kv2.deleteLatest({ mountPath, path });
console.log(deleted); // { data: true }
📚 Documentation
For complete usages, please dive into the Wiki.
For all configuration options, please see the API docs.
🤝 Contributing
You can contribute to this project by opening an issue or a pull request on GitHub. Feel free to contribute, we care about your ideas and suggestions.
Relevant
- HashiCorp's Vault API docs
- Minimal CLI for K/V V2 engine
License
1.0.0
9 months ago
1.0.0-canary.0
12 months ago
0.2.3
1 year ago
0.2.5
1 year ago
0.2.4
1 year ago
0.2.2
1 year ago
0.2.1
1 year ago
0.2.0-canary.2
1 year ago
0.2.0
1 year ago
0.2.0-canary.0
1 year ago
0.2.0-canary.1
1 year ago
0.1.1
1 year ago
0.1.0
1 year ago
0.1.0-alpha.11
2 years ago
0.1.0-alpha.10
2 years ago
0.1.0-alpha.9
2 years ago
0.1.0-alpha.8
2 years ago
0.1.0-alpha.7
2 years ago
0.1.0-alpha.6
2 years ago
0.1.0-alpha.5
2 years ago
0.1.0-alpha.4
2 years ago
0.1.0-alpha.3
2 years ago
0.1.0-alpha.2
2 years ago
0.1.0-alpha.1
2 years ago
0.1.0-alpha.0
2 years ago