bug(backend): GET /api/v1/parcels/{cad} возвращает 501 "Not implemented yet" — удалить или реализовать #251

Closed
opened 2026-05-17 06:14:19 +00:00 by lekss361 · 1 comment
Owner

Симптом

GlitchTip BACKEND-5 (7 events, firstSeen 2026-05-16 19:41, lastSeen 2026-05-17 05:38). Кто-то (включая curl probes из 46.138.14.40) ходит на GET /api/v1/parcels/{parcel_id} → 501.

HTTPException: Not implemented yet
File: backend/app/api/v1/parcels.py:1013
Function: get_parcel

Endpoint registered как @router.get("/{parcel_id}", response_model=ParcelDetail) (line 1010), но содержит только raise HTTPException(status_code=501, detail="Not implemented yet"). Comment: """TODO Stage 2b: fetch parcel by id from DB."""

Воспроизведение

curl -i https://gendsgn.ru/api/v1/parcels/66:41:0206025:23
# HTTP/1.1 501 Not Implemented
# {"detail": "Not implemented yet"}

Решения

Option A (RECOMMENDED): удалить endpoint — если он не нужен, убрать @router.get("/{parcel_id}") + get_parcel функцию + связанный ParcelDetail schema если не используется в других местах.

  • Pro: одна строка диффа, чистый OpenAPI, нет 501 в Sentry
  • Con: если frontend планировал использовать — break

Option B: реализовать stubanalyze_parcel уже делает SELECT из cad_parcels. Можно сделать lightweight version который возвращает только базовые поля без heavy analyze.

  • Pro: useful for UI
  • Con: 1-2 дня работы, нужен ParcelDetail контракт

Option C: вернуть 404 вместо 501 — если хотим оставить stub-route как hint что endpoint planned.

Acceptance

  • Решено A vs B vs C
  • Sentry/GlitchTip BACKEND-5 не появляется на новых releases

Severity

🟢 P3 — low impact (501 не frontend-visible), но засоряет error tracker. Может скрывать реальные new errors в noise.

(GlitchTip discovery 2026-05-17)

## Симптом GlitchTip **BACKEND-5** (7 events, firstSeen 2026-05-16 19:41, lastSeen 2026-05-17 05:38). Кто-то (включая curl probes из 46.138.14.40) ходит на `GET /api/v1/parcels/{parcel_id}` → 501. ``` HTTPException: Not implemented yet File: backend/app/api/v1/parcels.py:1013 Function: get_parcel ``` Endpoint registered как `@router.get("/{parcel_id}", response_model=ParcelDetail)` (line 1010), но содержит только `raise HTTPException(status_code=501, detail="Not implemented yet")`. Comment: `"""TODO Stage 2b: fetch parcel by id from DB."""` ## Воспроизведение ```bash curl -i https://gendsgn.ru/api/v1/parcels/66:41:0206025:23 # HTTP/1.1 501 Not Implemented # {"detail": "Not implemented yet"} ``` ## Решения **Option A (RECOMMENDED): удалить endpoint** — если он не нужен, убрать `@router.get("/{parcel_id}")` + `get_parcel` функцию + связанный `ParcelDetail` schema если не используется в других местах. - Pro: одна строка диффа, чистый OpenAPI, нет 501 в Sentry - Con: если frontend планировал использовать — break **Option B: реализовать stub** — `analyze_parcel` уже делает SELECT из `cad_parcels`. Можно сделать lightweight version который возвращает только базовые поля без heavy analyze. - Pro: useful for UI - Con: 1-2 дня работы, нужен `ParcelDetail` контракт **Option C: вернуть 404** вместо 501 — если хотим оставить stub-route как hint что endpoint planned. ## Acceptance - [ ] Решено A vs B vs C - [ ] Sentry/GlitchTip BACKEND-5 не появляется на новых releases ## Severity 🟢 P3 — low impact (501 не frontend-visible), но засоряет error tracker. Может скрывать реальные new errors в noise. (GlitchTip discovery 2026-05-17)
Author
Owner

Status check 2026-05-23

Issue остаётся в силе. После security pivot (PR #437) AdminTokenAuth был убран из 47 admin endpoints — но GET /api/v1/parcels/{cad} всё ещё возвращает 501 Not Implemented, scope другой.

Priority после pilot demo 28.05: medium — удалить если не нужно, иначе реализовать.

Привязка: добавлен в umbrella epic(infra): Pilot infra status 2026-05-23 — после security pivot.

## Status check 2026-05-23 Issue остаётся в силе. После security pivot (PR #437) `AdminTokenAuth` был убран из 47 admin endpoints — но `GET /api/v1/parcels/{cad}` всё ещё возвращает `501 Not Implemented`, scope другой. **Priority после pilot demo 28.05**: medium — удалить если не нужно, иначе реализовать. Привязка: добавлен в umbrella `epic(infra): Pilot infra status 2026-05-23 — после security pivot`.
Sign in to join this conversation.
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#251
No description provided.