I see the issue, but I'm not sure it means the SPA architecture itself is wrong.
My understanding is that Polaris Console was never positioned as a multi-tenant web application. It is closer to a standalone client application that happens to run in a browser and is configured to talk to a specific Polaris endpoint. In that model, having the browser call the configured Polaris REST API directly seems consistent with the current design. The problem seems more like a mismatch in local debugging configuration. If VITE_POLARIS_API_URL is set to an in-cluster DNS name such as http://polaris:8181, it will only work for clients that can resolve and reach that address. A browser running outside the cluster through a console port-forward cannot do that. I think we can improve the developer experience with clearer documentation, better examples for port-forward workflows. However, I do not think this issue alone suggests that Polaris Console should move away from the SPA model. Yufei On Mon, Jun 1, 2026 at 9:08 PM Yong Zheng <[email protected]> wrote: > Hi everyone, > > While poking around polaris console during the weekend, I have both the > Polaris server and Polaris console deployed in the same k8s namespace (in > this case, polaris). The console nginx serves the SPA to the browser, and > VITE_POLARIS_API_URL is set to http://polaris:8181 (the in-cluster > service DNS name). > > When accessing via kubectl port-forward svc/polaris-console 8080:80: > > 1. Browser loads the SPA from localhost:8080 (port-forward to console pod) > 2. JS executes in the browser and calls VITE_POLARIS_API_URL (defaults to > http://polaris:8181) > 3. Browser resolves polaris using the client machine's DNS, not in-cluster > DNS (fails with net::ERR_NAME_NOT_RESOLVED when debugging from browser as I > am not seeing any logs on the console and no incoming requests to the > polaris pod) > 4. The error surfaces as "Network Error" in the UI with no server-side logs > > The port-forward tunnel only covers traffic to its own port (8080). The > API requests are independent HTTP calls from the browser that bypass the > tunnel entirely. The console nginx is just a static file server and never > sees these requests, thus no logs from the console pod. > > Not sure if this is just me, but this UX feels odd. Wondering if the > community thinks a pure SPA is the right call here, or if there's a better > approach. > > Thanks, > Yong Zheng >
