Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
libesvm is a library for managning an Elasticsearch process for development and testing.
This is a library for managing Elasticsearch instances for testing and development environments. It's not intended to be used in production (just don't). We uses it to download specific versions of Elasticsearch and start them up in our setup and tear down steps of our testing framework. It's also used for our esvm tool for managing our development enviroments.
npm install libesvm
This will create a new instance of the cluster. The first object is the options object and the second argument is the version of the cluster.
Cluster.prototype.log(level, message)
- Creates a log messageCluster.prototype.install(cb)
- Installs the server based on the options passed to the cluster. (returns Promise)Cluster.prototype.start(cb)
- Starts the cluster. (returns Promise)Cluster.prototype.shutdown(cb)
- Shuts down the cluster. (returns Promise)Cluster.prototype.installPlugins(cb)
- Installs the plugins (returns Promise)version
- The semver statment for the released version of Elasticsearch to install (This will override branch and binary).branch
- The nightly branch to installbinary
- The path to the tarball to use. This can either be URL or file path.directory
- The directory where everything is installed. If the directory doesn't exist it will be created.plugins
- The plugins to install. This should be an array of plugin install directives.purge
- Purge the data directory when starting the server (Default: false).fresh
- Remove the current copy before installing a new copy (Default: false).nodes
- The number of nodes to start. This can either be a number or an array of config objects (1 per node)logLevel
- Set elasticsearch's log level. (Default is INFO
, options are OFF
, FATAL
, ERROR
, WARN
, INFO
, DEBUG
, TRACE
, and ALL
). Note: esvm requires that the node
and http
modules have a minimum of INFO
level, though you can set all other modules to lower than INFO
using this settingconfig
- The config to start the server with.log
- Triggered when a log event is emitted. Almost all the types and levels are triggerd by the Elasticsaerch instance. The only special one is the progress
type. When the progress type is emitted the log object itself is an Event emitter which has a progress
event which will update upon the progress of the opperation. See the example below.Here is an example of what you can do with this script (pulled from example.js)
var libesvm = require('libesvm');
var path = require('path');
var clc = require('cli-color');
var moment = require('moment');
var _ = require('lodash');
var ProgressBar = require('progress');
var options = {
version: '~1.2.0',
directory: process.env.HOME+'/.esvm',
plugins: ['elasticsearch/marvel/latest'],
purge: true, // Purge the data directory
fresh: true, // Download and install a fresh copy
nodes: 2,
config: {
cluster: {
name: 'My Test Cluster'
}
}
};
var cluster = libesvm.createCluster(options);
var levels = {
INFO: clc.green,
DEBUG: clc.cyan,
WARN: clc.yellow,
FATAL: clc.magentaBright,
ERROR: clc.white.bgRed
};
cluster.on('log', function (log) {
var bar, pattern;
if (log.type === 'progress') {
pattern = log.op + ' [:bar] :percent :etas';
bar = new ProgressBar(pattern, {
complete: '=',
incomplete: ' ',
width: 80,
clear: true,
total: log.total
});
log.on('progress', _.bindKey(bar, 'tick'));
return;
}
var level = levels[log.level] || function (msg) { return msg; };
var message = clc.blackBright(moment(log.timestamp).format('lll'));
message += ' '+level(log.level);
if (log.node) {
message += ' ' + clc.magenta(log.node);
}
message += ' ' + clc.yellow(log.type) + ' ';
message += log.message;
console.log(message);
});
cluster.install().then(function () {
return cluster.installPlugins();
}).then(function () {
return cluster.start();
}).then(function () {
process.on('SIGINT', function () {
cluster.shutdown().then(function () {
console.log(clc.black.bgWhite("Bye Bye!"));
process.exit();
});
});
process.stdin.read();
}).catch(function (err) {
console.log('Oops', err.stack);
});
FAQs
libesvm is a library for managning an Elasticsearch process for development and testing.
We found that libesvm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
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.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.