Chatterbox is a chat message router, it allows your infrastructure to post messages to topics and have them delivered to subscribers across multiple chat platforms such as Campfire, Slack or IRC.
-
Authentication Systems
- GitHub SHA1 HMAC for webhooks
- For everything else, something signature oriented rather than a transmitted shared secret (aka Basic Auth)
- asymmetric key-pair preferred over shared secret (aka HMAC)?
- https://tools.ietf.org/html/draft-cavage-http-signatures-05?
-
Don't fall into the trap of trusting the given algorithm key per https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
The section on verifying actually proposes you use the given algorithm. Instead the
keyIdfield should functionally determine the algorithm to use.I'm torn on whether the
algorithmfield should even exist, I like it because it self-describes what the signature is, but I dislike it because it is too likely an implementer will trust the field's value.
-
-
Define serialisation formats -> Message decodings
- text/plain
- application/json
- text/html
- GitHub WebHook
-
hworker implementation
-
subscription management
- HTTP API
- database storage
- auto-expiring subscription of an adapter to a topic
-
run expire job periodically
-
database migrate executable
-
chat adapters
- campfire
- slack
- irc
-
chatterbox-say
- command line client to the server side API