4.3 KiB
4.3 KiB
Результаты runtime-проверки v1.0.0-rc3
Дата проверки: 2026-09-07.
RC3 проверялся на чистом Debian после успешной проверки целостности опубликованного артефакта. Hysteria, ACME, firewall, диагностика и основной authentication backend отработали штатно. Кандидат отклонён из-за несовместимости installer smoke с HTTP middleware и ложного отчёта rollback cleanup.
Сводка
| ID | Наблюдение | Итог |
|---|---|---|
| RC3-LOGIN-01 | стандартный curl/<version> получает HTTP 403 от scanner middleware |
исправлено для RC4 явным UA установщика |
| RC3-LOGIN-02 | запрос с полем password не проходит DTO: требуется pass |
ожидаемое поведение wire-контракта, добавлена регрессия |
| RC3-LOGIN-03 | {username, pass} с неверным паролем доходит до auth logic и возвращает invalid_credentials |
backend исправен |
| RC3-LOGIN-04 | positive и negative smoke имели две независимые curl-команды | исправлено общим request helper'ом |
| RC3-ROLLBACK-01 | reset-failed для уже выгруженного юнита создавал ложное manual recovery may be required |
исправлено проверкой postcondition |
Что доказала диагностика login
Последовательность запросов отделила middleware, DTO и authentication logic:
| Запрос | Результат |
|---|---|
стандартный curl UA + password |
HTTP 403 до разбора тела |
допустимый UA + password |
validation envelope: требуется поле pass |
допустимый UA + pass и неверный пароль |
operation envelope с errors[].code=invalid_credentials |
Следовательно, паника старого validateStr не вернулась. Дефект RC3 находился
между smoke-клиентом и scanner middleware, а не в проверке пароля.
Контракт RC4
- positive и negative login используют один helper;
- helper отправляет JSON
{username, pass}иUser-Agent: HY2XS-Installer/1.0; - success требует
code=20000и непустойdata.accessToken; - rejection требует
code=50000, причинуinvalid_credentialsвнутриerrors[]и отсутствие выданного токена; - envelope разбирается как JSON, поэтому совпадение текста внутри
messageне считается доказательством; - стандартный curl UA продолжает получать 403: scanner middleware в RC4 не удаляется;
- уже выгруженный systemd-юнит считается успешным конечным состоянием cleanup
только после наблюдения
LoadStateиActiveState; - недоступный systemd или сохранившийся
ActiveState=failedостаются настоящим rollback failure.
Пересмотр необходимости scanner middleware для loopback-only панели остаётся отдельной задачей после v1.0.0 и не расширяет change surface RC4.