Every module names its endpoints, and every route names the one it serves #139

Merged
mesh-admin merged 1 commits from feat/modules-name-their-endpoints into main 2026-09-29 09:51:57 +00:00
Contributor

ADR 0138, in the catalogue. 75 endpoints across 50 modules now have names, and 35 route contributions
name the endpoint they serve instead of repeating its port.

Named from what each one is for rather than by a rule:

  • mail's seven protocol ports are smtp, pop3, imap, smtps, submission, imaps, pop3s,
    beside its web, web-tls and autoconfig
  • unifi's nine are web, inform, stun, discovery, discovery-l2, portal, portal-tls,
    speedtest and syslog
  • minio's two are s3 and console; the resolver's two are dns-udp and dns-tcp; the proxy's are
    http and https; the forge's are web and ssh
  • plex's single one is stream, which is the endpoint clients dial directly

Checked before writing any of it: an unknown manifest key is refused, so a catalogue using name
against a control plane that does not know the word would stop resolving. The words shipped a release
ahead in mesh-controller #138 and #139, and the control plane running right now is built from that
merge commit — verified, not assumed.

And checked after: all 72 manifests parse through the control plane's own ParseManifest, 75 named
endpoints and 33 routed endpoints resolve by name, no route names a bare port, none names both, and the
one naming neither is gitea's path-level deny rule — a rule about a name rather than an endpoint, which
is correct. The test that does this is in mesh-controller and runs against a catalogue checkout, so it
stays useful rather than being a one-off script.

ADR 0138, in the catalogue. 75 endpoints across 50 modules now have names, and 35 route contributions name the endpoint they serve instead of repeating its port. Named from what each one is for rather than by a rule: - mail's seven protocol ports are `smtp`, `pop3`, `imap`, `smtps`, `submission`, `imaps`, `pop3s`, beside its `web`, `web-tls` and `autoconfig` - unifi's nine are `web`, `inform`, `stun`, `discovery`, `discovery-l2`, `portal`, `portal-tls`, `speedtest` and `syslog` - minio's two are `s3` and `console`; the resolver's two are `dns-udp` and `dns-tcp`; the proxy's are `http` and `https`; the forge's are `web` and `ssh` - plex's single one is `stream`, which is the endpoint clients dial directly **Checked before writing any of it:** an unknown manifest key is refused, so a catalogue using `name` against a control plane that does not know the word would stop resolving. The words shipped a release ahead in mesh-controller #138 and #139, and the control plane running right now is built from that merge commit — verified, not assumed. **And checked after:** all 72 manifests parse through the control plane's own `ParseManifest`, 75 named endpoints and 33 routed endpoints resolve by name, no route names a bare port, none names both, and the one naming neither is gitea's path-level deny rule — a rule about a name rather than an endpoint, which is correct. The test that does this is in mesh-controller and runs against a catalogue checkout, so it stays useful rather than being a one-off script.
mesh-admin added 1 commit 2026-09-29 09:51:56 +00:00
75 endpoints across 50 modules, named from what each one is for rather than by a
rule: mail's seven protocol ports are smtp, imaps, submission and the rest; unifi's
nine are inform, stun, discovery, the two portal ports and syslog; minio's two are
s3 and console; the resolver's two are dns-udp and dns-tcp.

And 35 route contributions name the endpoint they serve instead of repeating its
port. A route and a listen both carried a port and nothing said they were the same
thing; now one of them does. gitea's path-level deny rule names neither, because it
is a rule about a name rather than an endpoint.

novox/hq ADR 0138. The words shipped a release ahead in mesh-controller #138 and
#139, and the control plane running today is built from that merge — checked before
this was written, because an unknown manifest key is refused and a catalogue using
one against an older control plane would stop resolving.
mesh-admin merged commit 0c31499fb0 into main 2026-09-29 09:51:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#139