bullet-catcher
Restrict put on a gun server
This module will listen to in
and run your supplied validation function against all put
messages.
Usage
Install bullet-catcher
from npm
$ npm i bullet-catcher
Require bullet-catcher
in your gun server
const Gun = require('gun')// MUST be required after Gun to workrequire('bullet-catcher') // This is an example validation functionfunction hasValidToken (msg) { return msg && msg && msg.headers && msg.headers.token && msg.headers.token === 'thisIsTheTokenForReals'} const server = require('http').createServer(Gun.serve(__dirname)); // Pass the validation function as isValidconst gun = Gun({ file: 'data.json', web: server, isValid: hasValidToken}) // Sync everythinggun.on('out', {get: {'#': {'*': ''}}}) server.listen(8000)
On your client add a listener for outgoing messages and enrich them with whatever you want to validate for
Gun.on('opt', function (ctx) { if (ctx.once) { return } ctx.on('out', function (msg) { var to = this.to // Adds headers for put msg.headers = { token: 'thisIsTheTokenForReals' } to.next(msg) // pass to next middleware })})