docs: закрытие продуктовых рисков и новый LDD baseline
This commit is contained in:
@@ -57,6 +57,22 @@ Compose передаёт одно и то же значение identity, academ
|
||||
Значение по умолчанию `dev-internal-token` для production не используйте;
|
||||
`.env.prod` не коммитьте.
|
||||
|
||||
Сроки аутентификации и сессии (можно не задавать — действуют значения ниже):
|
||||
|
||||
```dotenv
|
||||
LMS_ACCESS_TOKEN_TTL=15m # access JWT identity, короткий
|
||||
LMS_REFRESH_TOKEN_TTL=7d # refresh-токен, ротация и отзыв
|
||||
LMS_SESSION_TIMEOUT=7d # web-сессия LMS_SESSION, sliding
|
||||
```
|
||||
|
||||
`LMS_ACCESS_TOKEN_TTL` и `LMS_REFRESH_TOKEN_TTL` читает identity,
|
||||
`LMS_SESSION_TIMEOUT` — web. `docker-compose.prod.yml` прокидывает эти
|
||||
переменные в environment соответствующих сервисов; при переопределении
|
||||
используются значения из `.env.prod`. Access
|
||||
обновляется автоматически за 2 минуты до истечения; прямой API-клиент должен
|
||||
сам вызывать `POST /api/v1/auth/refresh`. Уменьшайте значения только осознанно:
|
||||
слишком короткая web-сессия заставит пользователей чаще входить заново.
|
||||
|
||||
## 4. Собрать и запустить
|
||||
|
||||
```bash
|
||||
@@ -109,16 +125,24 @@ git pull
|
||||
|
||||
`deploy.sh up` **обязательно** делает backup перед обновлением. Если backup
|
||||
завершился ошибкой, деплой прерывается. Миграции БД (Flyway) применяются
|
||||
автоматически при старте сервисов: identity `V4–V10` (`V10` создаёт
|
||||
`identity.audit_events`), academic `V6–V12`, progress `V13`.
|
||||
автоматически при старте сервисов: identity `V4–V11` (`V10` создаёт
|
||||
`identity.audit_events`, `V11` — `identity.refresh_tokens`), academic `V6–V12`,
|
||||
progress `V13`.
|
||||
|
||||
После обновления проверьте, что админ открывает `/admin/audit` и видит события
|
||||
(например, после входа в профиль студента — `PROFILE_VIEW`); преподаватель и
|
||||
студент на эту страницу не попадают.
|
||||
студент на эту страницу не попадают. Журнал листается через `page`/`limit`
|
||||
(«Показать ещё»). Для инвентаризации старых файлов админ может вызвать
|
||||
`GET /api/v1/content/legacy-assets`: файлы без привязки к статье больше не
|
||||
публичны (`404` для обычных пользователей), их нужно привязать или удалить.
|
||||
|
||||
CI (`.gitlab-ci.yml`) на каждом push/MR выполняет
|
||||
`./gradlew --no-daemon test ktlintCheck detekt`; для Testcontainers runner
|
||||
должен разрешать privileged `docker:dind`.
|
||||
`./gradlew --no-daemon test ktlintCheck detekt evidenceCheck` и job `smoke`
|
||||
(`./scripts/ldd-smoke.sh`: полный стек, health, вход админа, один курс).
|
||||
Полный job `release-evidence` (`./scripts/ldd-release.sh`) обязателен для тегов
|
||||
и запускается вручную для веток. `check` использует privileged `docker:dind`
|
||||
для Testcontainers; `smoke`/`release-evidence` выполняются на shell-runner
|
||||
с Java 21, Docker Compose v2, Python 3, Node и Chromium Playwright.
|
||||
|
||||
## 8. Резервное копирование
|
||||
|
||||
|
||||
Reference in New Issue
Block a user