feat: complete p0 hardening sprint #39

Merged
admin merged 1 commits from feature/p0-hardening-auth-results into main 2026-07-12 12:13:46 +00:00
Owner

Первый P0-спринт: hardening backend и улучшения критических сценариев

Backend 1.4.2

  • Удалён самодельный mock PostgreSQL; тесты и CI теперь работают с настоящим PostgreSQL 16 и применяют миграции.
  • Обновлён API-контракт: UUID id, пользовательский slug, авторизация, CSRF и ответы об ошибках документированы.
  • Добавлена строгая валидация POST/PATCH /api/races: даты, дистанции, статусы, время, URL, длины полей и запрет неизвестных полей.
  • Усилена загрузка обложек по сайту организатора: разрешены только безопасные публичные HTTP(S)-адреса, ограничены редиректы, размер ответа и таймаут.
  • Добавлены проверки legacy-миграции 004, валидации и безопасной загрузки обложек.

Frontend 0.7.1

  • Форма старта использует нативные поля даты и времени старта.
  • Ввод результата разделён на часы, минуты, секунды, место и число участников; добавлена нормализация и проверка диапазонов.
  • Экран подтверждения email теперь явно показывает успешное подтверждение и не предлагает повторно вводить email/отправлять письмо.
  • Auth-формы получили loading-состояния, отображение ошибок и защиту от повторной отправки.
  • Карточка «Последний личный рекорд» отображается только при фактическом улучшении предыдущего результата.
  • Удалены сгенерированные Vite/TypeScript-артефакты, неиспользуемый health-клиент и статический каталог внешних обложек.

Документация и версии

  • Обновлены .env.example, README, backend-документация, product backlog и changelog.
  • Версии повышены до backend 1.4.2 и frontend 0.7.1.

Проверки

  • git diff --check
  • TypeScript type-check backend
  • Production-сборка frontend через Vite

Полный runtime-прогон backend-тестов локально не выполнялся, поскольку в среде разработки нет Docker/PostgreSQL. В CI добавлен PostgreSQL-сервис, миграции и запуск тестов против реальной БД.

## Первый P0-спринт: hardening backend и улучшения критических сценариев ### Backend 1.4.2 - Удалён самодельный mock PostgreSQL; тесты и CI теперь работают с настоящим PostgreSQL 16 и применяют миграции. - Обновлён API-контракт: UUID `id`, пользовательский `slug`, авторизация, CSRF и ответы об ошибках документированы. - Добавлена строгая валидация `POST`/`PATCH /api/races`: даты, дистанции, статусы, время, URL, длины полей и запрет неизвестных полей. - Усилена загрузка обложек по сайту организатора: разрешены только безопасные публичные HTTP(S)-адреса, ограничены редиректы, размер ответа и таймаут. - Добавлены проверки legacy-миграции `004`, валидации и безопасной загрузки обложек. ### Frontend 0.7.1 - Форма старта использует нативные поля даты и времени старта. - Ввод результата разделён на часы, минуты, секунды, место и число участников; добавлена нормализация и проверка диапазонов. - Экран подтверждения email теперь явно показывает успешное подтверждение и не предлагает повторно вводить email/отправлять письмо. - Auth-формы получили loading-состояния, отображение ошибок и защиту от повторной отправки. - Карточка «Последний личный рекорд» отображается только при фактическом улучшении предыдущего результата. - Удалены сгенерированные Vite/TypeScript-артефакты, неиспользуемый health-клиент и статический каталог внешних обложек. ### Документация и версии - Обновлены `.env.example`, README, backend-документация, product backlog и changelog. - Версии повышены до backend `1.4.2` и frontend `0.7.1`. ### Проверки - `git diff --check` - TypeScript type-check backend - Production-сборка frontend через Vite Полный runtime-прогон backend-тестов локально не выполнялся, поскольку в среде разработки нет Docker/PostgreSQL. В CI добавлен PostgreSQL-сервис, миграции и запуск тестов против реальной БД.
admin added 1 commit 2026-07-12 12:13:38 +00:00
feat: complete p0 hardening sprint
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
a317c9b760
admin merged commit a6108ea927 into main 2026-07-12 12:13:46 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/runners-calendar#39