fix(web): validate IdP issuer URL inline in Client Settings (#1533) (#1534)

The Enterprise-Managed Authorization "Issuer" field accepted arbitrary
non-URL text and only failed at save time, surfacing a raw Zod issue array
in "Failed to save client settings" toasts.

- Inline field-level validation: the Issuer input shows a friendly error
  ("Must be an http(s) URL, like https://idp.example.com").
- canPersistClientSettingsDraft gates on issuer validity (deferring to
  validateClientSettings) so an invalid value is never sent to the backend.
- Extract isAbsoluteHttpUrl in core/client/config-parse so the Zod schema
  and the form share one http(s)-only URL rule.
- Harden the fallback save-error toast via formatClientConfigLoadError.

Closes #1533

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cliff Hall 2026-06-27 16:08:22 -04:00 • committed by GitHub
commit 1dc0c744cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2358,7 +2358,7 @@ function App() {
onError: (err) => {
notifications.show({
title: "Failed to save client settings",
message: err instanceof Error ? err.message : String(err),
message: formatClientConfigLoadError(err),
color: "red",
});
},