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