
Наименование инстансов
Чтобы длинные наименования инстансов отображались полностью, мы увеличили область отображения названия инстанса:
- На странице авторизации — наименование инстанса теперь полностью отображается:
- В левом верхнем углу
- Над полями для ввода логина и пароля
- На странице с ошибкой о неудачной попытке входа.
- В основном разделе и разделе Администрирование:
- Если наименование инстанса не помещается в доступную для отображения область, автоматически будет уменьшен размер шрифта до 14px
- Для коротких наименований используется стандартный размер шрифта
- Наименование будет обрезано троеточием, если:
- После уменьшения шрифта название не помещается в доступную область
- Оно выходит за пределы области отображения
Отчеты
- Мы продолжили расширять возможности визуализации в отчетах — теперь вы можете выбрать еще два типа диаграмм: Линейчатая диаграмма и Линейчатая диаграмма с накоплением:
- В линейчатых диаграммах значения представлены горизонтальными полосами, длина которых пропорциональна величине отображаемых значений
- Параметры двух новых диаграмм аналогичны настройкам столбчатых диаграмм, но названия столбцов формируются из значений поля, указанного в параметре Ось Y, а значения — по параметру Ряд
- При изменении типа диаграммы параметры будут перенесены, за исключением перехода с Линейчатой диаграммы или Линейчатой диаграммы с накоплением на диаграммы Показатель
- При просмотре линейчатых диаграмм в отчете:
- Названия столбцов отображаются горизонтально слева от Оси Y (максимальная ширина области названия — 200px)
- Значения параметра Ряд группируются по значению из поля Ось Y с учетом выбранного формата
- Для линейчатых диаграмм с накоплением значения параметров Ряд отображаются в одном столбце (как для столбчатых диаграмм с накоплением)

- Изменили логику скачивания системных отчетов без предпросмотра — стало доступно скачивать системные отчеты в формате *.csv:
- В настройках системного отчета без предпросмотра добавили параметр, который позволяет указать доступный формат отчета для скачивания — *.xlsx или *.csv:
- Если значение не указано, отчет будет доступен для скачивания только в формате *.xlsx
- При скачивании отчета в формате *.csv будет загружен архив: <Название отчета>.zip
- Вне зависимости от формата, отчет будет скачиваться с учетом функции кэширования, которая позволяет скачивать отчеты даже при превышении таймаута запроса
- Для системных отчетов без предпросмотра изменили текст подсказки: Данный отчет сгенерирован автоматически и может быть только загружен как файл
- В настройках системного отчета без предпросмотра добавили параметр, который позволяет указать доступный формат отчета для скачивания — *.xlsx или *.csv:

Участники
Стало возможно автоматически заполнить сведения в карточке организации не только по ИНН, но и по ОГРН (если подключена интеграция с Casebook):
- При заполнении ОГРН выполняются проверки формата значения (только число) и количества символов (13 или 15 символов).
- Если проверки пройдены, а компания найдена в Casebook, откроется окно для выбора автоматического заполнения.
- Если по указанному ОГРН найдено несколько организаций, в Case.one будут загружены:
- Сведения организации, деятельность которой не прекращена, если найдена действующая организация
- Сведения первой найденной организации, если действующих организаций не найдено

События и задачи
Теперь вы можете более гибко настраивать напоминания о событиях и задачах, чтобы точно не пропустить нужные сроки и эффективнее управлять своим рабочим временем:
- На формах создания/изменения событий и задач вынесли поле Напоминание в отдельный блок:
- По умолчанию напоминания не настроены
- Справа от названия блока отображается кнопка Добавить
- При добавлении напоминания будут указаны значения по умолчанию:
- Для событий, которые длятся весь день — В 14:00 (UTC+X) за 1 день (Х — часовой пояс аккаунта)
- Для задач и событий, у которых не установлен флаг Весь день — За 5 минут
- Можно добавить несколько напоминаний (ограничений не предусмотрено)
- Если добавлено несколько напоминаний, при повторном открытии формы задачи/события они будут отображаться в хронологическом порядке (от наиболее отдаленного к сроку выполнения задачи/начала события к наиболее близкому)
- Доступно удалить любое напоминание с помощью кнопки

