fix(reports): HEAD-поддержка на /report/download — qa поймал 405, DOCX не скачивался из UI #2343

Merged
bot-backend merged 1 commit from fix/report-download-head into main 2026-07-03 23:13:24 +00:00
Collaborator

Что

qa-смоук #2338 (FAIL): FastAPI не добавляет HEAD к @router.get автоматически — фронтовый HEAD-preflight DOCX получал 405 (allow: GET), запрос абортился (net::ERR_ABORTED), и UI молча не скачивал файл вовсе. Бэкенд при этом здоров: curl GET отдаёт валидный DOCX 2.08 МБ с PK-magic.

Фикс: явный @router.head("/{cad_num}/report/download", include_in_schema=False) поверх той же функции — FileResponse при HEAD нативно отдаёт только заголовки (Starlette send_header_only). Комментарий-обоснование у декоратора.

Тесты

16 passed (+2 новых: HEAD → 200 headers-only с Word media-type и пустым телом; HEAD без готового отчёта → 404 симметрично GET). ruff clean.

Post-merge

Повторный qa-смоук DOCX-скачивания (клик карточки → download-event).

Refs #2259, #2338

## Что qa-смоук #2338 (FAIL): FastAPI **не добавляет HEAD** к `@router.get` автоматически — фронтовый HEAD-preflight DOCX получал **405** (`allow: GET`), запрос абортился (`net::ERR_ABORTED`), и UI молча не скачивал файл вовсе. Бэкенд при этом здоров: curl GET отдаёт валидный DOCX 2.08 МБ с PK-magic. Фикс: явный `@router.head("/{cad_num}/report/download", include_in_schema=False)` поверх той же функции — `FileResponse` при HEAD нативно отдаёт только заголовки (Starlette send_header_only). Комментарий-обоснование у декоратора. ## Тесты 16 passed (+2 новых: HEAD → 200 headers-only с Word media-type и пустым телом; HEAD без готового отчёта → 404 симметрично GET). ruff clean. ## Post-merge Повторный qa-смоук DOCX-скачивания (клик карточки → download-event). Refs #2259, #2338
bot-backend added 1 commit 2026-07-03 22:57:55 +00:00
fix(reports): HEAD-поддержка на /report/download — qa поймал 405
All checks were successful
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 8s
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m35s
CI / backend-tests (pull_request) Successful in 14m43s
747d752b2d
qa-смоук #2338: FastAPI НЕ добавляет HEAD к @router.get автоматически —
фронтовый HEAD-preflight DOCX получал 405 (allow: GET), abортился, и UI
молча не скачивал файл вовсе (curl GET при этом отдавал валидный DOCX
2.08 МБ). Явный @router.head (include_in_schema=False): FileResponse
при HEAD нативно отдаёт только заголовки. +2 теста (200 headers-only,
404 симметрично GET).
bot-backend merged commit 9289c3d69d into main 2026-07-03 23:13:24 +00:00
bot-backend deleted branch fix/report-download-head 2026-07-03 23:13:24 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2343
No description provided.