feat(ui-react): allow Domain on web endpoint without enabling TLS#6323
Merged
Merged
Conversation
|
Claude finished @gustavosbarreto's task in 6m 38s —— View job Code Review CompleteReviewed 1 file across code quality, security, testing, TypeScript/React patterns, and architecture (including cross-repo impact against the cloud backend) — no issues found. The code looks good as-is. Key observations from the review:
To request another review round, comment |
354c332 to
745a842
Compare
Member
Author
|
/review |
|
Claude finished @gustavosbarreto's task in 5m 56s —— View job Code Review CompleteReviewed 1 file across code quality, security, testing, TypeScript/React patterns, and architecture (including cross-repo impact against the cloud backend) — no issues found. The code looks good as-is. Key observations from the review:
To request another review round, comment |
The Domain input was hidden unless the TLS toggle was on, and the create payload only included the tls object when tls.enabled was true. After #6321 the backend uses tls.domain as a Host override even when TLS-to-backend is disabled, which is what users need to reach apps that validate Host or auto-redirect to a canonical hostname over plain HTTP. Changes: - Domain field is always visible. Required only when TLS is on. - FQDN validation runs whenever Domain is filled, regardless of TLS state. - Payload always includes the tls object when either TLS is on or Domain is non-empty, so the backend receives the host hint. - Labels and hints clarify the dual role: * "Use TLS to backend" toggle controls only the proxy-to-backend leg; the public URL is always HTTPS. * Domain is described as the Host override, becoming SNI when TLS is enabled. Refs #6322
745a842 to
c8e791b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #6322.
What
Decouples the hostname field in the React Web Endpoint create drawer from the TLS toggle, renames it to
Service hostnameto drop the ambiguousDomainlabel that suggested a public URL, and aligns the surrounding microcopy. The create payload now sends thetlsobject whenever either the toggle is on or a hostname is set.Why
The backend now treats
tls.domainas aHostoverride even whentls.enabledisfalse(see #6321). This is the configuration users need to reach plain-HTTP services on a device that validateHostor auto-redirect to a canonical hostname. The previous UI gated the field on the TLS toggle and stripped it from the payload, so that combination was unreachable from the console.The original
Domainlabel also led to a recurring misunderstanding where the field was filled with the user's internal hostname under the assumption that it controlled the public endpoint URL.Changes
tls.domainis required in that case.tlswhentlsEnabled || hostname != "".tls.enabledcarries the actual toggle value.TLSmatches the badge shown on existing endpoints (TLS) and the empty-state card (Device-side TLS).Service on the device uses HTTPS, with a hint clarifying the toggle controls only the proxy-to-service leg, not the public URL scheme.Service hostnamewith a hint describing both roles (Host header override; SNI when the service uses HTTPS).Enter a valid hostname (e.g. app.example.com).Out of scope
The legacy Vue UI under
ui/has the same gating issue but is being phased out and is not addressed here.Related