Live-debug дашборд
Live-debug дашборд - это QA-инструмент оператора для одной сессии и site-level диагностики rejected/transport. Он должен показывать поток событий без раскрытия приватных значений.
Контракт окон
- Каждое окно получает уже нормализованные строки из
GET /v1/sites/{site_id}/debug/sessions/{session_id}. Лента сессииотсортирована по timestamp события иevent_index.- Rejected и transport строки относятся к уровню сайта, потому что их ClickHouse-таблицы не содержат
session_id. - Строки должны показывать ссылки на документацию из backend metadata, а не угадывать маршруты в браузере.
sdk-health
Экран: Состояние SDK
События/данные: sdk_init, sdk_config_loaded, sdk_disabled, sdk_error
Зачем QA: Понять, запустился ли SDK и какая версия config/mapping.
Что показывать: Версия SDK, config, enabled collectors, disabled reasons, errors.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
pages-routes
Экран: Страницы и маршруты
События/данные: page_view + page_sequence_computed
Зачем QA: Проверять маршруты и page_code.
Что показывать: Лента переходов, path_sanitized, page_code, unknown pages.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
session-timeline
Экран: Лента сессии
События/данные: Все события в порядке event_index
Зачем QA: Пройти сайт и видеть полный путь пользователя.
Что показывать: Событие, время, page/block/element/group codes, status.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
activity-visibility
Экран: Активность и видимость
События/данные: first_activity, activity_checkpoint, page_visibility_changed
Зачем QA: Понять active/idle и реальные просмотры.
Что показывать: Active ms, idle ms, hidden state и first activity.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
scroll
Экран: Скролл
События/данные: first_scroll, scroll_checkpoint, scroll_pattern_features
Зачем QA: Проверить глубину, дистанцию, возвраты вверх.
Что показывать: Depth %, distance down/up, speed, direction changes.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
pointer-hover
Экран: Указатель и hover
События/данные: pointer_activity_checkpoint, hover_qualified, exit_intent
Зачем QA: Проверить hover/exit intent без raw trajectory.
Что показывать: Hover events, pointer aggregate, exit intent.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
blocks-mapping
Экран: Видимость объектов
События/данные: object_visibility_checkpoint, object_visibility_features
Зачем QA: Проверить время просмотра блоков/элементов/групп.
Что показывать: visible_ms, object_code, return_count, unknown object.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
groups
Экран: Группы / повторяющиеся элементы
События/данные: group_interaction_checkpoint, group_features
Зачем QA: Проверить карточки/списки/повторяющиеся элементы.
Что показывать: group_code, item count, clicked positions.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
clicks
Экран: Клики и взаимодействия
События/данные: click, click_features_by_code
Зачем QA: Проверить, что клики получают правильные element_code.
Что показывать: Поток кликов, mapping_status и unknown clicks.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
forms
Экран: Формы
События/данные: form_* + form_progress_features
Зачем QA: Проверить формы без ПДн.
Что показывать: field_type, touched count, submit attempts, validation.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
content-copy
Экран: Контент и копирование
События/данные: content_select, copy
Зачем QA: Проверить выделение/копирование без текста.
Что показывать: selection_len_bucket, source_code.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
semantic-actions
Экран: Семантические действия
События/данные: semantic_action_derived, funnel_step_derived
Зачем QA: Видеть серверный смысл, который вывелся из raw events.
Что показывать: source_event_id, action_code, step_code.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
goals-conversions
Экран: Цели и конверсии
События/данные: goal_signal_derived, conversion_signal_normalized
Зачем QA: Проверить target labels для ML.
Что показывать: goal/conversion code, source, confidence.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
bot-detection
Экран: Детекция ботов
События/данные: bot_score_updated, bot_suspect_detected
Зачем QA: Проверять человек/бот сигналы.
Что показывать: bot_score, reason_codes, confidence.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
transport
Экран: Transport
События/данные: batch_flush_attempt, batch_result
Зачем QA: Проверять доставку событий.
Что показывать: batch status, retries, accepted/rejected.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
errors-rejected
Экран: Ошибки и отклоненные события
События/данные: sdk_error, sdk_disabled, rejected rows, transport errors.
Зачем QA: Explain why an event or batch did not enter the accepted source stream.
Что показывать: reason_code, safe_detail, payload shape, transport status, and docs links for the reason and affected fields.
Ожидания по ссылкам на документацию: rejection reasons should open privacy or event-contract docs, and field chips should open /fields#....
privacy-guard
Экран: Privacy Guard
События/данные: privacy_guard_violation, forbidden data stats
Зачем QA: Доказать, что ПДн/DOM не утекают.
Что показывать: Dropped fields, violation_type, collector.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
unknown-suspect-mapping
Экран: Неизвестный / сомнительный mapping
События/данные: unknown_mapping_detected
Зачем QA: Искать дыры в разметке.
Что показывать: Счетчики unknown page/block/element/group, hash и page_code.
Ожидания по ссылкам на документацию: типы событий, derived-типы, reason codes и ключевые поля в этом окне должны открывать Nextra-документацию, если backend вернул doc_path, reason_doc_path или field_docs.
bot-detection-checklist
Bot detection is a dashboard interpretation layer, not a fingerprinting feature.
too_many_events_per_sec: Событий в секунду слишком много fromevent_ts,event_index,batch events; if missing, confidence low, не обвинять без других сигналов.too_fast_page_sequence: Слишком быстрый путь по страницам frompage_view sequence; if missing, partial если page events missing.clicks_without_active_time: Нулевое active time при кликах fromactivity_checkpoint + click; if missing, not_available если activity disabled.regular_intervals: Регулярные интервалы между событиями fromevent_ts gaps; if missing, нужен минимум N событий.many_clicks_no_scroll_pointer: Нет скролла/мыши, но много кликов fromscroll/pointer/click; if missing, на mobile pointer может быть not_available.form_fill_too_fast: Слишком быстрое заполнение формы fromform_focus/change/submit; if missing, если field changes disabled — использовать focus/submit.webdriver_true: webdriver flag fromsession_start context; if missing, не единственный критерий.impossible_viewability: Нереалистичная видимость объектов fromobject_visibility_checkpoint; if missing, учесть layout/viewport.repeated_identical_clicks: Повторяющиеся одинаковые клики fromclick; if missing, нужен dedupe.transport_anomaly: Transport anomalies frombatch_result; if missing, не основной сигнал.
performance-checklist
- Keep row rendering virtualized or scroll-contained for long sessions.
- Avoid loading full payload history until a session is selected.
- Show counts per window before rendering detailed payload JSON.
- Keep payload previews scroll-contained and capped.
- Do not fetch docs content inline; use links to Nextra routes.
privacy-checklist
- Never display raw form values, cookies, raw query strings, raw text, or full DOM.
- Rejected rows show reason and shape only.
- Copy/select windows show hash/length/code metadata only.
- Transport rows show safe status and counts, not raw request bodies.
- Mapping QA uses codes and rule ids, not HTML snippets.