The GitHub Actions job "Required Checks" on texera.git/main has succeeded. Run started by GitHub user github-merge-queue[bot] (triggered by github-merge-queue[bot]).
Head commit for run: df8f133b24fb932d207bb8b853fdaa14dd984b9f / Xuan Gu <[email protected]> fix(pve): serve PVE requests under /api/pve and drop per-gateway rewrites (#6130) ### What changes were proposed in this PR? The single-node NGINX gateway (`bin/single-node/nginx.conf`) had no route for the Python Virtual Environment (PVE) REST calls, so they fell through to the catch-all `location /` and returned 404 from `dashboard-service`. In the UI this surfaces as a *"Could not load Python virtual environments"* popup on every Python UDF operator selection. The root cause is that the frontend requested `/pve/...` while the backend (`PveResource`, `@Path("/pve")`, Jersey mounted under `/api/*` on the coordinator) serves `/api/pve/...`, so every gateway had to carry its own `/pve` to `/api/pve` rewrite rule, and the single-node config was missing one. Per review feedback, instead of adding the missing rewrite, this PR removes the mismatch at the source: the frontend now builds PVE URLs with `AppSettings.getApiEndpoint()` and requests `/api/pve/...` directly. Every routing layer then becomes a plain routing entry with no path rewriting: - `bin/single-node/nginx.conf`: `location /api/pve/` passes through to the coordinator - `frontend/proxy.config.json`: `/api/pve` entry (ordered before `/api`), `pathRewrite` removed - `bin/k8s/templates/base/gateway/gateway-routes.yaml`: `/api/pve` joins the existing dynamic-backend match list, the `URLRewrite` filter is removed The backend is unchanged. Net effect: the 404 is fixed, and the per-gateway rewrite special-casing that allowed the three configs to drift apart is gone. ### Any related issues, documentation, discussions? Related to #5963 (PVE single-node configuration). ### How was this PR tested? - `virtual-environment.service.spec.ts` passes with the new URLs (5 specs). - On the single-node Docker stack: `GET /api/pve/pves?cuid=1` returns 200 JSON from the coordinator, and the old `/pve` path falls through to the dashboard as expected. - `helm template` renders the updated k8s route with the `URLRewrite` filter removed. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.8, Claude Fable 5) --------- Co-authored-by: Claude Fable 5 <[email protected]> Report URL: https://github.com/apache/texera/actions/runs/29181175092 With regards, GitHub Actions via GitBox
