Skip to content

fix(dev): restore direct links to auth pages - #791

Merged
TThanos3000 merged 4 commits into
devfrom
fix/dev-auth-page-routing-20261018
Oct 18, 2026
Merged

TThanos3000 merged 4 commits into
devfrom
fix/dev-auth-page-routing-20261018

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Прямой переход и обновление /auth/login на dev возвращали Django 404: общий API location перехватывал Angular auth pages. Добавлен ограниченный список frontend-маршрутов для GET/HEAD перед API regex. POST восстановления пароля и остальные API-запросы по-прежнему проксируются в Django.

Реализация

  • Только DEV Nginx config; production config не меняется.
  • Regression CI запускает настоящий Nginx с checked-in конфигурацией, временной SPA и тестовым HTTP backend. Проверяет GET/HEAD, завершающий слеш, query params, API POST, неизвестные auth URLs и static asset.
  • Deploy Dev теперь проверяет frontend deep links и безопасные невалидные API-запросы, помимо Django admin и Celery.

API / Permissions

Контракты и server-side permissions не меняются. GET/HEAD известных Angular auth pages возвращают index.html; API users/current и POST password reset остаются backend-запросами. Проверки сброса используют пустой payload: письмо не отправляется, пароль не меняется.

UI

Дизайн и Angular код не менялись. Исправляется загрузка существующих страниц по прямой ссылке.

Проверки

  • Checked by source: auth.routes.ts, auth-http.adapter.ts, users/urls.py и порядок Nginx locations.
  • Локальный flake8 изменённых Python scripts и git diff --check.
  • Воспроизведение на dev: новый smoke check падает на GET /auth с 404; текущие POST reset_password и confirm возвращают 400 JSON, users/current — 401 JSON.
  • Реальный Nginx routing regression в CI 39127035831: nginx -t, все SPA GET/HEAD и API boundary checks прошли на head 5c9f323. Также прошли CI Lint и DEV migration role на PostgreSQL 14/18.
  • Deploy Dev 39127135137 success на merge d7949c3: nginx -t, admin, 10 SPA routes GET/HEAD, 5 API boundary probes, Celery pong. Внешний запуск того же smoke прошёл, /auth/login после reload в браузере показывает форму входа.

Acceptance criteria

  • AC1: прямые GET/HEAD auth pages с query params и завершающим слешем возвращают Angular index — real Nginx CI.
  • AC2: POST reset_password, confirm, validate_token и token, GET users/current доходят до API — real Nginx CI.
  • AC3: неизвестные auth URLs и API paths не маскируются SPA; assets доступны — real Nginx CI.
  • AC4: Deploy Dev проверяет frontend и API routing после reload Nginx — run 39127135137 success.

Риски / migration

Миграций и изменений данных нет. Основной риск — пересечение frontend reset_password pages и одноимённого API; правило разделяет их по HTTP-методу. Production deploy не требуется.

Не проверено

Полные Django suites выполняются в фоне; Django application code, models и dependencies не изменялись, для этой правки выполнены профильные Nginx и deployment transport checks. Реальная отправка письма и смена пароля не выполнялись; это существующие сценарии, smoke проверяет маршрутизацию безопасным невалидным payload.

@TThanos3000
TThanos3000 merged commit d7949c3 into dev Oct 18, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants