Skip to main content

Client library for the Rubin Observatory Squarebot

Project description

Squarebot

Squarebot is the nexus service for ChatOps and event-driven bots for Rubin Observatory. As a Slack app, Squarebot receives events from Slack and publishes them into specific Square Events Kafka topics in the Roundtable Kubernetes cluster. Other applications on Roundtable can consume these events and act on them, such as by posting messages back to Slack or by performing some other background automation.

flowchart LR
    subgraph Slack
    message[Slack message]
    interaction[Slack interaction]
    end
    subgraph sqrbot ["Squarebot"]
    eventapi["/slack/event"]
    interactionapi["/slack/interaction"]
    message -->|HTTP POST| eventapi
    interaction -->|HTTP POST| interactionapi
    end
    subgraph kafka ["Kafka Topics"]
    topicmention["lsst.square-events.squarebot.slack.app.mention"]
    topicchannel["lsst.square-events.squarebot.slack.message.channel"]
    topicgroup["lsst.square-events.squarebot.slack.message.group"]
    topicim["lsst.square-events.squarebot.slack.message.im"]
    topicmpim["lsst.square-events.squarebot.slack.message.mpim"]
    topicinteraction["lsst.square-events.squarebot.slack.interaction"]
    end
    eventapi --> topicmention
    eventapi --> topicchannel
    eventapi --> topicgroup
    eventapi --> topicim
    eventapi --> topicmpim
    interactionapi --> topicinteraction
    subgraph backends ["Backends"]
    backend1["Backend 1"]
    backend2["Backend 2"]
    end
    topicchannel --> backend1
    topicgroup --> backend1
    topicmention --> backend2
    topicinteraction --> backend2

Slack integration is implemented at the time. We plan to add support for other event sources, such as GitHub, in the future.

Squarebot is built on top of FastAPI, a modern Python web framework, with Rubin/SQuaRE libraries Safir (FastAPI application libraries) and Kafkit (Kafka integration).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rubin-squarebot-0.7.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

rubin_squarebot-0.7.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file rubin-squarebot-0.7.0.tar.gz.

File metadata

  • Download URL: rubin-squarebot-0.7.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for rubin-squarebot-0.7.0.tar.gz
Algorithm Hash digest
SHA256 2f0b398ed475a91c2803ae5e8343e28d6712ec5474ff0bde17f138735ee85741
MD5 54399f8b75c907259f2a4018352fec5f
BLAKE2b-256 0d5329ee91f84eb71c3a766a8dd3780debbe4f1cb85f43edbc87fa510003bf6e

See more details on using hashes here.

File details

Details for the file rubin_squarebot-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rubin_squarebot-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8de5bd50271b4c8c6f0145c4b56504f1d788cae575ffda754dbf5c4ed5ee76f7
MD5 bfcfae2794906a61ff2bf688b61791a8
BLAKE2b-256 1b45f2a152b30a2b220e3f159944914016b4e864bf87767eb11f8b8e21fcb6f3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page