Repository navigation
Preserve Gateway route backend and parent identities in detail navigation - #2006
nadaverell wants to merge 2 commits into
Conversation
PR Summary by QodoPreserve Gateway route reference identities in detail navigation
AI Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can route each severity your way: inline, summary, both, or drop |
Route detail drawers currently coerce every backend into a core Service and every parent into a Gateway. A custom backend or mesh Service parent therefore opens the wrong resource. Preserve declared kind, API group and namespace, with Gateway API defaults applied only when fields are omitted.
Two small pure converters replace the duplicated reference builders in HTTPRoute, GRPCRoute, TCPRoute and TLSRoute. HTTP RequestMirror targets use the same backend conversion. Parent labels and failure messages say Parent, so a Service parent is not described as a Gateway. The existing discovery/navigation and resource-read authorization paths remain in use.
Scope: declared reference navigation in shared route drawers, including SDK consumers after their normal package update. Clicking a target is not proof that the Route is accepted or that a ReferenceGrant permits traffic. Existing unresolved-reference findings stay visible. Custom backend graph enrollment, network trace/dataplane support and UDPRoute support are separate follow-ups.
Validation: two helper tests and actual DOM click tests for all four route families pass, including custom groups, explicit namespaces, core Service parents and HTTP mirrors. Type checking, full frontend/embed/backend build and the complete shared UI suite pass (4155 tests, one skipped). All 13 actual browser destinations pass against pinned official Gateway API v1.4 CRDs, with zero page errors; one settled capture was inspected. No Gateway controller was installed and no dataplane claim is made. Prior-art kind-aware links informed the baseline; the official Gateway reference contract supplies the defaults.
Note
Low Risk
UI-only navigation and labeling in route drawers; no changes to auth, APIs, or cluster mutation paths.
Overview
Route detail drawers no longer force every parent to a
Gatewayand every backend to a coreService. Shared helpers ingateway-referencesbuildResourceRefvalues from Gateway API references—keeping declared kind, group, and namespace, with Gateway API defaults only when fields are omitted.HTTPRoute, GRPCRoute, and TCP/TLS (
SimpleRouteRenderer) now use those helpers for parent badges, backend badges, and (on HTTP) RequestMirror targets. Copy is generalized: Parents instead of Parent Gateways, and acceptance errors refer to Parent rather than Gateway.Unit tests cover the converters; a jsdom test exercises click navigation for all four route kinds, including custom backends and non-Gateway parents.
Reviewed by Cursor Bugbot for commit f5a5fe7. Bugbot is set up for automated code reviews on this repo. Configure here.