- migrations-step-norm-and-tests, gate-steps-subject-guard и review-config-from-go-upgrade уехали в голову: слой проверок, которым верят все задачи ниже; - rollback-restores-wrong-session-duration встал рядом с соседом про откат, bot-api-only-through-bot-client — рядом с чисткой транспорта, pin-runtime-image-base — перед spa-skeleton, откуда начинаются пересборки; - pipeline-spec-purpose-drift закрыта реализованной, а docs-consistency-2026-08-13 переписана под пять оставшихся находок: шестую свело повышение раскладки.
54 lines
4.3 KiB
Markdown
54 lines
4.3 KiB
Markdown
# 🐞 Починить срок сессии, который ставит откат шага входа
|
|
|
|
- **Тип:** fix
|
|
- **Категория:** Очередь — Оба про откат шага схемы: соседняя строка называет, что откат не отменяет применённое, эта чинит константу, которую он ставит. Порознь их правят дважды в одном файле.
|
|
- **Зачем:** Константа defaultAuthTokenDuration в шаге 202608120001 названа умолчанием библиотеки, но 1209600 — это 14 суток, а умолчание PocketBase 432000, пять суток: откат объявляет возврат к умолчанию и ставит срок вдвое больше выбранных владельцем семи.
|
|
|
|
Найдено ревью пачки задач о гейте 2026-08-12, проход разбора кода. Дефект
|
|
пришёл из задачи `oidc-login` и её правкой не был замечен; переезд шагов схемы в
|
|
свой каталог развёл противоречащие комментарии по разным файлам, где раньше они
|
|
стояли в трёх строках друг от друга: `provider.go` пишет «умолчание библиотеки в
|
|
пять суток», шаг — «умолчание библиотеки» о числе в 14 суток.
|
|
|
|
Оракул сегодняшнего состояния:
|
|
`grep -n "Duration: 432000" ~/go/pkg/mod/github.com/pocketbase/pocketbase@v0.39.10/core/collection_model_auth_options.go`
|
|
отдаёт строку `Duration: 432000, // 5days`. Числа `1209600` в модуле нет ни разу
|
|
как длительности токена.
|
|
|
|
**Развилка, которую решает человек:** правка меняет поведение **применённого**
|
|
шага схемы, а такое спрашивается всегда. Либо константа приводится к 432000
|
|
внутри существующего шага (откат ещё не исполнялся ни разу, и переписывание
|
|
трогает только будущие откаты), либо 14 суток объявляются выбранным числом — и
|
|
тогда меняется имя константы и её комментарий, а не значение.
|
|
|
|
## Воспроизведение
|
|
|
|
1. Подключить откаты (`migratecmd`) — сегодня их не подключает ничто.
|
|
2. Откатить шаг `202608120001_oidc_login.go`.
|
|
3. Прочитать `AuthToken.Duration` коллекции `users`: там 1209600 — вдвое больше
|
|
семи суток, выбранных владельцем, и в 2.8 раза больше умолчания библиотеки,
|
|
к которому откат обещал вернуть.
|
|
|
|
## Затрагивает
|
|
|
|
- `internal/adapter/repo/pocketbase/migrations/202608120001_oidc_login.go`,
|
|
константа `defaultAuthTokenDuration` и комментарий `down202608120001`;
|
|
- `internal/adapter/repo/pocketbase/provider.go`, комментарий к
|
|
`SessionDuration` — он называет умолчание пятью сутками;
|
|
- поведение откатов, если их подключат.
|
|
|
|
## Критерии приёмки
|
|
|
|
- Число в откате и число, названное умолчанием библиотеки, совпадают. Оракул —
|
|
чтение константы против `core/collection_model_auth_options.go` версии
|
|
PocketBase из `go.mod`.
|
|
- Комментарии шага и `provider.go` говорят об умолчании одно и то же. Оракул —
|
|
чтение обоих мест подряд.
|
|
- Гейт зелёный целиком. Оракул — `task gate`.
|
|
|
|
## Рамки
|
|
|
|
Правка применённого шага схемы — необратимое: решение принимает человек. Новым
|
|
шагом это не лечится: новый шаг накатывается вперёд, а исправить нужно ветку
|
|
отката прежнего.
|