| name | webui-connection-info |
| description | Find WebUI dev server address and Backend.AI API endpoint/credentials for testing. Trigger on: "which server", "connection info", "login credentials", "dev server URL", "API endpoint", "where to connect", "how to login", "test server", or when needing to interact with the running WebUI (screenshots, live checks, E2E).
|
WebUI Connection Info
Dev Server Address
The WebUI dev server runs under Portless on a *.localhost:1355 URL.
scripts/dev.mjs picks the subdomain from the current git branch:
- Branch contains an
FR-XXXX token → http://fr-XXXX.localhost:1355 (e.g. 04-24-feat_fr-2701_... → fr-2701.localhost).
- Otherwise →
<branch>.<project>.localhost:1355 (Portless's default run form).
Never assume port 1355: when another Portless daemon is already bound there (another Claude session / worktree), the server lands on 1356, 1357, … — always confirm the real port from one of the sources below.
To find the actual URL for a running instance, check these sources in order:
- The team dev-server registry (fw plugin
dev-server-registry skill, when installed) — the richest source: its query <PR> op scans the merged shards (registry/boxes/*.json in lablup/frontend-board) and returns, per server, the dev URL with the real port, the branch/PR/Jira key it serves, the backend endpoint + login it was booted with, and which box runs it. The team board (each member's own local app at http://localhost:7777, ?pr=<N> deep links) renders the same data. Registry entries carry per-session metadata that portless list lacks — prefer them when both exist, and cross-check that the entry's branch/PR matches what you're testing (an entry may be stale until its box re-registers).
portless list — live routes on this box.
- The
pnpm run dev terminal output — Portless prints the full URL on startup.
If no dev server is running, tell the user to start it with pnpm run dev (requires Portless: npm install -g portless).
API Endpoint & Credentials
Two sources, in order:
- The dev-server registry entry (source 1 above), when this box or a teammate's box registered the server: its
backend.endpoint and backend.login are exactly what the running dev server was booted against — no guessing.
- Read
e2e/envs/.env.playwright to get the current server endpoint and login credentials.
Key variables:
E2E_WEBSERVER_ENDPOINT — Backend.AI API server URL
E2E_ADMIN_EMAIL / E2E_ADMIN_PASSWORD — admin account
E2E_USER_EMAIL / E2E_USER_PASSWORD — regular user account
- Additional:
E2E_USER2_*, E2E_MONITOR_*, E2E_DOMAIN_ADMIN_*
Always read the file fresh — credentials and endpoints change. Do not hardcode or cache them.
Login Flow
The WebUI login page requires:
- Email/Username
- Password
- Endpoint (may be hidden under "Advanced" toggle)
The app uses config.toml with connectionMode = "SESSION". If apiEndpoint is empty, the user must enter the endpoint manually on the login page.
Gotchas
- The
.env.playwright file may have multiple endpoints commented out (e.g., LTS vs main). Use the uncommented E2E_WEBSERVER_ENDPOINT.
- Passwords may contain special characters — handle quoting carefully.
- The webpack-dev-server overlay can intercept clicks. Remove it via:
document.getElementById('webpack-dev-server-client-overlay')?.remove()
- If the "Endpoint" input field is not visible on the login page, click "Advanced" to expand it.