и подтверждения удаления
- Для событий вы можете настроить напоминания со следующими условиями:
- Для событий, которые длятся весь день:
- В HH:MM (UTC+X) — можно выбрать время из списка с интервалом в 30 минут в часовом поясе аккаунта и дополнительно указать другие параметры напоминания:
- В день события — если выбрано значение, дополнительные поля не отображаются, но напоминание будет отображаться для всех участников события
- За — можно настроить интервал и период напоминания до начала события:
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- 1 день
- 2 дня
- 4 дня
- 1 неделю
- 2 недели
- Период — можно выбрать 1 значение из списка:
- День
- Неделя
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- В HH:MM (UTC+X) — можно выбрать время из списка с интервалом в 30 минут в часовом поясе аккаунта и дополнительно указать другие параметры напоминания:
- Для событий, у которых не установлен флаг Весь день:
- Во время начала события — если выбрано значение, дополнительные поля не отображаются
- За — можно настроить интервал и период напоминания до начала события:
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- 5 минут
- 15 минут
- 30 минут
- 1 час
- 2 часа
- 1 день
- 2 дня
- 1 неделю
- 2 недели
- Период — можно выбрать 1 значение из списка:
- Минута
- Час
- День
- Неделя
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- Для событий, которые длятся весь день:

При установке или снятии флага Весь день все добавленные ранее напоминания будут автоматически удалены (даже если они были сохранены).

- Для задач и подзадач вы можете настроить напоминания со следующими условиями:
- В срок выполнения задачи — если выбрано значение, дополнительные поля не отображаются
- За — можно настроить интервал и период напоминания до срока выполнения задачи:
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- 5 минут
- 15 минут
- 30 минут
- 1 час
- 2 часа
- 1 день
- 2 дня
- 1 неделю
- 2 недели
- Период — можно выбрать 1 значение из списка:
- Минута
- Час
- День
- Неделя
- Интервал — доступно указать вручную двузначное число или выбрать значение из списка:
- Через — можно настроить интервал и период напоминания после наступления срока выполнения задачи (значения полей интервала и периода аналогичны настройкам полей при выборе значения За)

Личный кабинет
Доработали email-уведомления по задачам, которые доступно настроить в личном кабинете на вкладке Уведомления:
- Для уведомления об истечении срока выполнения задачи:
- Доработали логику отправки уведомлений — email-уведомления будут приходить:
- В момент наступления срока выполнения задачи
- После истечения срока выполнения задачи, если по ней были добавлены напоминания с условием Через (см. выше)
- В текст письма добавили дату и время выполнения задачи:
- Дата и время отображаются в формате, который выбран в настройках аккаунта
- Время указывается в часовом поясе пользователя, которому отправлено уведомление
- Доработали логику отправки уведомлений — email-уведомления будут приходить:
- Добавили отдельное email-уведомление при изменении статуса задачи:
- Уведомление будет отправляться при изменении всех статусов задачи, за исключением закрытия задачи
- Если флаг Об изменении параметров задачи установлен, уведомление о смене статуса задачи будет отправлено:
- Пользователям, подписанным на дело
- Автору задачи
- Ответственному
- В уведомлении отображаются новый и прежний статусы задачи, доступен переход на форму задачи
Таблицы
Чтобы не отвлекаться на поиск нужной информации, теперь при работе с таблицами вы можете сразу посмотреть или изменить сведения об объекте на отдельной форме, не открывая карточку, и создавать новые карточки объектов:
- Предпросмотр объектов и создание новых карточек доступно:
- В карточке объекта и секциях с типом Таблица.
- Если в параметрах таблицы администратор указал соответствующие настройки:
- Установил возможность предпросмотра объектов
- Разрешил создавать новые карточки объектов

- На форме предпросмотра объекта (будет открыта при нажатии на название объекта в таблице):
- Отображаются следующие сведения:
- Все сведения из вкладок Основное и дополнительно созданных вкладок, кроме стадий объекта
- Информация из вкладки События (если вкладка настроена для отображения), за исключением:
- Панели фильтрации
- Кнопки добавления события или письма
- Справа от наименования вкладок объекта:
- Доступно меню-троеточие для действий с карточкой объекта (аналогично меню-троеточию в карточке объекта)
- Возможен переход в карточку объекта по ссылке
- Доступно редактирование полей созданных вкладок и вкладки Основное:
- Кнопка Сохранить отображается на всех вкладках формы предпросмотра, но неактивна до внесения изменений
- При внесении изменений без сохранения и перехода на другую вкладку отображается уведомление о необходимости сохранения
- При нажатии кнопки Сохранить выполняется проверка заполнения полей:
- Если все поля заполнены корректно, изменения будут сохранены, форма предпросмотра останется открытой
- Если есть незаполненные обязательные поля, они будут подсвечены, изменения не будут сохранены
- Если права на вкладки карточки объекта отсутствуют, при попытке открыть форму предпросмотра отображается ошибка о недостаточном уровне прав
- При прекращении доступа ко всем вкладкам в результате каких-либо действий:
- Форма предпросмотра будет закрыта
- Отобразится ошибка о недостаточном уровне прав
- Внесенные несохраненные изменения (при их наличии) не будут применены
- Отображаются следующие сведения:

