Перейти к основному содержанию

Улучшенная обработка секретов в вебхуках

Демонстрация от @dhable
URL-адреса вебхуков и заголовки часто содержат учетные данные в открытом виде. URL Slack-вебхука содержит секретный токен в пути, а HTTP-вебхуку обычно нужен заголовок Authorization для аутентификации. До этого релиза внутренний API HyperDX для просмотра списка и редактирования вебхуков возвращал все эти данные в каждом ответе, а это означало, что любой аутентифицированный участник команды мог прочитать секреты, просто обратившись к API. В этом изменении используется тот же шаблон маскирования, который уже применялся в публичном API. URL-адреса вебхуков теперь возвращаются с путем, замененным на ****, поэтому токен Slack (или любой другой ключ, встроенный в путь) никогда не покидает сервер. Заголовки тоже по умолчанию маскируются, поскольку у нас нет надежного способа определить, какие из них содержат секреты, поэтому все значения заменяются на ****, и видны только имена заголовков. Форма редактирования воспринимает замаскированное значение как «без изменений»: если оставить его как есть, сохраненное значение не изменится; если изменить — будет сохранено новое значение; если очистить — поле будет полностью удалено. Это делает процесс понятным для типичного сценария (редактирование одного поля) и при этом не допускает, чтобы реальный секрет передавался через браузер туда и обратно. Связанные PR: #2239 [HDX-4173] Маскирование чувствительных полей в ответах внутреннего API вебхуков

Дополнительные метаданные в оповещениях

Демонстрация от @dhable
В Slack-сообществе попросили добавить в оповещения произвольный контекст — место, куда можно поместить историю порога срабатывания, ссылки на runbook’и или заметки для дежурного инженера. Это также удобно как источник достоверных данных для ИИ-сводок: теперь любая LLM, отвечающая на сработавшее оповещение, может опираться на рассуждения самого оператора, а не пытаться угадать смысл только по запросу. Поле заметки поддерживает рендеринг markdown, поэтому работают и сворачиваемые секции, и списки, и ссылки. Оно хранится в конфигурации оповещения и отображается везде, где это оповещение показывается. UX ещё не окончательно сформирован: поддержка markdown здесь — лишь отправная точка, и мы будем рады отзывам о том, как всё это должно отображаться. Заодно в этом PR также привели в порядок UX для сработавших оповещений в сохранённых поисках. На значке колокольчика у кнопки Alerts появляется красная точка, когда что-то срабатывает, в диалоговом окне теперь подсвечивается активное оповещение, а не просто даётся ссылка на него, и визуальное оформление теперь соответствует тому, как для того же состояния уже ведут себя плитки на панели мониторинга. Связанные PR: #2210 [HDX-3044] Add optional note field to alerts

Возможные темы

Демо от @elizabetdev
Это был эксперимент в рамках хакатона: в интерфейс ClickStack добавили три темы в стиле IDE — Nord (арктические синие оттенки), Catppuccin (пастельная) и One Dark (в стиле Atom), каждая в светлом и тёмном вариантах. Мы попробовали использовать сгенерированные цветовые токены из исходных тем, и это почти дало нужный результат, хотя оставались шероховатости в цветах боковой панели и контрастности линий, которые всё ещё требовали доработки. В итоге PR закрыли, а не объединили. Команда движется в сторону ClickUI, который сейчас поддерживает только одну тему, а поддержка нескольких параллельных наборов токенов создала бы постоянный объём работы, особенно если всерьёз проверять контрастность для каждой комбинации. Поэтому решили отложить это до тех пор, пока сам ClickUI не начнёт поддерживать несколько тем. Мы посчитали, что одну дизайнерскую идею из этого эксперимента стоит сохранить на будущее, если к этому вернутся. В первой итерации логотип HyperDX перекрашивали под каждую тему, из-за чего терялась фирменная айдентика. Более удачный подход: в светлой теме показывается тёмный логотип, в тёмной — светлый, а зелёный wordmark HyperDX остаётся без изменений. Связанные PR: #2191 feat: add IDE-inspired themes (Nord, Catppuccin, One Dark)
Последнее изменение 12 июня 2026 г.