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

# Совместимость

Этот документ объясняет, как симулятор заявляет совместимость с vSphere
Automation API по мажорам каталога **6–9**. Когда процесс запущен,
предпочитайте живые отчёты.

## Живые отчёты

| URL | Формат |
|---|---|
| `/ui/api/compatibility?major=N` | JSON |

Web UI также предоставляет панель совместимости, управляемую этим
endpoint'ом.

## Покрытие реестра в сравнении с проверенной поверхностью

| Мажор | Метка vSphere | Реализовано / universe | Покрытие |
|---|---|---:|---:|
| 6 | 7.0 | 31 / 1077 | 2.9% |
| 7 | 7.0 U3 | 77 / 1077 | 7.2% |
| 8 | 8.0 | 103 / 1077 | 9.6% |
| 9 | 8.0 U2 (поверхность Automation 9.1) | **1077 / 1077** | **100%** |

- **Universe** — уникальные маршруты verb+path, полученные из публичного
  [индекса операций vSphere Automation API](https://developer.broadcom.com/xapis/vsphere-automation-api/latest/operation-index/)
  (1348 документированных операций → ~1037 уникальных маршрутов → 1077
  зарегистрированных в таблице маршрутов этого симулятора, поскольку
  некоторые пути обслуживают несколько именованных операций).
- **Реализовано (по мажору)** — маршруты, чей уровень каталога
  (`app/vsphere/contracts/matrix.py`) равен этому мажору или ниже. Это
  оценка **каталога/документации**, а не ограничение живого трафика.
- **Runtime** — независимо от применённого мажора каталога, каждый
  зарегистрированный маршрут всегда обслуживается своим реальным
  обработчиком (104 глубоких обработчика) или DB-backed поверхностью
  стабов. См. [Поверхность API](api-surface.md).

После **Apply as runtime** (`POST /ui/api/contract/apply?major=N`) живой
отчёт загружает журнал этого мажора (`evidence/vsphere-{version}.json`), так
что панель совместимости Web UI отражает выбранный мажор.

## Измерения evidence

Журналы по мажорам в `evidence/vsphere-{version}.json` записывают счётчики
`declared`, `implemented`, `observed` и `verified`, а также разбивки по
HTTP-методам и доменам (`auth_session`, `inventory`, …). Регенерируйте с
помощью:

```bash
make evidence          # app/evidence_gen.py
make vsphere-bundles   # стаб-бандлы OpenAPI + журналы evidence вместе
```

Исполняемое подтверждение этих заявлений:

| Набор тестов | Роль |
|---|---|
| `tests/compatibility/test_verified_surface.py` | hot-swap + дрейф журнала + пороги оценки |
| `tests/compatibility/test_group_smoke.py` | представительные мутации групп REST с PostgreSQL |
| `tests/compatibility/test_vsphere_pyvmomi.py` | внешний smoke-тест SOAP через pyvmomi |
| `tests/integration/test_vsphere_full_api.py` | широкое интеграционное покрытие REST/SOAP |

Дополнительные cookbook'и под [`examples/`](../../examples/README.ru.md)
и lab-набор `pulumi-vsphere` под
[`pulumi-tests/`](../../pulumi-tests/README.ru.md) (`make pulumi-tests`)
выполняются вручную или опционально в CI.

## Известные поведенческие ограничения

| Область | Поведение |
|---|---|
| Внешние системы | NSX Manager, живые LDAP/SAML/OIDC IdP и ACME-директории не обращаются к реальным удалённым сервисам; только seeded/локальное состояние |
| TLS | Только локальный self-signed development-gateway (Compose); используйте свои сертификаты / cert-manager для реальных развёртываний |
| Гипервизор | Нет реального выполнения ESXi/KVM; нет бинарных загрузок NFC |
| Корпус наблюдений | Санированные данные наблюдений реального vCenter остаются ограниченными; глубокий семантический паритет проверяется путь-за-путём указанными выше наборами тестов, а не исчерпывающим сравнением с production |

Исторические заметки о релизах: [compatibility-0.1.0.md](compatibility-0.1.0.md).
