Repository navigation
v2.3.2
Changelog
- 060d2ee Bump distroless/static-debian13 in /deploy/docker (#12)
- e58f7c7 Bump distroless/static-debian13 in /deploy/docker (#20)
- 3d251f3 Bump github.com/BurntSushi/toml (#13)
- 53e4691 Bump the go-minor-and-patch group across 1 directory with 2 updates (#18)
- a7df1d8 Bump the web group in /web with 4 updates, TypeScript staying on 6 (#19)
- f14dbdf Firestore: a laptop's document is updated in a transaction, which retries a write Firestore aborts (#21)
- a95daa9 Hardening: kept messages per person, delivered only from the recipient, and web advisories (#16)
- 5f9f52b Tests: roster callbacks set under the lock the roster loop hands them under (#17)
Hardening, from a security review of the whole project. A hub keeps a message for an offline person under that person and the message's id, and only the recipient's laptops can say it was delivered. Before, a laptop that knew another message's id could replace what waited for someone, or mark it delivered. Ids are random and only a message's sender and recipient see them, so this needed one of them. SQLite and Postgres hubs migrate their table once as they start. Firestore hubs need nothing, but messages they kept before the upgrade can be delivered again until they expire.
On Firestore, a laptop's document is now updated in a transaction, so a write that Firestore aborts when several instances write at once is retried instead of failing.
Updated dependencies: Firestore client 1.29.0, SQLite 1.61.0, TOML 1.6.0, a refreshed distroless base image, and Astro 7.4.2 for the web pages, whose build tools also move past the advisories in undici and fast-uri. Those build tools never ship in the hub.
Hub image
ghcr.io/eledoneai/murmur-hub:2.3.2 carries the laptop binaries of this release. Deploy it and
every laptop connected to the hub follows. See docs/self-hosting.md.
ghcr.io/eledoneai/murmur-hub:2.3.2-litestream is the same with Litestream: see deploy/litestream.