Skip to content

Latest commit

 

History

History
117 lines (80 loc) · 3.13 KB

README.md

File metadata and controls

117 lines (80 loc) · 3.13 KB

Status

Set statuses onto any service from anywhere!

This Version -
Next Version 0.1.0

Getting Started

Install status using go get:

go get github.com/carlosonunez/[email protected]

Then start status with a configuration file describing the events to listen to and how to turn them into statuses:

status -f /path/to/status.yaml

Inspiration

I generally have lots of things going on, but I hate leaving people waiting on me without telling them why. I'm also incredibly lazy and hate setting status messages on 80 billion Slack workspaces, Teams tenants, social media accounts, and such.

I built Slack Status Bot as a rudimentary approach to posting Slack status messages from TripIt (since I travelled all the time when I wrote it). Since this was pinned to a single Slack tenant, this obviously didn't scale.

I wanted something that would let me set statuses onto any platform from any source with as little code as possible. This is that thing!

Design Goals

  • Create status messages from events created by any registered source,
  • Allow arbitrary, destination-aware transformations to statuses,
  • Post status messages onto any destination regardless of the "language" they speak (HTTP, gRPC, WebSockets, SOAP, etc.)
  • Be UNIX-y (be good at reading, transforming, and sending statuses; let each source and receiver handle things like authentication, client construction, etc.)

Configuration File

See the reference to learn how to configure Status.

Writing your own Status sources

⚠️ This section is still a work in progress.

Writing your own Status receivers

⚠️ This section is still a work in progress.

Contributing

  • Create an issue describing the problem that you're looking to solve or feature you're looking to implement.
  • Fork this repository
  • If you're implementing a new feature, add an end-to-end test describing how its supposed to work and not work.
  • Make sure that tests are passing with make test
  • Create a pull request and link it to the issue that you created!

Roadmap

v0.1

System Design

  • Pluggable abstract pub-sub implementation, configurable from a config file
  • Pluggable receivers
  • Acting on statuses sent to receives through pub-sub
  • Transformer interface
  • Transforming event messages into statuses through transformers
  • Pluggable sources
  • Sending events to pub/sub from sources
  • Rendering configs from YAML

Pub/Subs

  • In-Memory PubSub

v1.0

Sources

  • TripIt
  • Google Calendar

Receivers

  • Slack

v1.1

Pub/Subs

  • AWS SNS + SQS