Перейти к основному содержимому
Версия: 1.26.0

Версия 1.26.0

В новой версии мы добавили возможность использовать переменные REST-запросов в заголовках, что увеличивает гибкость системы и расширяет возможности для создания скриптов. Другое важное нововведение – возможность подключения к внешним базам данных для простой и распределенной схем размещения компонентов системы.

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

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

Помимо этого, мы провели ряд системных улучшений, направленных на повышение производительности и безопасности системы: реализовали компонент Sentinel для Redis, чтобы надежно хранить токены и сессии пользователей без прерывания сессий, и обновили версии HAProxy и части библиотек, используемых в микросервисах.

Новая функциональность


Использование переменных REST-запросов в заголовках

Мы добавили возможность использования переменных в REST-запросах. Функциональность позволяет создавать переменные, которые можно использовать в REST-запросах для динамической подстановки данных. Для этого создана новая таблица Переменные запросов REST / REST Request Variable (sys_rest_request_variable), доступная в навигаторе Клиент REST API → Переменные.

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

  • URL (endpoint, path parameters, query parameters)
  • заголовки (headers)
  • тело запроса (body)

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

Подробнее читайте в документации.

Подключение к внешним базам данных

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

Подробная информация о настройке подключения к внешней базе данных добавлена в эксплуатационную документацию.

Виджет для отображения баннеров на портале

Создан новый виджет Image Carousel, с помощью которого можно добавить баннеры на портал:

Записи баннеров хранятся в новой таблице Изображения карусели (carousel_image). Для каждого баннера необходимо прикрепить изображение для мобильной и десктоп-версии, а также указать ссылку, которая будет открываться в новой вкладке по нажатии на баннер.

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

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

Учет корпоративных ролей сотрудников

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

Для этого мы добавили две новые таблицы:

  • Корпоративные роли / Business Role (org_role) – список бизнес-ролей, доступных в системе.
  • Корпоративные роли сотрудников / Employee Business Role (org_role_employee) – бизнес-роли, присвоенные сотрудникам.

На форму Сотрудники / Employee добавлен связанный список Корпоративные роли сотрудника / Employee Business Roles, где можно увидеть все корпоративные роли сотрудника. На форму Компании / Company (org_company) добавлен связанный список Корпоративные роли сотрудников / Employee Business Roles, где можно увидеть всех сотрудников компании и корпоративные роли, которые им присвоены.

Подробнее читайте в документации.

Улучшения


Использование Redis Sentinel для авторизации

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

Обновление версии HAProxy

Мы обновили HAProxy до версии 3.03, что позволило устранить ряд уязвимостей и повысить общую производительность системы.

Исправления


DEF0020690: Индикации с условием Изменяется / Changes to работали некорректно с бизнес-правилами. Система считывала запуск бизнес-правила после сохранения записи пользователем как еще одно изменение записи, что приводило к ошибкам. Например, индикация могла принять неправильный статус при запуске бизнес-правила. Эта проблема решена, и теперь запуск бизнес-правил не учитывается в условиях индикаций Изменяется / Changes to.

DEF0019713: Поля ввода Ленты активности, добавленной с помощью Simple-тега activityFeed, становились неактивными, если на форме присутствовал элемент, добавленный с помощью Simple-тега rem. Теперь в таком случае поля доступны для ввода.

DEF0019433: После обновления PHP до версии 8.2, появились задержки в получении входящей почты: при отправке большого количества писем они приходили раз в минуту или реже. После устранения дефекта письма стали приходить чаще, примерно раз в десять секунд.

DEF0019049, DEF0019042, DEF0019041: В микросервисах Monolith-mediator, Dot-walking, Delay-queue использовались уязвимые версии библиотек x/net и grpc. Мы обновили их до версий, в которых уязвимости исправлены.

DEF0017775: Виджеты Static User Information SA, Static Task Information SA считывали и выполняли инъекции Javascript в полях записи (например, в имени пользователя) при обновлении страницы, потому что в клиентских скриптах виджетов использовалось уязвимое свойство Element.innerHTML. Такая же проблема возникала, если в записи входящего сообщения была инъекция Javascript: он выполнялся при возврате в список с формы записи, при предпросмотре записи и при использовании контекстного действия Информация / Field info. Мы заменили методы, используемые в клиентских скриптах этих виджетов, поэтому подобная ситуация не повторится.

Помимо этого, мы добавили новый метод класса SimpleWidgetssanitizevalue(). Метод позволяет очищать текстовое содержимое от возможных инъекций Javascript. Обращайтесь к новому методу, когда использование метода s_widget.addTemplate() недоступно для обертки потенциально опасных значений, чтобы избежать выполнения инъекций. Подробнее читайте в документации.

DEF0017662: Пользователь без ролей мог создать запись в Ленте активности с помощью метода create-thread и получить всю историю Ленты активности записи, не имея прав на доступ к ней. Мы исправили эту уязвимость, и теперь при использовании метода проверяется уровень доступа пользователя к записи, на которой расположена Лента активности, и к полям записей Ленты активности (имя пользователя, аватар).