Операторская роль в Gotcha 0.4.12: отдать команде мониторинг, не раздавая админку
В Gotcha 0.4.12 главное изменение — операторская роль для команд проектов. Пока инстансом пользуется один человек, вопрос прав не возникает: владелец и есть админ. Но как только за продом начинает дежурить команда, всплывает неприятная развилка: либо каждому дежурному выдавать админку всей организации, либо каждое действие «поставь монитор на паузу, у нас деплой» проходит через владельца.
Теперь эта развилка не нужна.
Что может участник команды проекта
Участнику команды доступно всё повседневное обслуживание мониторинга — без повышения до администратора организации:
- аптайм-мониторы: создать, отредактировать, поставить на паузу и снять с неё, удалить;
- heartbeat: получить и перевыпустить пинг-токен;
- окна обслуживания — чтобы плановые работы не будили алертами;
- контент статус-страницы;
- правила алертов по ошибкам и метрик-алерты.
То есть типичный сценарий «у нас релиз: приостановили проверки, открыли окно обслуживания, после выкладки вернули как было» команда закрывает сама, целиком.
Где проходит граница
Каналы алертов — Telegram-бот, SMTP, webhook — остаются у владельца и админов. Логика такая: получатель и секрет канала (токен бота, адрес, URL вебхука) — это учётные данные, а не операционная настройка. Оператор видит список каналов и журнал доставки, но получатели в них маскируются, а создать или изменить канал он не может.
Публикация статус-страницы и настройки проекта и организации тоже остаются за owner/admin — это решения уровня «что мы показываем наружу», а не «как мы дежурим».
Заодно по безопасности
Два изменения того же релиза продолжают ту же линию — меньше мест, где чужие данные лежат открыто:
- Заголовки мониторов шифруются при хранении. Если HTTP-проверка ходит с
Authorization-заголовком, его значение теперь хранится так же, как секреты каналов алертов — зашифрованным. - Адрес статус-страницы стал непрозрачным ключом вида
/status/p_...вместо выбираемого вручную слага. Слаги были общими на весь инстанс: по ним можно было перебором выяснять, какие имена заняты другими организациями, а короткие имена — просто застолбить. Ключ снимает обе проблемы; старые ссылки/status/<slug>продолжают работать через 301-редирект, публичным именем страницы теперь служит её заголовок.
Мелочи и фиксы
- Кнопка Copy на странице события: контекст ошибки копируется в буфер одним кликом — в Markdown или как обычный текст. Удобно вставлять в тикет, чат или промпт.
- Ingest получил защиту памяти на случай простоя ClickHouse, честный учёт очередей и квот и атрибуцию потерь по организациям.
- Повреждённый секрет канала больше не считается рабочим — алерты на этом пути не теряются.
- Фиксы консенсуса аптайм-проверок, окон обслуживания и OAuth-приглашений.
- Доки: раздел SDK теперь покрывает расширения для CMS — WordPress, Joomla, 1С-Битрикс, Drupal, OpenCart, MODX и Tilda, — а в инструкции по установке появился путь для AlmaLinux/RHEL.
Как обновиться
Штатно: обновление образа и перезапуск, миграции применятся сами — подробности в инструкции по обновлению. Релиз сводный и включает docs-обновление 0.4.11.
Полный список изменений — в релизе на GitHub.