The region is a two-value allow-list the server resolves to an API host, but it rendered as a free-text field: only PostHog is special-cased in the API-key dialog, everything else falls through to a generic Field. Typing "EU1" — the region Segment's own UI shows for the EU workspace — passed the non-empty check, then failed the mutation, and the dialog's generic error blamed the API key. It is a select now, so the label no longer has to spell the accepted values out. An invite that has already been accepted can still be listed, and the member and the invite were keyed differently (user ID vs email), so the same person surfaced as two rows — one active with roles, one inactive without. Invites for an email already seen among members are dropped. Per-user permission errors now name the user, and the probe URL builds its query with url.Values rather than a hand-written string. The region-to-host mapping is the only API-key setting that derives a value instead of storing input verbatim, and it had no test; a typo in either host would only have surfaced as a live 404. Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
3.3 KiB
3.3 KiB