Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
haraka-plugin-redis
Advanced tools
Connects to a redis instance. By default it stores a redis
connection handle at server.notes.redis
. See below to get a custom DB handle attached to another database.
The redis.ini
file has the following sections (defaults shown):
; host=127.0.0.1
; port=6379
; host=127.0.0.1
; port=6379
Publish & Subscribe are DB agnostic and thus have no db setting. If host and port and not defined, they default to the same as [socket] settings.
; see https://github.com/redis/node-redis/blob/HEAD/docs/client-configuration.md
; database=0
; password=battery-horse-staple
Options specified in redis.ini[opts]
are applied to the server config, the pubsub config, AND the configurations of any plugins that inherit this plugin. This is ideal if the redis server requires a password. Specify it once in [opts]. If other redis connections need a different value (such as a unique DB), they must specify it. For plugins, all options are stored in the plugins [redis]
section of its config file.
Use redis in your plugin like so:
if (server.notes.redis) {
server.notes.redis.hGetAll(...);
// or any other redis command
}
In your plugin:
exports.results_init = function (next, connection) {
this.redis_subscribe(connection, () => {
connection.notes.redis.on('pmessage', (pattern, channel, message) => {
this.do_something_with_message(message, ...)
})
next()
})
}
// be nice to redis and disconnect
exports.hook_disconnect = function (next, connection) {
this.redis_unsubscribe(connection)
}
This variation lets your plugin establish its own Redis connection, optionally with a redis db ID. All redis config options must be listed in your plugins config file in the [redis] section.
exports.register = function () {
this.inherits('redis')
this.cfg = this.config.get('my-plugin.ini')
// populate plugin.cfg.redis with defaults from redis.ini
this.merge_redis_ini()
// cluster aware redis connection(s)
this.register_hook('init_master', 'init_redis_plugin')
this.register_hook('init_child', 'init_redis_plugin')
}
When a db ID is specified in the [redis] section of a redis inheriting plugin, log messages like these will be emitted when Haraka starts:
[INFO] [-] [redis] connected to redis://172.16.15.16:6379 v3.2.6
[INFO] [-] [limit] connected to redis://172.16.15.16:6379/1 v3.2.6
[INFO] [-] [karma] connected to redis://172.16.15.16:6379/2 v3.2.6
[INFO] [-] [known-senders] connected to redis://172.16.15.16:6379/3 v3.2.6
Notice the database ID numbers appended to each plugins redis connection message.
FAQs
Redis plugin for Haraka & other plugins to inherit from
We found that haraka-plugin-redis demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.