Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
A lightweight Gitlab based JSON database with Mongo-style API. Backed by gitbreaker and mingo.
npm i gitlab-db
import GitlabDB from 'gitlab-db'
// Instantiate a database
const db = new GitlabDB('apple', {
url: 'http://gitlab.example.com',
token: 'your_access_token',
repo: 'group/repo',
})
// Create a collection
db.createCollection('product')
// CRUD
db.collection('product').save({ name: 'iphone', v: '8', price: 699 })
db.collection('product').find({ name: 'iphone' })
db.collection('product').update({ name: 'iphone', v: '8' }, { price: 599 })
db.collection('product').remove({ name: 'iphone', v: '7' })
Repository structure will be:
└── <repository root>
├── apple
│ └── product.json
Note: As all APIs returns a promise. I highly recommend the async/await
statement like the following:
const result = await db.collection('product').save({ name: 'iphone', v: '8', price: 699 })
Instantiate a database.
String
Name of the database you want to create.Object
String
Specify gitlab url, eg: http://gitlab.example.com
.String
Specify your personal access token.String
Specify repository name and group belongs to, format: group/repo
.String
Optional, specify branch, default: main
.String
Specify your custom GitlabAPI like @gitbeaker/browser
.Create a collection.
String
Name of the collection you want to create.Array
Optional. Specifies default data of the collection about to be created.Connect to a collection.
String
Name of the collection you want to connect.Object
Optional settings.
String
Specify a key of the collection.Inserts a new document(or multiple documents). This method will returns the inserted document(s).
Object
| Array
A document or multiple documents to save to the collection.Returns like:
Insert single document:
{ added: 1, document: {...} }
Insert multiple documents:
{ added: 2, documents: [{...}, {...}] }
Note: it will return { added: 0 }
if a key is specified and the document that the key points to already exists.
Selects documents in a collection.
Object
Optional. Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}).Returns like:
[{ _id: 1, ... }]
Modifies an existing document or documents in a collection.
Object
The selection criteria for the update. The same query selectors as in the find() method are available.Object
The modifications to apply.Returns like:
{ updated: 2 }
Another usage, execute multiple updates at once to reduce gitlab requests:
db.collection(collectionName).update([
{ query: { id: 1 }, update: { v: 1 } },
{ query: { id: 2 }, update: { v: 2 } },
])
Removes documents from a collection.
Object
Specifies deletion criteria using query operators.Returns like:
{ removed: 1 }
Check if a collection exists.
String
Name of the collection you want to check.Returns like:
true
import { Gitlab } from '@gitbeaker/browser';
import GitlabDB from 'gitlab-db'
// Instantiate a database
const db = new GitlabDB('apple', {
url: 'http://gitlab.example.com',
token: 'your_access_token',
repo: 'group/repo',
}, Gitlab)
// ETC...
Config your environment variables GITLAB_URL
ACCESS_TOKEN
REPO
, and run tests with:
GITLAB_URL={your_gitlab_url} ACCESS_TOKEN={your_access_token} REPO={yourGroup/yourRepo} npm run test
FAQs
A lightweight GitLab based JSON database with Mongo-style API
We found that gitlab-db 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
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.