feat(tradein/admin): audit + activity dashboards (Feature 2/3 UI) #2521
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
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#2521
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/tradein-admin-dashboards"
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?
Что
Admin-дашборды поверх read-API (#2520) — визуализация фич 2 (учёт входов/IP + что ищут) и 3 (поведенческая аналитика).
Страницы (admin-only)
/admin/audit(«Аудит доступа») — таблица аккаунтов (last/first seen, #IP, #устройств, logins/requests/searches); клик по аккаунту → аккордеон-drilldown: IP-адреса (first/last/count), устройства (user-agent), недавние поиски (адрес + когда + с какого IP), недавняя активность./admin/analytics(«Активность» — намеренно не «Аналитика», чтобы не путать с рыночной) — селектор 7/30/90 дней, 4 KPI-карточки (события/юзеры/24ч), recharts line-chart событий по дням, топ-поиски / топ-пути / по-аккаунтам.Гейтинг (безопасность)
scopePath/trade-in/api/v1/admin/{audit,analytics}— по образцу/scrapers(НЕ/cache, который открытpilot).pilot.deny: /trade-in/api/v1/admin/**вroles.yamlуже покрывает — конфиг не меняется._ADMIN_API_RE). Страницы ловят 403 →NoAccessScreen, не крашатся.retry: false— 403 не ретраит.Детали
lib/admin-audit-api.ts— hand-written (у tradein-mvp/frontend нет codegen-скрипта), зеркалятapp/schemas/audit.py. Без новых зависимостей (recharts уже был) → lockfile не тронут.trade-in.cssпо конвенции проекта (переиспользованы.scraper-*/.runs-table, добавлены.admin-*). TanStack Query (не legacy fetch-in-useEffect).Проверки
tsc --noEmit— 0 ошибок; eslint по новым файлам — 0 ворнингов; без drift package.json/lock.Post-deploy: playwright-проверка рендера под admin.