
Research
Namastex.ai npm Packages Hit with TeamPCP-Style CanisterWorm Malware
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.
influx-backup
Advanced tools
NodeJS module for InfluxDB backup/restore. This module allows to backup an InfluxDB database by creating a zip file with all backup files generated with the influxd shell command.
REQUIREMENTS
influxd bin must be installed in your system. Check it by running which influxd commandUses InfluxDB portable backups introduced in InfluxDb v1.5, check docs for more info.
Run the following command in the root directory of your project
npm install influx-backup --save
Check here and the example in examples folder
Here are some lines from examples/app.js
const TEST_DB = "testDB";
const manager = new BackupManager({db: TEST_DB});
// Restore DB api
app.post('/restore', (req, res) => {
var restore_path = "";
// create a temp directory to use for the backup
manager.createDir()
.then((dir) => {
restore_path = dir;
// Use multer to get the file from the req
// and store it in the temp dir created
var Storage = multer.diskStorage({
destination: restore_path,
filename: function(req, file, callback) {
callback(null, file.originalname);
}
});
// "restore" is the name attr of input file in html
var upload = multer({storage: Storage}).single("restore");
return multerPromise(upload, req, res)
})
.then((file) => {
//now the file is stored correctly, I can start the restore command
if(file){
return manager.restore(restore_path, file.originalname)
}else{
throw Error("No file provided");
}
}) //the backup has been restored in a backup database, load the backup in the main database
.then(() => manager.loadBackup())
.then(() => res.json({success:true, message: "Backup restored successfully"}))
.catch(err => {
console.log(err);
res.json({success:false, message: err.message})
});
});
// Backup DB api
app.get('/backup', (req, res) => {
manager.backup()
.then((file) => {
//zip file is ready, send it to the client
var stream = fs.createReadStream(file);
res.setHeader('Content-disposition', 'attachment; filename=' + file.split('/').pop());
stream.once("close", function () {
stream.destroy(); // makesure stream closed, not close if download aborted.
//IMPORTANT: remove backup files and zip
manager.deleteDir(path.dirname(file));
});
stream.pipe(res);
})
.catch(err => {
res.json({success: false, message: err});
});
});
// Check testDB exists, if not create one and start app listening on port 8000
influx.getDatabaseNames()
.then(names => {
if (!names.includes(TEST_DB)) {
return influx.createDatabase(TEST_DB)
}
})
.then(() => manager.init())
.then(() => {
app.listen(8000, function () {
console.log('Listening on port 8000')
})
})
.catch(err => {
console.error(`Error creating Influx database!`)
})
FAQs
Influxdb backup/restore helper
The npm package influx-backup receives a total of 1 weekly downloads. As such, influx-backup popularity was classified as not popular.
We found that influx-backup demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Research
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.