- С помощью кнопки Создать можно добавить новую карточку объекта:
- На форме добавления нового объекта из таблиц:
- Поле Тип дела:
- Будет заполнено автоматически значением по умолчанию, если в настройках таблицы был выбран тип объекта для создания
- Не будет заполнено значением по умолчанию, если в настройках таблицы не выбран тип объекта или отсутствуют права на этот тип объекта
- Доступно выбрать другой тип объекта
- Поле Тип дела:
- На форме добавления нового объекта из таблиц:

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

- В секциях с типом Таблица доступно создание нового дела, без установки связи между карточками объектов.
Использование поля с типом "Гиперссылка"
Чтобы вам не приходилось открывать карточку объекта для перехода по ссылкам, мы добавили возможность открывать ссылки прямо при просмотре сведений из карточек объектов:
- В колонках в общем списке объектов как в стандартном режиме, так и в режиме с разбивкой по стадиям.
- В таблицах карточек объектов и при просмотре секции с типом Таблица.
- В пользовательских отчетах, если в качестве колонки отчета выбрано поле с типом Гиперссылка из объектов, клиентских запросов или доп. атрибутов.

Загрузка файлов
Добавили ограничения на размер выгружаемых файлов в форматах *.csv и *.xlsx и детальное описание ошибок при формировании файлов:
- Ограничения добавлены для:
- Отчетов любых типов
- Списка действий в системе
- Списка пользователей
- При формировании файлов в формате *.xlsx и системного отчета без предпросмотра в формате *.csv применяются следующие ограничения, срабатывающие по логическому И:
- Максимальный итоговый объем — 500 Мб
- Максимальный объем не сжатых данных в отчете — 2 Гб
- Максимальное количество ячеек в отчете — 40 млн.
- При формировании иных файлов в формате *.csv применяются следующие ограничения, срабатывающие по логическому И:
- Максимальный объем не сжатых данных в отчете — 2 Гб
- Максимальное количество ячеек в отчете — 40 млн.
- Если достигнуто одно или несколько ограничений:
- Файл не будет сформирован
- Отображается ошибка формирования файла с детальным описанием выявленного ограничения
- Для каждого выявленного ограничения отображается отдельная ошибка
Фильтрация
- Дополнительными фильтрами Еще фильтры и системным фильтром Тип дела/Тип объекта стало еще удобнее пользоваться:
- Теперь под наименованием каждого поля в фильтре Еще фильтры отображается название блока, что позволяет точно выбрать нужное поле для фильтрации:
- Наименования полей отображаются вместе с названиями блоков, в которых они использованы, в следующих разделах:
- Список объектов
- Календарь и вкладка Календарь в карточках объектов
- При настройке колонок в секциях Таблица и блоках с типом Таблица
- В списке Еще фильтры поле отображается в виде отдельного значения для каждого уникального блока, где оно используется:
- При переиспользовании блока с полем, поле отображается один раз с названием этого блока
- При копировании блока с полем, поле отображается отдельно для блока и его копий
- При переиспользовании поля:
- В других блоках, поле отображается отдельно для каждого уникального блока
- В одном блоке, значение в саджесте для поля отображается отдельно для каждого поля, используемого в блоке.
- Список полей отсортирован:
- По возрастанию (0-9, А-Я, A-Z)
- По наименованию блока по возрастанию при наличии полей с одинаковым названием
- При выборе значений фильтрация будет выполнена:
- По тем объектам, в которых содержится поле с соответствующим блоком
- По всем объектам, содержащим переиспользованный блок с полем
- Поиск значений в фильтре выполняется по названию фильтра (поля) и названию блока
- В списке объектов в окне настроек колонок и при настройке колонок в секциях Таблица и блоках с типом Таблица:
- Для кастомных полей, доступных для добавления в колонку, отображаются названия блоков
- Для системных полей объектов название блока не отображается
- Наименования полей отображаются вместе с названиями блоков, в которых они использованы, в следующих разделах:
- При наведении курсора на фильтры Еще фильтры и Тип объекта отображается всплывающая подсказка с названием фильтра, наименованиями поля/типа объекта и счетчик значений (если выбрано несколько вариантов)
- Для приведения системных фильтров к единообразию:
- Переименовали название фильтра Тип дела в Тип объекта в разделах с объектами
- В фильтре Тип объекта в календарях теперь отображается название класса объекта для каждого доступного в списке типа объекта
- Теперь под наименованием каждого поля в фильтре Еще фильтры отображается название блока, что позволяет точно выбрать нужное поле для фильтрации:

