
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
consul-leader
Advanced tools
Consul leader election and retirement.
https://www.consul.io/docs/guides/leader-election.html
npm install --save consul-leader
const Leader = require('consul-leader');
let consulLeader = new Leader('locking-key');
consulLeader.on('elected', () => {
// start service
});
consulLeader.on('retired', () => {
// stop service
});
No configuration is required, but it's recommended to provide at least a custom key name.
let consulLeader = new Leader('locking-key');
It's possible to configure every aspect (consul, session, key) by providing a configuration object instead of a plain string. Most aspects match the configuration options of the consul package.
let consulLeader = new Leader({
consul: {
host: '127.0.0.1',
port: 8500
},
session: {
ttl: 10,
lockdelay: 15
},
key: {
key: 'locking-key',
value: 'leader'
}
});
The consul configuration matches the consul constructor options.
Note: the promisify option is required and will be automatically enabled in this package.
The session configuration matches the consul session create options.
But the ttl and lockdelay options have to be integers in seconds.
The key configuration matches the consul kv set options.
The acquire and release options are automatically added, overwriting them will lead to unexpected behaviour.
The Leader class will automatically try to acquire the leader lock and emits two different events:
elected: Will be fired when the current instance has acquired the leader lock successfullyretired: Will be fired when the current instance has lost the leader lockconsulLeader.on('elected', () => {
// start service
});
consulLeader.on('retired', () => {
// stop service
});
If the current instance wants to stop, it can release the lock safely and give others the chance to take over.
consulLeader.resign();
FAQs
Consul leader election and retirement.
We found that consul-leader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.