refactor(security): убрать мёртвую проверку админского токена (#2775) #2776
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2776
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "chore/2771-drop-dead-admin-token"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #2775
Диагноз: мёртвый код
Три вопроса:
Name,Attribute(deps.AdminTokenAuth),ImportFromи строковые константы, то есть формы, которые текстовый поиск не ловит:Оба вхождения — строка 23 собственного объявления. Импортеров модуля
app.core.depsтоже нет.Считает ли кто-то то же самое рядом? Да, и по-настоящему:
rbac_guardвbackend/app/main.py—_ADMIN_API_RE = ^/api/v1/admin/→ 403admin onlyприrole != admin; сверху Caddy basic_auth на весьgendsgn.ru(PR #426).Выразимо ли задуманное? Неприменимо — задуманное уже выражено, в другом месте и лучше.
→ Удалять.
Опровергнутые предпосылки задания
tradein-mvp/backend/app/core/deps.py. Файла там нет — хелпер живёт в main-бэкенде:backend/app/core/deps.py. Это другой стек, другой деплой, другой сьют.backend/tests/test_rbac.pyиtradein-mvp/backend/tests/test_rbac.py). Замену для этого хелпера покрывает первый.Находка: докстринги обещают покрытие, которого нет
backend/tests/test_admin_weight_profiles.py: «401 при отсутствии X-Admin-Token»backend/tests/api/v1/test_admin_ekburg_permits.py: «отсутствие X-Admin-Token → 401/503»Ни в одном из файлов нет ни одного утверждения про 401/403/503 — ни сейчас, ни до этого PR. Это был единственный след, по которому проверку можно было счесть живой: заголовок отправлялся во все запросы, докстринг это описывал как проверку, читателя это убеждало. Докстринги переписаны и теперь указывают на
tests/test_rbac.py.Что удалено
backend/app/core/deps.pyscrape_admin_tokenвSettingsSCRAPE_ADMIN_TOKENв.env.example@patch(...scrape_admin_token), 25 ×headers=ADMIN_HEADERSdocs/Secrets_Rotation_Policy.mdПрод-
.envправить не нужно:Settings.model_config—extra="ignore", оставшаяся строкаSCRAPE_ADMIN_TOKEN=безвредна.Верификация
backendбезtests/smoke(как в ci.yml): 4610 passed, 48 skipped, 0 failed, 12м38с. Все пропуски — довоенные, изskip_allowlist.txt.test_rbac+ 27 admin-тестов.rbac_guard, так и остался).