- Исправили отображение фильтров на панели фильтрации во всех разделах Case.one:
- После выбора значения для фильтра на панели фильтрации отображаются:
- Название фильтра (поля)
- Выбранное значение
- Счетчик выбранных значений
- При наведении курсора мыши на фильтр на панели фильтрации отображается всплывающая подсказка с информацией:
- Полное название первого выбранного значения и счетчик выбранных значений (если фильтр настроен)
- Полное название фильтра (поля)
- После выбора значения для фильтра на панели фильтрации отображаются:
Улучшения и исправления
- Изменили логику закрытия меню и окон, вызываемых из меню-троеточия:
- Если открыто родительское окно из контекстного меню, при нажатии курсором мыши на свободную область, оно будет закрыто
- Если открыто вложенное окно, при нажатии курсором мыши на свободную область, вложенное окно будет закрыто, отобразится родительское окно/меню
- При открытии другого окна из контекстного меню, ранее открытое окно будет закрыто (вне зависимости от того, является ли оно вложенным или родительским)
- Исправили ошибку проверки участника по ИНН, если был введен некорректный ИНН — теперь при исправлении ИНН участника, запросы на получение данных из Casebook отправляются корректно.
- Исправили ошибку с кодом 500, которая возникала в сценариях по расписанию при попытке сохранить условия и правила запуска на вкладке Настройки, если в качестве условий были выбраны названия карточек объектов.
- Устранили ошибку для конфигурации с использованием СУБД Postgres, которая возникала при добавлении содержимого файлов в полнотекстовый поиск (при индексации) — теперь полнотекстовый поиск по документу учитывает только 1 Мб текстовых данных в документе от его начала (если размер текста в документе 1 Мб или меньше, документ будет индексирован полностью).
- Исправили отображение уведомления об ограничении на количество блоков и строк при открытии вкладки с количеством блоков/строк, превышающим установленное ограничение.
- Исправили возможность открытия события по ссылке при отсутствии прав на раздел События — теперь при отсутствии прав событие не будет открыто, выполнится переход на первый доступный раздел.
- Исправили ошибку редактирования карточки объекта, возникающую из-за появления дубликатов простых блоков.
- Поправили ошибку отображения календаря в режиме на день в клиентском портале, которая возникала при включении системного календаря Объекты.

Сценарии автоматизации
- Добавили возможность использовать Node.js в качестве интерпретатора скриптов:
- В файл настройки конфигурации внесли специальную настройку, которая определяет доступность выбора интерпретатора на инстансе:
- Если настройка включена, доступно отдельно выбрать использование интерпретатора Node.js
- Если настройка выключена (значение по умолчанию):
- Скрипты и сценарии будут выполнены с использованием того интерпретатора, который настроен для инстанса (ClearScript или NiL.JS)
- Вручную выбрать использование Node.js на инстансе недоступно
- Настройка недоступна для SaaS-инстансов в целях безопасности
- Для SaaS-инстансов возможно доставить Node.js скрипты в составе подписанных модулей, за разработку которых отвечают доверенные разработчики модулей
- При включенной настройке в Case.one доступно управление флагом Использовать Node.js:
- Флаг Использовать Node.js отображается:
- На форме создания скрипта
- В новом блоке Скрипты на вкладке Настройки скриптов и любых типов сценариев автоматизации
- По умолчанию флаг снят
- При установке флага скрипт/сценарий будет выполнен с использованием Node.js
- При создании:
- Скрипта — флаг можно установить на форме создания
- Сценариев — флаг не отображается (использование Node.js будет отключено по умолчанию)
- Установить или снять флаг Использовать Node.js для скриптов и сценариев можно в любой момент на вкладке Настройки при наличии прав
- Флаг Использовать Node.js отображается:
- При выключенной настройке в Case.one недоступно (отобразится ошибка: Произошла ошибка. Создание и редактирование NodeJS скриптов недоступно на инстансе):
- Установить или снять флаг Использовать Node.js на форме создания скрипта и в настройках сценариев и скриптов
- Изменить скрипт, если в нем установлен флаг Использовать Node.js
- Добавить или изменить оператор Запустить скрипт в сценариях, где установлен флаг Использовать Node.js
- В файл настройки конфигурации внесли специальную настройку, которая определяет доступность выбора интерпретатора на инстансе:

