Документировать авто-баг-трекер (source/hash/dedupe). Refs EventHub/EventHubBack#35
This commit is contained in:
+10
-5
@@ -121,9 +121,14 @@ EventHub — платформа для управления событиями
|
||||
- Аудит действий администраторов (`admin_audit`).
|
||||
|
||||
### 2.8. Баг-трекер (автоматический)
|
||||
- При возникновении ошибок сервер автоматически создаёт тикет (`ticket`).
|
||||
- Тикет содержит хеш ошибки, сообщение, стектрейс, контекст, количество повторений.
|
||||
- Администраторы могут просматривать тикеты, назначать ответственных, менять статус.
|
||||
- Источники тикетов (`source`): `backend` (HTTP 500 / внутренние ошибки), `frontend` (клиентский crash), `manual` (ручной репорт).
|
||||
- При HTTP 500 сервер асинхронно регистрирует тикет через `logic_ticket:report_error` (ответы по путям `/tickets` не репортятся — защита от рекурсии).
|
||||
- Клиент и ручной репорт: `POST /v1/tickets` с `error_message`, опционально `stacktrace`, `context`, `source` (`frontend` | `manual`). Ручной `manual` — сценарий end-user клиентов, не Admin SPA.
|
||||
- Тикет содержит `error_hash` (sha256 от source + сообщение + fingerprint стека; для `manual` — source + user_id + сообщение), стектрейс, JSON-контекст, счётчик повторений.
|
||||
- Дедуп: открытый тикет (`open` / `in_progress`) с тем же `error_hash` — увеличивается `count` и `last_seen`; после `resolved`/`closed` повтор создаёт новый тикет (регрессия).
|
||||
- Новые тикеты лимитируются (~30/мин на узел); повторы по hash не ограничиваются.
|
||||
- При создании нового тикета администраторам уходит WS `ticket_created`.
|
||||
- Администраторы могут просматривать тикеты (фильтр `source`), назначать ответственных, менять статус.
|
||||
|
||||
### 2.9. Платная подписка
|
||||
- Пользователи могут оформить подписку (`subscription`) с разными планами: monthly, quarterly,
|
||||
@@ -256,7 +261,7 @@ src/
|
||||
- `PUT /v1/reviews/:id` — обновить отзыв.
|
||||
- `POST /v1/reports` — пожаловаться.
|
||||
- `GET /v1/tickets` — тикеты пользователя.
|
||||
- `POST /v1/tickets` — создать тикет.
|
||||
- `POST /v1/tickets` — создать или обновить тикет (дедуп по `error_hash`): body `{ error_message, stacktrace?, context?, source?: frontend|manual }`; ответ 201 (или 429 при rate-limit новых).
|
||||
- `GET /v1/tickets/:id` — статус тикета.
|
||||
- `GET /v1/subscription` — подписка пользователя.
|
||||
- `GET /v1/calendars/:calendar_id/view?month=YYYY-MM` — HTML-календарь (владелец), включая архив.
|
||||
@@ -271,7 +276,7 @@ src/
|
||||
- `DELETE /v1/admin/reviews/:id` — удалить отзыв.
|
||||
- `GET /v1/admin/banned-words`, `POST /v1/admin/banned-words` — запрещённые слова.
|
||||
- `GET /v1/admin/tickets/stats` — статистика тикетов: `total_tickets`, `open`, `in_progress`, `resolved`, `closed`, `total_errors`.
|
||||
- `GET /v1/admin/tickets`, `GET /v1/admin/tickets/:id` — управление тикетами.
|
||||
- `GET /v1/admin/tickets` — список с фильтрами `status`, `source`, `assigned_to`, `q`; `GET /v1/admin/tickets/:id` — управление тикетами.
|
||||
- `GET /v1/admin/subscriptions`, `POST /v1/admin/subscriptions/:id` — подписки.
|
||||
- `PUT /v1/admin/:target_type/:id` — модерация.
|
||||
- `GET /v1/admin/me` — профиль администратора.
|
||||
|
||||
Reference in New Issue
Block a user