точки входа переехали в cmd/, заведена заглушка OIDC для локального входа
- main.go и journal_route_test.go переехали в cmd/transcriber без правок содержимого; образ собирает ./cmd/transcriber поимённо - cmd/oidcstub отвечает на /authorize, /token и /userinfo, проверок не делает и слушает петлевой адрес: войти без Authelia стало чем - ступень сборки приложения переехала на node:24 с alpine — musl ждёт ответа на AAAA, которого нет, и npm ci висел вместо отказа
This commit is contained in:
@@ -119,6 +119,18 @@
|
||||
|
||||
### Типовые ложноположительные
|
||||
|
||||
- **«Хранилище молча сливает две учётные записи с одной почтой в одного
|
||||
владельца».** Для версии v0.39.10 неверно, и неверна именно развязка. Первая
|
||||
половина цепочки настоящая: обмен ищет запись по признаку провайдера, а не
|
||||
найдя — по адресу почты, и приходит к чужой записи. Но повесить на неё второй
|
||||
признак он не может — уникальный индекс
|
||||
`idx_externalAuths_record_provider (collectionRef, recordRef, provider)` связь
|
||||
отвергает, обмен отдаёт `400`, а сервис — `401` со строкой
|
||||
`Failed to exchange provider code`. Отказ **громкий**, тихого слияния владельцев
|
||||
не происходит, и ложно-зелёной проверки разграничения такой дефект не даёт.
|
||||
Проверено прогоном 2026-08-15 (задача про заглушку OIDC); найдено чтением
|
||||
исходников библиотеки, опровергнуто запуском — то есть цена гипотезы, добытой
|
||||
без прогона, здесь и измерена.
|
||||
- **«Воркер глотает ошибку `NoopJobError`».** Не дефект: этот тип означает «задач
|
||||
в этом состоянии нет», и `internal/controller/worker/worker.go` намеренно не
|
||||
логирует его и не считает в метрику. Норма записана требованием
|
||||
@@ -159,6 +171,14 @@
|
||||
|
||||
Форма: `<тема>: <вопрос> (<откуда>)`.
|
||||
|
||||
- `operations`: не завёл ли инструмент разработчика второй дом тому, что уже есть
|
||||
в проверках. Подставных провайдера OIDC в репозитории теперь два — `cmd/oidcstub`
|
||||
и `fakeProvider` в `internal/controller/http/login_test.go`, — с теми же
|
||||
адресами и той же посылкой про `email_verified`, и они уже разошлись в мелочи
|
||||
(`token_type` «bearer» против «Bearer»). Тем же вопросом судится подставной
|
||||
распознаватель. Записанной конвенции о единственном доме подставных внешних
|
||||
собеседников у проекта нет, поэтому спрашивать надо, а не считать нарушением
|
||||
(ревью задачи про заглушку OIDC, 2026-08-15).
|
||||
- `operations`: как шаг отвечает на отмену посреди работы — контекст доходит до
|
||||
внешнего собеседника и это держат правила `noctx` и `contextcheck`
|
||||
([conventions/go-linters.md](conventions/go-linters.md), «Отмена и внешний
|
||||
@@ -312,6 +332,27 @@ API и имя не откатываются обратной правкой по
|
||||
истории git 2026-08-10: поле «Чем воспроизведён» называет у них коммит, а не
|
||||
оракул, и выдумывать оракул задним числом нельзя.
|
||||
|
||||
## 2026-08-15 — короткая форма рецепта входа не работала, а проверяли длинную [пойман ревью]
|
||||
|
||||
- **Где:** `cmd/oidcstub` — подставной провайдер OIDC для локального входа;
|
||||
доккоммент пакета, подсказка флага `-sub` и проза `config.example.toml`
|
||||
- **Симптом:** рецепт «второй вошедший получается сменой `-sub`» записан в трёх
|
||||
местах и в короткой форме не работал вовсе. Заглушка отдавала обоим `sub` одну
|
||||
и ту же почту умолчанием, вход отвечал `401`, а причина оставалась строкой в
|
||||
журнале хранилища
|
||||
- **Причина:** обмен ищет учётную запись сперва по признаку провайдера, а не
|
||||
найдя — по адресу почты. Второй `sub` при общей почте приходил к первой записи,
|
||||
а признак провайдера на записи уникален — `idx_externalAuths_record_provider` —
|
||||
и связь отвергалась. Умолчание почты стояло своим значением вместо выведенного
|
||||
из `sub`
|
||||
- **Почему не поймали раньше:** рецепт проверяли **длинной** формой, где почта
|
||||
задана флагом явно. Короткую не гонял никто, хотя записана она первой и берут
|
||||
читатели именно её
|
||||
- **Что меняем:** проверять ту форму рецепта, которая записана **короче всех**.
|
||||
Оракул — прогон именно её: два входа подряд разными `-sub` без прочих флагов,
|
||||
затем счёт записей в коллекции пользователей. Само умолчание почты теперь
|
||||
выводится из `-sub`
|
||||
|
||||
## 2026-08-15 — своя раздача статики потеряла отказ от записи успеха [пойман ревью]
|
||||
|
||||
- **Где:** `internal/controller/http/webapp.go`, регистрация корневого маршрута;
|
||||
|
||||
Reference in New Issue
Block a user