Files
EventHubSpec/STAGE-BROWSER.md

91 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Stage UI в Cursor Browser
Stage уже доступен по **публичному DNS с валидным TLS** (Let's Encrypt). Агенты и ручной просмотр **по умолчанию** ходят **напрямую по HTTPS** — без локального `:8787` proxy.
Локальный alias-proxy — **только fallback**, если Cursor/Chromium не резолвит hostname stage (не из‑за сертификата).
Публичные URL стенда также зафиксированы в `EventHubDevOps/docs/STANDS.md` (раздел stage).
## Канон (прямые HTTPS)
| URL | Сервис |
|-----|--------|
| `https://stage.calentiq.com/` | client-ui |
| `https://admin.stage.calentiq.com/` | admin-ui |
| `https://api.stage.calentiq.com` | eventhub API |
| `https://ws.stage.calentiq.com` | WebSocket |
| `https://admin-api.stage.calentiq.com` | admin API |
| `https://calentiq.com` | 301 → `stage.calentiq.com` |
Для агентского Cursor Browser обычно достаточно:
- Client: `https://stage.calentiq.com/login`
- Admin: `https://admin.stage.calentiq.com/`
Client/admin SPA ходят в API **same-origin** через nginx (`/v1/`, `/ws`).
Внутренний QA (`*.stage.eventhub.local`) по-прежнему есть; для браузера агента **предпочтительны** публичные `*.calentiq.com` выше.
## Auth / учётки
- Smoke: `~/.cursor/secrets/eventhub-stage.env` (`SMOKE_USER_*`).
- IFT e2e: только `~/.cursor/secrets/eventhub-ift.env` (не подмешивать stage).
- Не коммитить пароли/токены из smoke env.
## Fallback: локальный alias-proxy
Использовать **только** если прямое открытие `https://stage.calentiq.com/` (или admin) в Cursor Browser не работает из‑за **DNS / резолва hostname** (например Chromium и `*.local`). Не поднимать proxy «на всякий случай» и не из‑за TLS — публичный cert валиден.
| Открывать в браузере | Upstream |
|----------------------|----------|
| `http://ui.stage.eventhub.test:8787` | `https://ui.stage.eventhub.local` → stage IP |
### Hosts (только для fallback)
В `C:\Windows\System32\drivers\etc\hosts` (WSL `/etc/hosts` не помогает Cursor на Windows):
```text
127.0.0.1 ui.stage.eventhub.test
```
### Прокси
Скрипт: [`scripts/stage-browser-alias-proxy.mjs`](scripts/stage-browser-alias-proxy.mjs)
Копия: `~/.cursor/eventhub/stage-browser-alias-proxy.mjs` (если есть — можно любой).
**Важно:** процесс должен слушать на **Windows** `127.0.0.1:8787` (Node из Windows). Прокси только в WSL Cursor с Windows часто не достучится.
```powershell
Start-Process -FilePath "C:\Program Files\nodejs\node.exe" `
-ArgumentList "$env:USERPROFILE\.cursor\eventhub\stage-browser-alias-proxy.mjs" `
-WindowStyle Hidden
```
Или из корня EventHubSpec:
```powershell
Start-Process -FilePath "C:\Program Files\nodejs\node.exe" `
-ArgumentList (Resolve-Path ".\scripts\stage-browser-alias-proxy.mjs") `
-WindowStyle Hidden
```
Проверка fallback: `http://ui.stage.eventhub.test:8787/login`.
| Env | Default |
|-----|---------|
| `ALIAS_LISTEN_HOST` | `127.0.0.1` |
| `ALIAS_LISTEN_PORT` | `8787` |
| `STAGE_IP` | `195.208.119.190` |
| `STAGE_UI_HOST` | `ui.stage.eventhub.local` |
| `ALIAS_HOST` | `ui.stage.eventhub.test` |
Прокси **не** подставляет пользователя: только Host/SNI rewrite на Traefik.
## Что не делать
- Не считать `:8787` / `ui.stage.eventhub.test` каноном — канон это `https://stage.calentiq.com` (и admin).
- Не поднимать proxy, пока не подтверждён сбой резолва прямого HTTPS.
- Не поднимать proxy только в WSL, если агентский браузер на Windows.
- Не коммитить пароли/токены из smoke env.