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

Reply via email to