hashi-vault-js
Version:
A node.js module to interact with the Hashicorp Vault API.
96 lines (88 loc) • 3.62 kB
JavaScript
//Simple smoke test
// PKI secret engine
// This test will set the CRL configuration, set the PKI URLs, read the CA certificate, read the CA chain, read the CRL configuration, and list the certificates.
// source process.env
// node PKI-smoke-test.js
import Vault from '../src/Vault.js';
import fs from 'fs';
const ClientCert = process.env.CLIENT_CERT;
const ClientKey = process.env.CLIENT_KEY;
const CACert = process.env.CA_CERT;
const VaultUrl = process.env.VAULT_URL;
const RootPath = process.env.ROOT_PATH;
const RootToken = process.env.VAULT_ROOT_TOKEN;
let caBundle = "";
try {
caBundle = fs.readFileSync('./ca-bundle.pem', 'utf8');
} catch(fsError) {
console.error('FS error: ', fsError);
}
const vault = new Vault( {
https: true,
cert: ClientCert,
key: ClientKey,
cacert: CACert,
baseUrl: VaultUrl,
rootPath: RootPath,
timeout: 3000,
proxy: false
});
let token = null;
vault.healthCheck().then(function(data) {
console.log('> healthCheck output: \n',data);
if (!data.sealed && caBundle) {
//caBundle = caBundle.replace(/\r\n|\n/gi, '\\n');
vault.setCACertificate(RootToken, caBundle).then(function(data){
console.log('>> setCACertificate output: \n',data);
vault.readCACertificate('pem').then(function(data){
console.log('>>> readCACertificate output: \n',data);
}).catch(function(readError){
console.error('>>> readCACertificate error: \n',readError);
});
vault.readCAChain().then(function(data){
console.log('>>> readCAChain output: \n',data);
}).catch(function(readError){
console.error('>>> readCAChain error: \n',readError);
});
vault.setCrlConfig(RootToken, '720h', false).then(function(data){
console.log('>>> setCrlConfig output: \n',data);
vault.readCrlConfig(RootToken).then(function(data){
console.log('>>>> readCrlConfig output: \n',data);
}).catch(function(readError){
console.error('>>>> readCrlConfig error: \n',readError);
});
}).catch(function(setError){
console.error('>>> setCrlConfig error: \n',setError);
});
vault.setPkiUrls(RootToken, [ 'https://vault.local:8200/v1/pki/crl' ], [ 'https://vault.local:8200/v1/pki/ca' ], [ 'https://vault.local:8200/v1/pki/oscp' ]).then(function(data){
console.log('>>> setPkiUrls output: \n',data);
vault.readPkiUrls(RootToken).then(function(data){
console.log('>>>> readPkiUrls output: \n',data);
}).catch(function(readError){
console.error('>>>> readPkiUrls error: \n',readError);
});
}).catch(function(setError){
console.error('>>> setPkiUrls error: \n',readError);
});
vault.readPkiCrl('pem').then(function(data){
console.log('>>> readPkiCrl output: \n',data);
}).catch(function(readError){
console.error('>>> readPkiCrl error: \n',readError);
});
vault.listCertificates(RootToken).then(function(data){
console.log('>>> listCertificates output: \n',data);
vault.readCertificate(data.keys[0]).then(function(data){
console.log('>>>> readCertificate output: \n',data);
}).catch(function(readError){
console.error('>>>> readCertificate error: \n',readError);
});
}).catch(function(listError){
console.error('>>> listCertificates error: \n',listError);
});
}).catch(function(configError){
console.error('> setCACertificate error: \n',configError);
});
}
}).catch(function(healthError){
console.error('> healthCheck error: \n',healthError);
});