Publish the official plugin catalogue, with the helloworld plugin, switchable from Server settings #729

Closed
opened 2026-10-07 18:19:20 +00:00 by tiagoagueda · 0 comments
Owner

Postulo has had everything a catalogue needs (signed index, Ed25519 key, per-wheel checksum, an Official row) and nothing in it: the official row pointed nowhere and OFFICIAL_KEYS was empty, so nothing could ever be official.

What this adds

  • catalogue/official/: plugins.toml (the source), index.json and index.json.sig (what an instance fetches), listing only postulo-helloworld 0.3.0 for now.
  • scripts/official_catalogue.py build | sign | verify: the index is built from the wheels, so the checksum is the file's and not a typed one; the signature is Ed25519 over the exact bytes; verify runs what an instance runs.
  • provenance.OFFICIAL_URL / OFFICIAL_KEY, and OFFICIAL_KEYS holding the key, so a file whose checksum the official index signed is labelled Official.
  • Migration 0009: the official row learns the address and key and stays switched off. An administrator turns it on and off with the existing Switch on / Switch off button in Server settings > Plugins; nothing is fetched until then.

Key custody. The private key is in the project's vaultwarden as a secure note and in no repository; sign refuses any other key.

Hosting. Raw URL of main in this repository; the helloworld wheel is a Forgejo release asset of postulo-helloworld v0.3.0.

Postulo has had everything a catalogue needs (signed index, Ed25519 key, per-wheel checksum, an *Official* row) and nothing in it: the official row pointed nowhere and `OFFICIAL_KEYS` was empty, so nothing could ever be official. **What this adds** - `catalogue/official/`: `plugins.toml` (the source), `index.json` and `index.json.sig` (what an instance fetches), listing only `postulo-helloworld` 0.3.0 for now. - `scripts/official_catalogue.py build | sign | verify`: the index is built from the wheels, so the checksum is the file's and not a typed one; the signature is Ed25519 over the exact bytes; `verify` runs what an instance runs. - `provenance.OFFICIAL_URL` / `OFFICIAL_KEY`, and `OFFICIAL_KEYS` holding the key, so a file whose checksum the official index signed is labelled Official. - Migration 0009: the official row learns the address and key and **stays switched off**. An administrator turns it on and off with the existing *Switch on / Switch off* button in Server settings > Plugins; nothing is fetched until then. **Key custody.** The private key is in the project's vaultwarden as a secure note and in no repository; `sign` refuses any other key. **Hosting.** Raw URL of `main` in this repository; the helloworld wheel is a Forgejo release asset of postulo-helloworld v0.3.0.
tiagoagueda added this to the 0.5.0 milestone 2026-10-07 18:19:20 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#729
No description provided.