AstraRegul
Релиз 2025.08.15.00
×

4.2.1.3.1. Политики настроек

Политики настроек позволяют:
Централизовать управление настройками работы нескольких экземпляров Сервера и баз данных:  общие настройки могут быть собраны в едином хранилище
Автоматически распространять и применять обновления настроек к экземплярам Сервера и базам данных без перезапуска
 
Сервер кэширует содержимое политики своих настроек и баз данных и отслеживает их обновления.
Политики настроек могут использоваться совместно с локальными настройками.
Привязка к политике указывается в файлах определения экземпляра Сервера (server.jsonc) и базы данных (db.jsonc), в параметре config_policy.
 

Содержимое политики настроек

Содержимое каждой отдельной политики - JSON-строка, идентичная содержимому файла локальных настроек config/local.jsonc Сервера и баз данных:
В корне - настройки для Сервера
В разделе 3x - настройки для баз данных формата 3x
В разделе 4x - настройки для баз данных формата 4x
{
//Разделы настроек работы Сервера
"api": { ... },
"async_query": { ... },
...
//Настройки работы баз данных формата '3x'
"3x": { ... },
 
//Настройки работы баз данных формата '4x'
"4x": { ... }
}
 
Благодаря такому устройству, для Сервера и баз данных может использоваться одна или раздельные политики в различных комбинациях.
 

Кэширование политики настроек в файле config/policy.jsonc

Кэширование содержимого политики настроек Сервера и баз данных выполняется единообразно: при получении содержимого политики она сохраняется локально в файле в файле config/policy.jsonc в папке конфигурации Сервера или базы данных.
 

Вычисление эффективных настроек при использовании политик

 
Если используются политики, то вычисление эффективных значений настроек выполняется при их загрузке (в ходе запуска или при перезагрузке в процессе работы) выполняется путём сведения содержимого локальных настроек (файл config/local.jsonc) и политики настроек (кэш содержимого в файле config/policy.jsonc). Сведение осуществляется следующим образом:
Изначально параметрам присваиваются значения по умолчанию (приведены в шаблонных файлах конфигураций)
Если существует файл кэша политики настроек config/policy.jsonc, то загружается его содержимое. Значения параметров, указанных в файле, переопределяют ранее присвоенные значения.
Если существует файл локальных настроек config/local.jsonc, то загружается его содержимое. Значения параметров, указанных в файле, переопределяют ранее присвоенные значения.
 
Содержимое файла локальных настроек имеет приоритет над содержимым политики настроек.
 
Файл кэша политики config/policy.jsonc в конфигурации Сервера или базы данных может отсутствовать:
если политика не используется;
содержимое политики ещё не было получено, либо он был удалён вручную.
 
Полученные таким образом эффективные значения настроек применяются к Серверу или базе данных.

Хранение политики настроек

 
Для хранения политики настроек в конфигурации Astra.Security (LDAP-хранилище) должно быть определено следующее (названия приложения и элемента безопасности условны):
Пользователь DefaultUser, от имени которого Сервер будет осуществлять запрос содержимого политики
Приложение App
Строковый элемент безопасности Token
Право для пользователя DefaultUser на элемент безопасности App/Token
 
Содержимое политики сохраняется в строке разрешения с индексом 0.
 
Для каждой отдельной политики должен быть определён свой элемент безопасности. При этом политика может объединять настройки и Сервера, и баз данных.
 

Применение обновлений политики настроек

 
В случае использования политик настроек Сервер поддерживает подключение к Astra.Security.Agent и подписку на элементы безопасности, указанные в привязках к политикам в файлах определения экземпляра Сервера и баз данных.
 
После успешного установления соединения с Astra.Security.Agent и подписки на элемент безопасности, Сервер получает содержимое политики настроек и кэширует его. Далее в случае получения обновлений содержимого (по уведомлениям от Агента Astra.Security) Сервер обновляет содержимое кэша. В фоновой процедуре выполнения периодически (раз в 2 секунды) Сервер проверяет наличие обновлений кэша.
 
Для каждого элемента безопасности, содержимое которого изменилось с момента предыдущей проверки, Сервер выполняет следующие действия:
Для каждой базы данных, привязанной к политике, соответствующей элементу безопасности, Сервер выполняет следующие действия:
Сохраняет содержимое в файле кэша политики настроек config/policy.json
Вызывает процедуру применения обновления настроек
Если это политика, к которой привязан Сервер, то аналогичные действия он применяет по отношению к себе
 
Сервер выводит сообщения в журнал о получении обновлений политик и их применении, а также ошибки в случае их возникновения.
 
Не следует локально изменять содержимое файла config/policy.jsonc, т.к. при перезапуске или получении обновления политики в ходе работы содержимое будет повторно сохранено в файл, что приведёт к потере модификаций. Для внесения локальных изменений предназначен файл config/local.jsonc.
 

Перезагрузка настроек в процессе работы

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