Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/swarm-matrix-client
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 48067d07e8 matrix: drop the per-hive appservice and its unused token
Every hive's homeserver loaded a per-hive `hyperhive` appservice
registration, and the swarm minted and delivered an as_token for it
through bao. No client presented that token: swarm-controller creates
every `@hive-<hive>` sender and every agent account with the swarm
appservice token (hive_sender.rs, agent_token.rs), and no Rust code read
the per-hive one.

Removed, with everything that existed only to serve it:
- hive-matrix.nix: the `hyperhive` registration, its activation-time
  render, the host bind mount of /var/lib/hyperhive/matrix-appservice,
  its LoadCredential entry, and the internal options
  `deploy.matrix.appserviceTokenFile` / `appserviceRegistrationScript`.
  tuwunel now loads only the swarm registration.
- glue-matrix-bao-token.nix and its `swarm-bao-matrix-token` unit.
- glue-bao-tls.nix: the matrix-token leaf and its defaults.
- swarm-bao.nix: the `swarm-matrix-token-<hive>` roles and policies
  (`swarm-bao-matrix-token-policy`), and the options
  `deploy.bao.matrixTokenClient{Cert,Key}File` and
  `matrixTokenCommonNamePrefix`, now mkRemovedOptionModule.
- swarm-secret-publisher.nix: the per-hive token mint and its state dir.
- swarm.nix: the reserved `<matrixTokenCommonNamePrefix>-<hive>` CN.
- swarm-secret-client: `matrix::appservice_token_path`.

The swarm registration (swarm-matrix-ctl, swarm-controller) is untouched.
Comments and docs that pointed at the removed glue file now point at
glue-queue-agent-credential.nix, which has the same reader shape.

Refs #4428
2026-10-05 07:48:17 +02:00
..
src matrix: drop the per-hive appservice and its unused token 2026-10-05 07:48:17 +02:00
Cargo.toml swarm-matrix-ctl: mint the swarm's own appservice registration 2026-09-25 08:31:01 +02:00
README.md swarm-matrix-ctl: mint the swarm's own appservice registration 2026-09-25 08:31:01 +02:00

swarm-matrix-client

The appservice calls against the swarm's homeserver, shared by the two binaries that make them: swarm-matrix-ctl (inside the matrix container, for a hive's sender account) and swarm-controller (for each agent's account, with the swarm's own appservice token).

Three calls, all client-server API: register an account as the appservice, log in to an existing one as the appservice, and ask a token who it is. Both mints pin the device id hyperhive-<localpart>, so a second login replaces that device's token instead of adding a device.

🩸 A secret is a path, never a value

Every error here is built from the response's status and its errcode, never its body: a successful /register or /login body is an access token, and an error body is one malformed response away from being the same bytes.