- Добавили возможность локальной отладки скриптов — теперь доступно выгрузить файлы с путями и ключами доступа к конкретному инстансу и сразу в процессе написания скрипта проверить его работоспособность, чтобы учесть все нюансы и сразу обнаружить неточности:
- В качестве ключа доступа используется токен, который служит для bearer-аутентификации в API
- В редакторе скрипта из меню-троеточия теперь доступно:
- Скачать контекст для отладки — скачивание json-файла с переменными контекста исполнения скрипта
- Скачать скрипты для отладки — скачивание архива в формате *.zip с файлами
- Структура и содержимое файла и архива генерируются автоматически при скачивании

- Поскольку мы изменили логику добавления напоминаний в событиях и задачах, теперь в операторе Создать → Событие/Задача напоминания доступно добавить на отдельной форме с помощью кнопки

:
- На форме по умолчанию отображается строка Добавить напоминание
- Для задач можно настроить напоминания с условиями В срок выполнения задачи, За и Через
- Для событий можно настроить напоминания с условиями Во время начала события и За
- Настройка условий, интервалов и периодов аналогичны настройкам на форме задач и событий
- После добавления все напоминания отображаются в поле через запятую в формате (если все напоминания не поместились в поле, они отображаются всплывающей подсказкой при наведении курсора мыши):
- Для событий с условием За и задач с условиями За и Через: <За/Через><интервал><период>
- Если выбрано напоминание в момент выполнения задачи: В срок выполнения задачи
- Если выбрано напоминание при начале события: Во время начала события

- Для операторов Ожидать и Если изменили логику работы условий Текст содержит и Текст не содержит:
- Изменили наименования условий на Равно и Не равно
- При добавлении условия по полю Равно (Текст содержит) или Не равно (Текст не содержит) проверка значения выполняется без учета регистра
Настройка таблиц
Чтобы сделать работу с таблицами еще удобнее, добавили дополнительные настройки таблиц в конструкторе объектов и секций:
- Предпросмотр объектов — вы можете настроить, как будет открываться объект при нажатии на его наименование в таблице:
- Если флаг снят (значение по умолчанию), будет открыта карточка объекта в новой вкладке (как и прежде)
- Если флаг установлен, будет открыта форма предпросмотра объекта с информацией из вкладок Основное, События и созданных вкладок
- Разрешить создавать объекты — при установке флага (по умолчанию снят) пользователю будет доступно создавать новые карточки объектов при просмотре таблицы.
- Создаваемый тип объекта — позволяет указать тип объекта, который будет выбран при создании карточки по умолчанию:
- Поле отображается, если установлен флаг Разрешить создавать объекты
- Доступен выбор одного значения из типов объектов класса объекта, который выбран в таблице в качестве исходного объекта
- По умолчанию значение не выбрано
- Связывающее поле — позволяет установить связь между карточкой объекта, в который добавлена таблица, и создаваемой карточкой объекта:
- Поле недоступно при настройке секции с типом Таблица
- Поле отображается, если выбрано значение в поле Создаваемый тип объекта
- Доступен выбор значений из полей с типом Объект-Объект, которые сохранены в создаваемом типе объекта
- Для отображения в таблице карточки объекта только связанных объектов:
- В настройках таблицы необходимо добавить фильтрацию по следующим параметрам:
- Поле — поле с форматом Объект-Объект, которое выбрано в качестве связывающего поля
- Фильтровать по — Выбранные значения
- Значение — Текущий объект
- В карточках объектов с типом, который указан в качестве создаваемого по умолчанию, в выбранном поле с типом Объект-Объект должен быть указан объект, в типе которого настроена таблица
- В настройках таблицы необходимо добавить фильтрацию по следующим параметрам:
- При удалении поля, указанного в качестве связующего:
- Отобразится уведомление с перечнем мест использования поля
- Значение в поле Связывающее поле будет сброшено

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

