5.2 KiB
CarPass Admin Control Center
Admin Control Center дает администраторам закрытого пилота безопасный доступ к событиям сервиса, модерации СТО, просмотру данных и экспорту без прямого SQL.
Доступ
Админка открывается в Mini App по /admin.html или командой бота /admin.
Роли:
super_admin: полный доступ к пользователям, СТО, заявкам, заказ-нарядам, расходам, audit, export и системным настройкам.admin: пользователи, СТО, модерация, заказ-наряды, базовая аналитика и экспорт без секретов.moderator: заявки СТО, отзывы, блокировки и комментарии модерации.support: поиск пользователя, авто, история действий и помощь без расширенных финансовых агрегатов.analyst: агрегированная аналитика и обезличенные выгрузки без персональных данных.
Все чувствительные admin actions пишутся в AuditLog.
Уведомления
Система создает AdminNotification в БД и best-effort отправляет Telegram-сообщение администраторам. Ошибка Telegram не ломает бизнес-flow.
Поддержанные события:
- новый пользователь;
- первое авто пользователя;
- новая заявка СТО;
- изменение статуса заявки СТО;
- одобрение, блокировка и разблокировка СТО;
- security/system события через общий admin notification service.
Idempotency key защищает от дублей.
Env:
ADMIN_TELEGRAM_IDS=123,456
ADMIN_NOTIFICATION_CHAT_ID=
ADMIN_NOTIFY_NEW_USERS=true
ADMIN_NOTIFY_STO_APPLICATIONS=true
ADMIN_NOTIFY_SECURITY_EVENTS=true
ADMIN_NOTIFY_SYSTEM_ERRORS=true
Admin API
Dashboard:
GET /api/admin/dashboard
Notifications:
GET /api/admin/notificationsPOST /api/admin/notifications/{id}/readPOST /api/admin/notifications/read-allPOST /api/admin/notifications/{id}/dismiss
Data Explorer:
GET /api/admin/data/sourcesPOST /api/admin/data/queryPOST /api/admin/data/export
Users:
GET /api/admin/usersGET /api/admin/users/{id}GET /api/admin/users/{id}/activityPOST /api/admin/users/{id}/notePOST /api/admin/users/{id}/blockPOST /api/admin/users/{id}/unblock
СТО:
GET /api/admin/stoGET /api/admin/sto/{id}GET /api/admin/sto-applicationsPOST /api/admin/sto-applications/{id}/approvePOST /api/admin/sto-applications/{id}/rejectPOST /api/admin/sto-applications/{id}/request-changesPOST /api/admin/sto/{id}/suspendPOST /api/admin/sto/{id}/unsuspend
Audit and exports:
GET /api/admin/audit-logGET /api/admin/exportsGET /api/admin/exports/{id}
Data Explorer
Data Explorer работает только по whitelist источников и полей. Произвольный SQL из UI не принимается.
Источники:
usersvehiclesfuel_entriesservice_entriesexpense_entriessto_profilessto_applicationssto_employeesvehicle_sto_linksappointmentswork_orderswork_order_itemswork_order_productsreviewsnotificationsadmin_notificationsaudit_logsimports_exports
Поддержаны фильтры по дате, статусу, пользователю, Telegram ID, авто, СТО, городу, роли, категории, сумме, ошибкам и текстовому поиску. Каждый запрос ограничен limit до 500 строк и пишет audit log.
Privacy
По умолчанию маскируются Telegram ID, VIN, госномер, телефон и регистрационные данные СТО.
Полный просмотр sensitive data:
- доступен только
adminиsuper_admin; - требует
reason; - пишет audit log;
- не раскрывает bot token, env, internal token, secret fields.
analyst видит только обезличенные или замаскированные персональные данные.
Модерация СТО
Очередь заявок доступна в /admin.html?section=sto-applications.
Действия:
- approve;
- reject with reason;
- request changes with reason;
- suspend;
- unsuspend.
При изменении статуса создаются audit log, admin notification и уведомление владельцу СТО.
Bot Commands
Админские команды бота:
/admin/admin_stats/admin_users/admin_sto/admin_pending_sto/admin_alerts
API дополнительно проверяет роль пользователя, поэтому команда не дает доступа без admin-role в БД.