- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
3.8 KiB
3.8 KiB
🐞 Убрать код провайдера из журнала запросов хранилища
- Тип: fix
- Категория: Очередь — Три задачи входа собраны подряд: все правят обработчики входа и одно требование спеки access — три захода в один файл дороже одного.
- Зачем: Строка запроса с кодом входа целиком уезжает в таблицу _logs и лежит там пять суток, хотя спека access требует, чтобы код в журнал не попадал.
Найдено ревью задачи oidc-login 2026-08-12, отчёт триажа —
review/report.md,
пункт срезанного потолком под номером 2.
Наш собственный журнал чист — код туда не пишет ни одна строка приложения. Пишет его слой хранилища: он логирует всякий запрос вместе со строкой запроса, а адрес возврата несёт код параметром. Тест на отсутствие значений в журнале этого не видит, потому что смотрит только в наш логгер.
Код провайдера одноразовый и живёт минуты, поэтому это не захват сессии, а расхождение написанного со сделанным: комментарий в коде и норма спеки утверждают, что код в журнал не идёт.
Воспроизведение
- Поднять сервис с настроенным провайдером.
- Пройти вход и вернуться на адрес возврата.
- Открыть журнал запросов хранилища — панель,
GET /api/logsлибо файл базы. - В строке запроса и в поле
urlвиден код провайдера целиком.
Затрагивает
- адрес возврата
GET /auth/callbackи слой журналирования запросов хранилища; - настройка срока хранения журнала запросов (сегодня умолчание, пять суток);
- дельта-спека
access, требование «Значение, дающее доступ, не печатается» — либо норма выполняется, либо изъятие называется поимённо; docs/security.md, перечень мест, где оседает чувствительное.
Критерии приёмки
- После входа код провайдера не встречается в журнале запросов хранилища. Оракул — тест: пройти вход подставным провайдером, затем отобрать записи журнала и убедиться, что значения кода в них нет.
- Строка о запросе к адресу возврата в журнале остаётся: пропажа самого следа не годится, прослеживаемость входа нужна. Оракул — тот же тест: запись о запросе есть, кода в ней нет.
- Норма и код сошлись: либо спека выполняется буквально, либо в ней названо изъятие с ценой. Оракул — чтение требования против исхода первого теста.