Улучшения и исправления
- Поправили некорректное отображение настроек инстанса при формировании шаблона импорта контактов — теперь в шаблоне импорта контактов корректно учитываются языковые настройки инстанса.
- Теперь при копировании блоков, где есть поля зависимыми полями из справочника, уровни справочника копируются корректно.
- Поправили работу меню в разделе Администрирование — Роли при включенной интеграции с SSO Keycloak — теперь после выбора в меню раздела Роли меню автоматически будет скрыто (как и при переходе в другие полностраничные разделы: Группы, Объекты, Справочники).
- Исправили ошибку, которая возникала при попытке скачать шаблон импорта объектов.
- Теперь используется единая страница с описанием ошибок при наличии внешних интеграций для авторизации (например, Active Directory и OpenId).

Технические изменения
- В файл настройки конфигурации в секцию Custom добавили параметр AllowEditNodeJsScripts, который определяет возможность редактирования Node.js скриптов:
- Если установлено значение true, на инстансе можно отдельно выбрать использование интерпретатора Node.js
- Если установлено значение false (по умолчанию):
- Скрипты и сценарии будут выполнены с использованием того интерпретатора, который настроен для инстанса (ClearScript или NiL.JS)
- Вручную выбрать использование Node.js на инстансе недоступно
- Чтобы обеспечить защиту от несанкционированного изменения инстансов с помощью модулей, и в целях контроля изменений модулей только доверенными разработчиками, мы добавили возможность подписи модулей.
- В рамках проведения рефакторинга тяжелых запросов (RequestLoggingMiddleware) добавили параметры логирования в секции Custom и RequestLogging.
- Перешли на RabbitMQ версии 4.0:
- Обновление на версию 4.0 возможно только с версии 3.13.
- Если текущая версия RabbitMQ ниже 3.13, необходимо выполнить последовательное обновление версий (например: 3.10 → 3.11 → 3.12 → 3.13 → 4.0):
- Не распространяется на single-node в среде разработки, где есть возможность удалить данные и начать с чистой новой версии
- Раздел инструкции про обновление с различных версий
- Теперь возможно отключить проверку SSL-сертификатов для fetch-запросов в рамках сценариев (например, для получения данных с проверенных сайтов с невалидными сертификатами) — не рекомендуем использовать данную функциональность без крайней необходимости.
- Добавили новую очередь emails для обработки событий отправки различных email-уведомлений:
- Для настройки очереди доступны следующие параметры (значения по умолчанию):
- Количество обработчиков очереди — рассчитывается относительно количества ядер CPU на сервере приложений с множителем 0.5
- Таймаут обработки сообщения — 30 сек
- Очередь добавлена через код, поэтому добавление очереди в секцию OldRabbitMQ:Queues файла appsettings.json не обязательно
- При наличии большого потока сообщений (например, при массовой операции, результатом которой происходит рассылка email-уведомлений), в результате которого накопилась очередь, рекомендуется рассмотреть возможность изменения настроек по умолчанию, как увеличение количества консьюмеров
- Для настройки очереди доступны следующие параметры (значения по умолчанию):
Улучшения и исправления
- Из очереди default RabbitMQ вынесли в отдельные очереди:
- Отправку email-сообщений, чтобы не возникало задержек в работе Case.one из-за недоступности или медленной работы SMTP-сервера
- Обработку сообщений типа SerializedBlocksUpdatedHandler, чтобы разгрузить очередь default
- Изменили логику AsyncRequestService при отмене запроса, что приводило к падениям при обработке сообщений из RabbitMQ, если они поступали с задержкой — теперь вместо физического удаления выполняется установка финальных статусов (Completed, Failed, Canceled) и отложенная очистка через фоновую задачу.
- Заменили DI-контейнеры Autofac и MS DI на ServiceCollection, чтобы снизить потребление ресурсов CPU и RAM и повысить производительность.
- Выполнили рефакторинг механизмов аутентификации и авторизации.
- Добавили кэширование в фильтр авторизации (HttpAuthorizeFilter) для минимизации запросов к БД.
- Обновили Swagger UI для повышения скорости скорость загрузки версий API и Swashbuckle.AspNetCore до версии 8.1.4 для корректного формирования выгрузки документации.
- Исключили возможность выполнения XSS-атаки при вызове скрипта, содержащего уведомление, через API.
- В настройке NewReportRequestEmails файла конфигурации изменили email, на который будут отправляться запросы системного отчета, на support_caseone@pravo.tech.