Files
HY2XS_flamy/docs/acceptance/2026-09-07-v1.0.0-rc3-runtime-findings.md
T

4.3 KiB
Raw Blame History

Результаты 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.