Files
transcriber/tasks/items/rollback-restores-wrong-session-duration.md
T
av f7a8a1df9d tasks: восемь записей интейка получили место в плане стройки
- 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 переписана под пять оставшихся находок: шестую
  свело повышение раскладки.
2026-08-13 16:11:58 +03:00

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`.
## Рамки
Правка применённого шага схемы — необратимое: решение принимает человек. Новым
шагом это не лечится: новый шаг накатывается вперёд, а исправить нужно ветку
отката прежнего.