6. Конфигурирование сервера
СМЭВ QL сервер содержит два конфигурационных файла:
application.yaml - конфигурирует поведение сервера;
credentials.yaml - конфигурирует представление сервера.
6.1. Конфигурация файла application.yml
storage: # Блок параметров хранения информации
adapter: redis # На текущий момент поддерживается только redis
pool: # Настройка подключений к redis
- host: 127.0.0.1
port: 6379
max_pool_size: 20 # Максимальный размер пула соединений
user: "" # Пользователь для подключения к redis
password: "" # Пароль
access: # Блок настроек доступа к выполнению операций чтения данных и операций стейтмашины. Допускается задание черного или белого списка
black_list: [ ] # Указывает список потребителей, для которых доступ запрещен
white_list: [ ] # Указывает список потребителей, для которых доступ разрешен
request:
timeout: 20s # Таймаут исполнения запросов
base_path: smevql/api/v1 # Префикс для всех роутов
max_nested_level: 5 # Предельная вложенность запрашиваемых ресурсов
pagination:
default: 100 # Количество элементов на странице по умолчанию
max: 1000 # Максимальное количество элементов на странице
logging:
long:
duration: 20s # Продолжительность исполнения запросов к источникам, выше которой необходимо производить логирование
percentage: 100 # Процент логирования длительных запросов к источникам. Допустимо использовать вещественные числа, например, 0.1 - только каждый тысячный долгий запрос
limits: # Блок параметров конфигурации лимитов
total: # Параметры по всем запросам
value: 500000 # Общее число запросов в период времени
period: 1D # Период лимитирования
mnemonic: # Блок настроек лимитирования по потребителям
value: 5000 # Число запросов в период времени
period: 1D # Период лимитирования
purpose: # Блок настроек лимитирования по целям
value: 5000 # Число запросов в период времени
period: 1D # Период лимитирования
user: # Блок настроек лимитирования по пользователям
value: 1000 # Число запросов в период времени
period: 1D # Период лимитирования
records_ttl:
day: 1M # Период хранения дневной статистики
week: 1M # Период хранения статистики за неделю
month: 1Y # Период хранения статистики за месяц
year: 2Y # Период хранения статистики за год
async: # Блок настроек асинхронного выполнения запросов
request_in: 10s # Значение интервала опроса получения данных асинхронного результата. Выдается в качестве значения атрибута request_in на запрос получения данных
read_timeout: 5m # Таймаут вычитывания асинхронных данных из источников. Используется для источников с типом smevql, если была возвращена информация по асинхронным результатам
delta:
commit_interval: 60s # Интервал фиксации дельты источника при изменении данных
force_commit_interval: 30m # Интервал принудительной фиксации дельт всех источников
state:
max_nested_event: 5 # Максимально допустимая вложенность связанных переходов стейт машины
max_updated_rows: 1 # Максимальное количество обновляемых строк при событии стейт машины
index_recommendations: # Рекомендации по аналитике
period: 7D # Период формирования. 7 дней
push: # Настройки отправки push уведомлений
notification_path: /notify # Шаблон пути агента, на который необходимо отправлять нотификации
state_machine_enabled: true # Признак публикации нотификаций на основе событий стейт машины
retry:
max_attempts: 3 # Количество попыток отправки нотификации
min_period: 5s # Минимальный период ожидания перед повторной попыткой
max_period: 10s # Максимальный период ожидания перед повторной попыткой
agent: # Параметры конфигурирования агента ПОДД
host: 127.0.0.1 # Хост агента
port: 8171 # Порт приема api-gateway запросов
mnemonic: "" # Мнемоника агента
signature: # Блок настроек механизма подписания
enabled: true # Признак включения подписания и проверки подписи
validate_enabled: false # Признак предоставления дополнительного URL проверки подписи
algorithm: "GOST3410_2012_256" # Алгоритм формирования подписи
serial_number: "" # Серийный номер ключа подписи
alias: "" # Алиас ключа. Заполняется либо серийный номер, либо алиас
notarius: # Блок настроек сервиса Notaris, используемый для подписания
host: localhost # Хост, на котором доступен Notaris
port: 8080 # Порт, на котором доступен Notaris
Настройка конфигурации СМЭВ QL сервера осуществляется путем редактирования параметров настроек в файле application.yml.
В файле конфигурации СМЭВ QL сервера могут быть настроены следующие секции:
storage- Управление подключением к внутреннему хранилищу данных СМЭВ-QL;access- Блок настроек доступа к выполнению операций чтения данных и операций стейт-машины;request- Блок настроек исполнения запросов;delta- Управление принудительными коммитами дельт витрин данных;state- Установка ограничений в машинах-состояний;index_recommendations- Рекомендации по аналитике;push- Настройки отправки push уведомлений;agent- Параметры конфигурирования агента ПОДД;signature- Блок настроек механизма подписания.
6.1.1. Секция storage
В секции storage хранятся параметры хранения информации, например:
storage: # Блок параметров хранения информации
adapter: redis # На текущий момент поддерживается только redis
pool: # Настройка подключений к redis
- host: 127.0.0.1
port: 6379
max_pool_size: 20 # Максимальный размер пула соединений
user: "" # Пользователь для подключения к redis
password: "" # Пароль
Параметры конфигурации
adapter- Система хранения данных, на текущий момент поддерживается только redis;pool- Указание перечня host и port для подключения к хранилищу данных;host- Адрес хоста;port- Порт хоста;max_pool_size- Максимальный размер пула соединений;user- Пользователь для подключения к redis;password- Пароль подключения.
6.1.2. Секция access
В секции access хранятся настроек доступа к выполнению операций чтения данных и операций стейт-машины.
Допускается задание черного или белого списка.
Например:
access: # Блок настроек доступа к выполнению операций чтения данных и операций стейтмашины. Допускается задание черного или белого списка
black_list: [ ] # Указывает список потребителей, для которых доступ запрещен
white_list: [ ] # Указывает список потребителей, для которых доступ разрешен
Параметры конфигурации
black_list- массив потребителей, для которых доступ запрещен;white_list- массив потребителей, для которых доступ разрешен.
6.1.3. Секция request
В секции request хранятся настройки исполнения запросов, например:
request:
timeout: 20s # Таймаут исполнения запросов
base_path: smevql/api/v1 # Префикс для всех роутов
max_nested_level: 5 # Предельная вложенность запрашиваемых ресурсов
pagination:
default: 100 # Количество элементов на странице по умолчанию
max: 1000 # Максимальное количество элементов на странице
logging:
long:
duration: 20s # Продолжительность исполнения запросов к источникам, выше которой необходимо производить логирование
percentage: 100 # Процент логирования длительных запросов к источникам. Допустимо использовать вещественные числа, например, 0.1 - только каждый тысячный долгий запрос
limits: # Блок параметров конфигурации лимитов
total: # Параметры по всем запросам
value: 500000 # Общее число запросов в период времени
period: 1D # Период лимитирования
mnemonic: # Блок настроек лимитирования по потребителям
value: 5000 # Число запросов в период времени
period: 1D # Период лимитирования
purpose: # Блок настроек лимитирования по целям
value: 5000 # Число запросов в период времени
period: 1D # Период лимитирования
user: # Блок настроек лимитирования по пользователям
value: 1000 # Число запросов в период времени
period: 1D # Период лимитирования
records_ttl:
day: 1M # Период хранения дневной статистики
week: 1M # Период хранения статистики за неделю
month: 1Y # Период хранения статистики за месяц
year: 2Y # Период хранения статистики за год
async: # Блок настроек асинхронного выполнения запросов
request_in: 10s # Значение интервала опроса получения данных асинхронного результата. Выдается в качестве значения атрибута request_in на запрос получения данных
read_timeout: 5m # Таймаут вычитывания асинхронных данных из источников. Используется для источников с типом smevql, если была возвращена информация по асинхронным результатам
Параметры конфигурации
timeout- Таймаут исполнения запросов;base_path- Префикс для всех роутов;max_nested_level- Предельная вложенность запрашиваемых ресурсов;pagination- Управление количеством элементов при ответе;logging- Управление логированием «долгих» запросов;limits- Установка ограничений на количество запросов;async- Блок настроек асинхронного выполнения запросов.
6.1.4. Секция delta
В секции delta осуществляется управление принудительными коммитами дельт витрин данных.
Например:
delta:
commit_interval: 60s # Интервал фиксации дельты источника при изменении данных
force_commit_interval: 30m # Интервал принудительной фиксации дельт всех источников
Параметры конфигурации
commit_interval- Интервал фиксации дельты источника при изменении данных, например 60s;force_commit_interval- Интервал принудительной фиксации дельт всех источников, например 30s.
Если commit_interval: 0 и force_commit_interval: 0, то для добавления/изменения/удаления данных в Prostore не используется
механизм открытия и закрытия дельт, а данные меняются прямым запросом.
При этом возникают следующие ограничения:
В бекап текущей реализации данные, софрмированние вне дельт, не попадают;
В результаты запросов к материализованным представлениям данные , софрмированние вне дельт, не попадают;
В рамках подписок данные , софрмированние вне дельт, не передаются.
6.1.5. Секция state
В секции state устанавливаются ограничения в стейт машинах.
Например:
state:
max_nested_event: 5 # Максимально допустимая вложенность связанных переходов стейт машины
max_updated_rows: 1 # Максимальное количество обновляемых строк при событии стейт машины
Параметры конфигурации
max_nested_event- Максимально допустимая вложенность связанных переходов стейт машины, например 5;max_updated_rows- Максимальное количество обновляемых строк при событии стейт машины, например 1.
6.1.6. Секция index_recommendations
Секция index_recommendations содержит рекомендации по аналитике, например:
index_recommendations: # Рекомендации по аналитике
period: 7D # Период формирования. 7 дней
Параметры конфигурации
period- устанавливается период формирования аналитики, например 7 дней.
6.1.7. Секция push
Секция push содержит настройки сервиса формирования push-уведомлений.
Например:
push: # Настройки отправки push уведомлений
notification_path: /notify # Шаблон пути агента, на который необходимо отправлять нотификации
state_machine_enabled: true # Признак публикации нотификаций на основе событий стейт машины
retry:
max_attempts: 3 # Количество попыток отправки нотификации
min_period: 5s # Минимальный период ожидания перед повторной попыткой
max_period: 10s # Максимальный период ожидания перед повторной попыткой
Параметры конфигурации
notification_path- Шаблон пути агента, на который необходимо отправлять нотификации;state_machine_enabled- Признак публикации нотификаций на основе событий стейт машины;retry- настройки попыток отправок нотификаций.
6.1.8. Секция agent
В секции agent указываются параметры подключения к агенту СМЭВ4 поставщика, например:
agent: # Параметры конфигурирования агента ПОДД
host: 127.0.0.1 # Хост агента
port: 8171 # Порт приема api-gateway запросов
mnemonic: "" # Мнемоника агента
Параметры конфигурации
host- Хост агента;port- Порт приема api-gateway запросов;mnemonic- Мнемоника агента.
6.1.9. Секция signature
В секции signature настраивается управление механизмом цифровой подписи.
Например:
signature: # Блок настроек механизма подписания
enabled: true # Признак включения подписания и проверки подписи
validate_enabled: false # Признак предоставления дополнительного URL проверки подписи
algorithm: "GOST3410_2012_256" # Алгоритм формирования подписи
serial_number: "" # Серийный номер ключа подписи
alias: "" # Алиас ключа. Заполняется либо серийный номер, либо алиас
notarius: # Блок настроек сервиса Notaris, используемый для подписания
host: localhost # Хост, на котором доступен Notaris
port: 8080 # Порт, на котором доступен Notaris
Параметры конфигурации
enable- Включение (true), отключение (false) подписи ответов и проверки подписей других источников;validate_enabled- Признак предоставления дополнительного URL проверки подписи (доступность вызова REST-метода проверки подписи);algorithm- Алгоритм формирования подписи. На текущий момент доступен только GOST3410_2012_256;serial_number- Серийный номер ключа подписи;alias- Алиас ключа. Заполняется либо серийный номер, либо алиас;notarius- Настройки подключения (host и port) к модулю крипрографии notarius.
6.2. Конфигурация файла credentials.yml
version: 1.0.0
system:
mnemonic: smev_ql_mnemonic
instance: smev_ql_instance