Документация

Системные настройки и наследование в группах

Версия v2.5.0 · Обновлено

Системные настройки и наследование в группах#

Это проект общей модели для настроек, которые администратор меняет во время работы IR. В базе хранятся два переключателя и 12 числовых параметров Change Intelligence. Все они действуют для всей установки. Справочник настроек описывает диапазоны и момент применения значений. Для этапа 2.4 второй итерации Change Intelligence первым групповым параметром выбрано окно корреляции. Его определяет группа сервиса выбранного эпизода алерта, с наследованием системного значения. Реализация запланирована в архитектуре Change Intelligence.

Как выбирается значение#

Каждый параметр по умолчанию системный. При добавлении группового переопределения разработчик явно указывает, для какого параметра оно разрешено, кто вправе его менять и когда потребитель применяет новое значение.

Состояние параметраКакое значение применяет IR
Параметр системныйСистемное значение для всех групп. API отклоняет попытку переопределения.
Для параметра разрешено переопределение, группа наследуетТекущее системное значение. Изменение системной настройки действует и для этой группы.
Группа задала своё значениеЗначение группы, даже если оно равно системному. Дальнейшие изменения системной настройки на эту группу не влияют.
Группа выбрала «Наследовать»Переопределение удаляется. Со следующего чтения снова действует текущее системное значение.

Например, для логического параметра явное false остаётся выбором группы, даже если системное значение позже сменится на true. Для фонового задания группу определяет принадлежность обрабатываемого объекта. Выбор группы в интерфейсе влияет только на то, какую группу администратор просматривает. Операция уровня установки читает системное значение.

Хранение и изменение#

Таблица system_settings содержит одну строку с типизированными полями. Глобальный администратор редактирует их в разделе Администрирование → Системные настройки. Для групповых переопределений запланирована отдельная таблица с внешним ключом на Group и максимум одной строкой на группу. В ней предусмотрены поля только для разрешённых групповых параметров. Отсутствие строки или NULL в поле означает наследование. Это оставляет false и 0 доступными явными значениями там, где они допустимы. Новая группа сразу наследует настройки, без копирования системных значений.

Общий сервис возвращает действующее значение и его источник — «система» или «группа». В групповом интерфейсе для каждого разрешённого параметра доступны явный выбор и возврат к наследованию. Глобальный администратор управляет системными значениями. Право менять групповой параметр делегируется явно и проверяется на сервере для конкретной активной группы с учётом ролей IR.

Изменение затрагивает только переданные поля. В той же транзакции аудит сохраняет автора, область действия, идентификатор группы для групповой правки и переход между прежним и новым состояниями. Переход от наследования к явному значению фиксируется даже при совпадении действующих значений. Повтор той же операции вторую запись не создаёт.

Когда появится первый групповой параметр#

Добавить таблицу переопределений вместе с первым потребителем. Для выбранного параметра указать, как потребитель определяет группу и в какой момент читает значение. При переносе из файла сохранить прежнее действующее значение на системном уровне, а группы первоначально оставить в режиме наследования.

Проверки на SQLite и PostgreSQL должны охватить две группы с разными настройками, изменение системного значения, сброс к наследованию, явное значение, совпадающее с системным, и отказ при попытке изменить чужую группу или системный параметр через групповой API. Отдельно проверить параллельные правки разных полей и откат настройки при ошибке аудита.