Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
rethinkdb-elasticsearch-stream
Advanced tools
> 🔄 sync RethinkDB tables to Elasticsearch using [changefeeds](https://rethinkdb.com/docs/changefeeds/javascript/)
🔄 sync RethinkDB tables to Elasticsearch using changefeeds
A JavaScript-based replacement for the deprecated Elasticsearch RethinkDB River plugin. This can populate your Elasticsearch instance using data from a RethinkDB instance, keep it up to date using changefeeds, and allow you to modify the documents before they're copied.
✨ Features:
Simple example:
import rethinkdbElasticsearchStream from 'rethinkdb-elasticsearch-stream'
await rethinkdbElasticsearchStream({
backfill: true,
elasticsearch: { host: '127.0.0.1', port: 9200 },
rethinkdb: { host: '127.0.0.1', port: 28015 },
tables: [{ db: 'megacorp', table: 'users' }],
watch: true
});
Everything:
import rethinkdbElasticsearchStream from 'rethinkdb-elasticsearch-stream'
await rethinkdbElasticsearchStream({
// If the Elasticsearch instance should be populated with existing RethinkDB data
backfill: true,
// Connection details for an Elasticsearch instance
elasticsearch: {
host: '127.0.0.1',
port: 9200,
// (optional) protocol for connection (`http` or `https`). Defaults to `http`.
protocol: 'http'
},
// Connection details for the RethinkDB instance to be copied
// See `rethinkdbdash` (https://github.com/neumino/rethinkdbdash) for all possible options.
rethinkdb: {
host: '127.0.0.1',
port: 28015,
// (optional) protocol for connection (`http` or `https`). Defaults to `http`.
protocol: 'http'
},
// Tables to duplicate and watch for changes
tables: [
{
// Database containing table
db: 'megacorp',
// (optional) Handle when a document is deleted in Rethink
// This is detected when the new value for a document is null
// If this is not specified, a DELETE is sent to Elasticsearch for the
// id of the old value
deleteTransform: async ({db, document, oldDocument, table }) => {
if (await someImportantCheck()) {
return oldDocument;
}
// this is the default behavior for a delete
return {
// import { _delete } from 'rethinkdb-elasticsearch-stream';
//
// this is a special Symbol that tells the library that this should
// be a DELETE. It can also be used in the regular transform function
_delete
id: oldDocument.id,
}
},
// (optional) Type field for Elasticsearch. This is similar to a "table" in
// RethinkDB, and is the second portion of the URL path (index/db is the first).
esType: 'webUsers',
// (optional) ID field. If specified, changes are upserted into Elasticsearch
// Note: Elasticsearch-specific field names cannot be used (e.g. `_id`)
// If that's important to you, open an issue.
idKey: 'id',
// Table to copy
table: 'users',
// (optional) Modify what will be saved in Elasticsearch.
// This can be either a function or a Promise.
// If `null` or `undefined` is returned, the document is not saved.
// `db` and `table` are specified for convenience
transform: async ({ db, document, oldDocument, table }) => {
await doSomethingImportant()
return document;
}
}
],
// If the Elasticsearch instance should be updated when RethinkDB emits a changefeed event
watch: true
});
With Yarn or npm installed, run:
yarn add rethinkdb-elasticsearch-stream
# ...or, if using `npm`
npm install rethinkdb-elasticsearch-stream
rethinkdb-elasticsearch-stream was inspired by:
MIT
FAQs
> 🔄 sync RethinkDB tables to Elasticsearch using [changefeeds](https://rethinkdb.com/docs/changefeeds/javascript/)
The npm package rethinkdb-elasticsearch-stream receives a total of 19 weekly downloads. As such, rethinkdb-elasticsearch-stream popularity was classified as not popular.
We found that rethinkdb-elasticsearch-stream demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 15 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
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.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.