Files
transcriber/tasks/items/rollback-restores-wrong-session-duration.md
T
av 8bffd30955 tasks: закрыты четыре задачи о гейте, заведён урожай ревью
- сняты fix-migrations-path-in-docs-config, gate-step-exit-codes,
  response-assertions-judge-result, gate-dependency-vulnerabilities
- заведена rollback-restores-wrong-session-duration: откат шага входа ставит
  14 суток, называя их умолчанием библиотеки в пять
2026-08-12 22:06:11 +03:00

4.2 KiB

🐞 Починить срок сессии, который ставит откат шага входа

  • Тип: 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.

Рамки

Правка применённого шага схемы — необратимое: решение принимает человек. Новым шагом это не лечится: новый шаг накатывается вперёд, а исправить нужно ветку отката прежнего.