**Language / Язык:** [English](../web-ui.md) | [Русский](web-ui.md)

# Web UI

Откройте [https://localhost/](https://localhost/) после `make up` (gateway) или
HTTPS URL, который печатает `make up-local`. Внутренний порт симулятора —
`8080`; лабораторный UI также доступен на этом хосте.

UI — это лабораторная консоль для симулятора **vSphere**, а не замена
vSphere Client. Она поддерживает светлую и тёмную темы, мажоры каталога
**6–9** (уровни vSphere 7–8.0U2), редактирование запроса/ответа, историю и
применение runtime-контракта.

## Скриншоты

### Главная консоль

![Главная консоль Web UI](../images/web-ui-main.png)

### Каталог API (мажоры 6–9)

![Каталог API с выбранным vSphere 8.0 U2](../images/web-ui-api-catalog.png)

### Браузер endpoint'ов

![Дерево endpoint'ов и пример ответа GET](../images/web-ui-endpoints.png)

### Запрос / ответ

![GET /api/vcenter/vm с фильтрами и ответом 200](../images/web-ui-request.png)

![Редактор параметров запроса](../images/web-ui-request-params.png)

### История

![Панель истории запросов](../images/web-ui-history.png)

### Аутентификация

![Вход в сессию (лабораторные учётные данные)](../images/web-ui-authentication.png)

### Данные / seed

![Demo cluster и управление seed](../images/web-ui-data.png)

### Окружение

![Сводка инвентаря окружения](../images/web-ui-environment.png)

### Справка — совместимость

![Диагностика совместимости (1092 / 1092)](../images/web-ui-help-compatibility.png)

## Возможности

- Дерево endpoint'ов и селектор метода, управляемые выбранным мажором каталога
- Параметры и примеры payload, производные от контракта
- Панель Query parameters (левая колонка) с live-превью query string для GET-фильтров
- Редактор запроса, просмотрщик ответа и история
- Вход в сессию через `POST /api/session` (Basic) → заголовок/cookie
  `vmware-api-session-id`
- Сводка окружения (версия runtime, хосты, ВМ, кластеры, datastore, сети)
- Предпросмотр запросов в виде curl
- Индикатор покрытия для реализованного реестра REST
- Hot-swap **Apply as runtime** для активного уровня мажора
- Загрузка demo / seed (профили `small` / `large` / `big` в DATA)
- Компактная консоль на `/console.html`
- Ссылка на OpenAPI по адресу `/docs`

## Аутентификация (лаборатория)

| Пользователь | Пароль | Роль |
|---|---|---|
| `administrator@vsphere.local` | `VMware1!` | Administrator |
| `readonly@vsphere.local` | `VMware1!` | ReadOnly |
| `operator@vsphere.local` | `VMware1!` | VirtualMachinePowerUser |
| `vmadmin@vsphere.local` | `VMware1!` | VirtualMachineAdministrator |

После входа кнопка Send автоматически прикладывает `vmware-api-session-id`.

## Вспомогательные методы backend

| Метод | Path | Назначение |
|---|---|---|
| GET | `/ui/api/versions` | Мажоры каталога в сравнении с runtime |
| GET | `/ui/api/catalog?major=N` | Каталог для мажора 6–9 |
| GET | `/ui/api/method?...` | Метаданные одного метода |
| GET | `/ui/api/compatibility?major=N` | Payload покрытия |
| POST | `/ui/api/contract/apply?major=N` | Hot-swap runtime-контракта |
| GET | `/ui/api/demo/state` | Состояние демо-набора данных |
| POST | `/ui/api/demo/load` | Загрузить `big` (20 hosts / 2000 VMs) |
| POST | `/ui/api/vsphere/seed?profile=…` | Reseed `small` / `large` / `big` |

## Workflow работы с версиями

1. Выберите мажор **6 / 7 / 8 / 9** в каталоге.
2. Изучите методы и покрытие.
3. Используйте **Apply as runtime**, когда нужно, чтобы живые маршруты были
   ограничены уровнем этого мажора.
4. Подтвердите через `/api/appliance/system/version` и `/ui/api/compatibility`.

Hot-swap хранится только в памяти; перезапуск восстанавливает настройки по
умолчанию. Подробности: [Версии API](api-versions.md).

## Замечание о безопасности

Эндпоинты UI и demo предназначены для локальной разработки. В текущей
сборке они не защищены отдельным admin-токеном. Не выставляйте порт
симулятора в недоверенные сети.
