hubot-pubsub

PubSub notification system for Hubot

npm install hubot-pubsub
6 downloads in the last week
22 downloads in the last month

hubot-pubsub

PubSub notification system for Hubot

Build Status

hubot-pubsub demo

Possibilities

hubot-pubsub allows you to build a simple, yet powerful monitoring / notification system using your corporate chat (Campfire, HipChat, IRC, Jabber / XMPP or even Skype). Simply subscribe events in appropriate chat rooms and publish info about these events via HTTP calls when they happen.

Installing

Add dependency to package.json:

$ npm install --save hubot-pubsub

Include package in Hubot's external-scripts.json:

["hubot-pubsub"]

Configuration

HUBOT_SUBSCRIPTIONS_PASSWORD   # Optional password for protecting HTTP API calls

Commands

hubot subscribe <event>        # subscribes current room to event
hubot unsubscribe <event>      # unsubscribes current room from event
hubot unsubscribe all events   # unsubscribes current room from all events
hubot subscriptions            # show subscriptions of current room
hubot all subscriptions        # show all existing subscriptions
hubot publish <event> <data>   # triggers event

HTTP API

GET /publish

GET /publish?event=<event>&data=<text>[&password=<password>]

POST /publish

POST /publish
  • Content-Type: application/json
  • Body: { "password": "optional", "event": "event", "data": "text" }

Event Namespaces

Hubot PubSub uses . as event namespace separator. I.e.: subscribing to x.y also subscribes to x.y.* events.

Publishing events from other scripts

Emit pubsub:publish event from any other Hubot script to publish something via hubot-pubsub:

robot.emit 'pubsub:publish', 'news', 'Publishing some news from another script'

Handling unsubscribed events

Do hubot subscribe unsubscribed.event in a room where you want all unrouted events to get announced.

Issues

  • HTTP password based security is weak - don't use it in public network to publish events with sensitive data
npm loves you