Steampipe as Mastodon middleware?


Convener: Jon Udell


  • Bob Wyman
  • Lucas Gonze
  • Davide Eynard
  • Matt Terenzio
  • ???

Demo: https://jonudell.info/video/fediforum.mp4

Blog post: https://steampipe.io/blog/mastodon: Details on things shown in the demo, and rationale for “fediverse middleware”


Q: What would fediverse middleware do?

A: 1. Encapsulate data-wrangling heavy-lifting so apps need not reinvent those wheels and can instead focus on differentiating into various UXs fit for various purposes. 2. Provide common services that enable apps to implement (and users to customize) policies that govern how timelines are presented.

Q: Does Steampipe remember query results?

A: Only in cache, by default for 5 min. It’s Postgres so persistent tables can be built and updated, that isn’t happening now with the dashboards.

Q: Is it OK to persist query results?

A: Seems like for personal use – I just want to recall what I read and who said what in my home timeline and lists – it should be. Nevertheless, some kind of rights expression language – CC, ODRL, etc – seems like a good idea.

Q: How would one integrate with Steampipe?

A: It’s Postgres, so language or tool or dashboard that can connect to Postgres can tap into Steampipe’s SQL-oriented API access; there’s also a REST API to cloud.steampipe.io. Steampipe itself is a Unixy component that runs everywhere: locally, in a container, in a GitHub Action, in EC2 or Fargate or etc.

Q: What about all the other (non-Mastodon) APIs?

A: All are potentially available to enrich Mastodon queries. The demo shows how queries against the primary Mastodon API, using the Mastodon plugin, can compose with queries against Mastodon’s “auxiliary API” (via the RSS plugin), using a SQL join between the two plugins.