Skip to content

v0.3.0

Choose a tag to compare

@Yoshiofthewire Yoshiofthewire released this 25 Aug 16:12
3c65a31

The first published release of KyPost-Server.

Everything before this was built from source. From this release on there is a
published image, an immutable version tag, and a documented upgrade path:

docker compose pull && docker compose up -d

or ./scripts/update-host.sh, which records the running image's digest, verifies
the new image's build attestation before switching, and restores the recorded
digest if the post-update health check fails.

The image is ghcr.io/busness-app/kypost-server:0.3.0, built and attested by
release-image.yml. :stable moves to it
only after that attestation has been published and verified.

Highlights

  • The pairing QR publishes a certificate pin. Pairing is the one call that
    carries the pairing token, the push endpoint and the WebPush keys together, and
    it previously sent all of it inside a trust-on-first-use window. Clients that
    do not understand the pin parameter are unaffected — it is optional and
    additive, and its absence means the same trust-on-first-use as before.
  • Servers self-register with the push relay. Set PUSH_RELAY_URL and the
    server mints its own per-server key on first start and persists it. No Firebase
    account, no Apple Developer account, and nothing to ask an operator for.
  • App Pull delivery bypasses the relay entirely, for anyone who would
    rather no notification metadata left their server.

See CHANGELOG.md for the full list, and
docs/PLATFORM_BASELINE.md for what a client must
implement to work against this server.

Upgrading

Schema changes are additive and applied on open, so starting 0.3.0 against an
existing state.db adds what it needs and changes nothing else. Rolling back the
container does not roll back the data — see the upgrade table in the changelog.