Peering card: make the peer URL editable in place (like the allow-lists) #235

Closed
opened 2026-08-14 17:17:51 +00:00 by Cordy · 1 comment
Owner

Found during the 2026-08-14 A↔B dogfood.

The relationship card (#150) lets you edit the send/receive allow-lists in place and pause/resume a peer (#176), but the peer's URL and key are immutable. That coupling made sense for the key (changing it is a real re-exchange), but the URL is not a credential — and today, correcting a wrong or changed peer URL forces Remove + re-register, which drags the key with it: the one-time inbound key must be re-issued on the other side and re-pasted. A simple typo or an address change (e.g. switching a peer from the HTTPS domain to a LAN IP) becomes a full re-key.

Proposal: allow editing the URL in place on the card, the same inline-edit pattern as the allow-lists, PATCHing just url via the existing PATCH /api/v1/admin/peering/peers/{name} (add a url field to the partial-update handler). Key stays untouched. Validate the new URL with the same rules as registration (absolute http(s); http only for private hosts).

Low-risk, removes a sharp edge. Not urgent, but it's the kind of thing that bites during real peering setup — as it just did.

Refs: #150, #176.

Found during the 2026-08-14 A↔B dogfood. The relationship card (#150) lets you edit the send/receive allow-lists in place and pause/resume a peer (#176), but the peer's **URL and key are immutable**. That coupling made sense for the *key* (changing it is a real re-exchange), but the **URL is not a credential** — and today, correcting a wrong or changed peer URL forces **Remove + re-register**, which drags the key with it: the one-time inbound key must be re-issued on the other side and re-pasted. A simple typo or an address change (e.g. switching a peer from the HTTPS domain to a LAN IP) becomes a full re-key. Proposal: allow editing the URL in place on the card, the same inline-edit pattern as the allow-lists, PATCHing just `url` via the existing `PATCH /api/v1/admin/peering/peers/{name}` (add a `url` field to the partial-update handler). Key stays untouched. Validate the new URL with the same rules as registration (absolute http(s); http only for private hosts). Low-risk, removes a sharp edge. Not urgent, but it's the kind of thing that bites during real peering setup — as it just did. Refs: #150, #176.
Cordy closed this issue 2026-08-15 14:18:20 +00:00
Author
Owner

Shipped in v0.6.24 (PR #240, merged). The peer relationship card now has an Edit URL affordance in the card head: it swaps the URL span for an input + Save/Cancel and PATCHes just url on the standing peer. The URL is validated exactly as registration (absolute http(s); http only for private hosts) and the key is left untouched.

Live on both dogfood instances (cairn-enc + cairn-openbao) on 192.168.10.245/cordy/cairn:v0.6.24@sha256:fc5dc698…, both pods 1/1. Closing.

Shipped in v0.6.24 (PR #240, merged). The peer relationship card now has an **Edit URL** affordance in the card head: it swaps the URL span for an input + Save/Cancel and PATCHes just `url` on the standing peer. The URL is validated exactly as registration (absolute http(s); http only for private hosts) and the key is left untouched. Live on both dogfood instances (cairn-enc + cairn-openbao) on `192.168.10.245/cordy/cairn:v0.6.24@sha256:fc5dc698…`, both pods 1/1. Closing.
Sign in to join this conversation.
No labels
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: Cordy/Cairn#235
No description provided.