Directum RX 4.3: Новинки для администратора и разработчика

24 15

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

Directum RX – это полностью отечественная система, которая входит в Единый реестр российского ПО. Серверная часть и веб-клиент системы работают в операционных системах семейства Linux, а именно Ubuntu, Альт Линукс и Astra Linux. Хранение данных обеспечивает СУБД PostgreSQL и Postgres Pro. Для работы с документами, хранящимися в системе, можно использовать отечественные продукты МойОфис и Р7-Офис. При этом с системой Directum RX можно настроить любые интеграции с внешними системами, например с 1С, объединяя их в единую экосистему.

Directum RX продолжает развиваться. В новой версии 4.3 появились визуальная настройка системы через Directum Launcher, в том числе в системах Linux с графическим интерфейсом. Добавлены инструменты для защиты, мониторинга и диагностики системы. Улучшены интеграционные возможности и возможности для разработчика. Версия 4.3 для локальной установки также включает все новинки облачной версии.

Развитие инструмента Directum Launcher

В предыдущей версии появился кроссплатформенный инструмент Directum Launcher для установки и обновления системы. Расскажем, какие новые возможности появились в нем.

Визуальная настройка. Теперь Directum Launcher позволяет настраивать систему. Во встроенном редакторе отображается содержимое конфигурационного файла config.yml. Достаточно изменить параметры и применить настройки. Сервисы Directum RX перезапускаются автоматически.

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

Гибкое обновление прикладной разработки. Стандартная прикладная разработка выделена в отдельный компонент. Это позволяет обновлять платформу и прикладную разработку независимо друг от друга, что делает переход на новую версию системы более гибким. Чтобы запустить установку или обновление системы с прикладной разработкой, нужно в папку с Directum Launcher всего лишь добавить архив DirectumRX.zip. Тогда в окне с Directum Launcher появятся соответствующие параметры:

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

Установка службы ввода документов Directum Capture Service. Служба ввода версии 3.3 устанавливается с помощью инструмента Directum Launcher в невизуальном режиме. Благодаря этому:

  • установка в операционных системах Windows и Linux выполняется одинаково;
  • все файлы, необходимые для последующей настройки, генерируются автоматически.

Также изменились настройки службы для запуска интеллектуальной обработки. Теперь они задаются в конфигурационном файле config.yml в параметре RXCMD_RUN_SCRIPT. Например, там можно изменить имя и пароль пользователя, от имени которого утилита RxCmd подключается к Directum RX. Из конфигурационного файла настройки автоматически сохраняются в исполняемый файл rxsmartproc. Таким образом, этот файл больше не нужно редактировать вручную. После изменения настроек службу необходимо перезапустить.

Защита системы от взлома

Теперь можно настроить блокировку IP-адресов при многократном неудачном входе.

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

Как настроить? По умолчанию блокировка по IP-адресу отключена. Чтобы включить ее, необходимо в конфигурационном файле config.yml в секции веб-сервера и сервиса интеграции добавить новые параметры с префиксом IP_BLOCKING.

В список исключений можно добавить IP-адреса для промежуточных узлов, если они есть между клиентом и сервером, например для прокси-серверов и балансировщиков нагрузки. Таким образом Directum RX исключит возможность подмены IP-адреса клиента. При аутентификации адресом клиента будет считаться только первый IP-адрес за пределами доверенного контура. Чтобы включить настройки, необходимо добавить параметры с префиксом FORWARDED_HEADERS.

Как снять блокировку? При необходимости администратор может разблокировать IP-адрес. Для этого в списке записей справочника Учетные записи появилась кнопка Заблокированные IP-адреса. В окне с информацией о всех заблокированных адресах можно разблокировать конкретный IP-адрес либо сразу все.

Удобные инструменты мониторинга

В ходе эксплуатации системы могут появляться сообщения об ошибках, предупреждения и информационные сообщения. Поэтому для поддержки работоспособности системы администратору нужно вовремя отслеживать их. В новой версии Directum RX расширено логирование, а также добавлены удобные инструменты для мониторинга и диагностики системы при обмене документами с контрагентами.

Расширенное логирование

В серверные лог-файлы добавлен необязательный атрибут trинформация о трассировке. Трассировка позволяет группировать логически связанные запросы, например, обработку запроса веб-клиента или сообщения очереди RabbitMQ. В зависимости от того, к чему относится логирование, информация фиксируется в одном из форматов:

  • {TraceId}-{RequestId} – обработка HTTP-запроса;
  • {TraceId}-{MessageId} – обработка сообщения очереди.

Пример:

"tr":"8114c162-81611d"

Диагностика системы при обмене с контрагентами

Теперь проще провести диагностику системы при обмене документами с контрагентами с помощью нескольких инструментов:

  • Новый дашборд Exchange в решении «Мониторинг системы Directum RX» поможет быстро оценить текущее состояние электронного обмена с контрагентами и найти ошибки, которые уже возникли или могут возникнуть, в режиме реального времени;

  • Справочник «Элементы очереди синхронизации сообщений» позволяет оценить загруженность электронного документооборота по состоянию очереди сообщений. Например, очередь нужно посмотреть, когда документы долго не загружаются в систему. При наличии ошибок по ИД сообщения в очереди можно найти его, посмотреть статус обработки и при необходимости остановить обработку. Также из очереди можно легко открыть полученный документ в сервисе обмена;
  • Поиск документов из сервиса обмена поможет найти документ в Directum RX по URL-адресу в сервиса обмена. Например, с помощью поиска можно выяснить, загрузился документ в систему или нет;
  • Справочник «Сведения о документе обмена» открывает всю информацию по документу в Directum RX и в сервисе обмена. По нему можно понять, что на текущий момент происходит с документом: загрузился он или нет, сгенерировался титул покупателя или нет, отправилось ли извещение о получении и прочее.

Помимо этого, упростился поиск ошибок в лог-файлах, а также увеличилось количество проверок, выполняемых в фоновых процессах «Электронный обмен. Получение сообщений» и «Электронный обмен. Синхронизация абонентских ящиков».

Интеграционные возможности

Многие компании использую сразу несколько систем для решения бизнес-задач. Правильно настроенная интеграция между системами делает бизнес-процессы более прозрачными и облегчает работу сотрудников. В новой версии Directum RX улучшены возможности сервиса интеграции и интеллектуальной обработки документов.

Новинки сервиса интеграции. В сервисе интеграции появилась потоковая передача бинарных данных. Теперь из внешней системы в Directum RX можно передать файлы размером до 2 ГБ (ранее до 350 МБ). Последовательность байтов передается без кодирования в Base64. Поэтому процесс передачи стал быстрее, и в одном запросе содержится больше информации.

Кроме того, с версии 4.3 сервис интеграции научился обрабатывать пакетные запросы (Batch Requests). Вместо того, чтобы отправлять отдельные запросы на получение, создание, изменение или удаление сущностей, разработчик теперь может написать один пакетный запрос. Это сокращает накладные расходы на обработку отдельных запросов. В одном пакетном запросе можно отправить до 100 подзапросов. Если нужно создать или обновить больше сущностей, запросы внутри пакетного можно объединить в набор изменений. Так в одном запросе можно выполнить до 100 000 операций.

Передача параметров Directum Ario в Directum RX. У сервисов Directum Ario есть параметры, с помощью которых можно настраивать интеллектуальную обработку документов. Например, настроить частичное распознавание проектно-сметной документации так, чтобы в Directum RX загружался только титул проекта.

В новой версии добавлена поддержка параметров Directum Ario для методов классификации и извлечения фактов. Теперь такие параметры можно передавать в Directum RX, не меняя стандартный API. Разработчику остается лишь написать код для обработки полученных параметров.

Для передачи параметров достаточно указать их в конфигурационном файле службы ввода документов (DCS) в настройке ProgramArguments, а затем в конфигурационном файле config.yml в параметре RXCMD_RUN_SCRIPT добавить новую переменную %6 или $6.

Отдельная книга по интеграции в справке Directum RX. Для удобства поиска и изучения информации об интеграционных возможностях Directum RX добавлена новая глава «Интеграция с внешними системами». Теперь в одном месте содержится информация о том, как:

  • настроить аутентификацию в сервисе интеграции;
  • переопределить существующие или создать новые интеграционные функции;
  • написать запросы к сервису интеграции – с примерами кода и результатами запросов;
  • устранить ошибки, если настроенная интеграция не работает.

Развитие среды разработки

Для разработчика оптимизированы базовые задачи, выполняемые в среде разработки.

Ускорение публикации. Как правило, основное время при публикации решений занимает перезапуск веб-сервера. В версии 4.3 расширен список ситуаций, когда перезапуск веб-сервера не нужен. Например, без перезапуска веб-сервера публикуются изменения прикладного кода, в том числе создание или удаление обработчиков и функций.

Быстрый переход к базовому типу сущности. Теперь из редактора текущего типа сущности можно в один клик открыть редактор базового типа. Если базовый тип тоже является наследником, таким же способом можно перейти к его предку. Ссылка для перехода активна, если базовый тип находится на прикладном уровне. Например, из редактора созданного типа задания легко перейти к его предку – заданию на согласование официального документа (ApprovalAssignment).

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

Инициализация отдельных решений. Ранее инициализация выполнялась для всех решений. В системе с большим количеством решений этот процесс мог занимать значительное время. Теперь при запуске утилиты DeploymentToolCore можно выбрать, какие решения нужно инициализировать. Для этого достаточно после параметра -x указать через пробел их названия. Если названия решений не указаны, то инициализируются все решения. Пример:

dotnet DeploymentToolCore.exe -n administrator -p 11111 -x Dev.Solution1 Dev.Solution2

***

Помимо перечисленных новинок в Directum RX появились настройки для отключения оповещении о завершении лицензии, настройки завершения сеансов неактивных пользователей и не только.

Полный список новых возможностей можно изучить в документах «Изменения Directum RX 4.3» и «Изменения Directum RX 4.3. Исправленные замечания» на сайте поддержки.

Если у вас остались вопросы, мы готовы ответить на них в комментариях.

Денис Архипов

В версии 4.3 куда делась аутентификация с помощью Cookie в сервисе интеграции?

Антон Максунов

Есть в планах развития среды разработки переключение веток репозитория из интерфейса?

Екатерина Морева

Денис, добрый день. Спасибо за внимательность, мы вернули раздел c Cookie-аутентификацией в справку.

Сергей Скурыгин

Антон, пока нет. У вас все что находится на рабочем слое в одном репозитории лежит?  Чем сейчас пользуетесь для переключения? Какой профит ожидаете от реализации этой  функциональности именно в DDS?

Сергей Беляков

Планируется ли в DeploymentTool добавление возможности выбора модулей для инициализации или наоборот, отключение инициализации некоторых модулей ?

Антон Максунов

Условно работаем в ветке DEV, тестируем в ветке TEST, а в мастере лежит то, что точно протестировано нами и от клиента получен ОК. Банально чтобы выгрузить текущий тест для тестирования аналитиками нужно закинуть что успел наработать в DEV, закрыть DDS, в конфиге прописать другую ветку, открыть DDS, выгрузить пакет, закрыть DDS, снова поменять в конфиге ветку разработки, открыть DDS.

Может неоптимально делаем и есть метод проще? Трагедии конечно нет, жить можно, но не очень-то удобно.

Мержить, создавать ветки - это всё пусть как сейчас будет в отдельном инструменте который каждая команда себе выбирает. Но переключение веток хотелось бы чуть проще реализовать.

Сергей Скурыгин

Антон, ваш кейс понятен, его попробуем закрыть другим способом, чтобы DDS вообще не нужно было запускать. Возможно появятся элементы CI\CD чтобы стенды можно было проще обновлять. 
Еще уточнение, вы пишите, что для переключения на другую ветку меняете конфиг в DDS, т.е. ветки у вас хранятся в разных папках или вы все таки через гит переключались, а папки и конфиг DDS в этом случае оставались теми же?

Сергей Скурыгин

Сергей, чем не подходит выбор решения? Опишите вашу ситуацию.

Алексей Присяжный

Сергей, Это очень долгожданная вещь. Куча автогенерируемого в SDS кода гарантирует, что никакая автоматизация сборки на данный момент недоступна.

Сергей Беляков

Сергей, Скажем так.
На текущий момент задать порядок инициализации модулей стандартными средствами возможности нет.
Есть проекты, которые внедрялись еще на RX 2.9 и случается такое, что при конвертации или переносе разработки происходят системные ошибки (сбои кэша и т.п.), которые не позволяют корректно провести инициализацию.
Понятно, что в причинах и следствиях ошибок надо разбираться, но хотелось бы иметь какой-то инструмент, который позволит подобного рода ошибки обходить.

P.S. Я прекрасно понимаю, что подобные ситуации это не нормально, но и DDS далеко не идеал стабильности, как и вся система в целом.

Евгений Стоянов

Быстрый переход к базовому типу сущности - было бы здорово, добавить такие же ссылочки еще в СВОЙСТВАХ.

Антон Максунов

Сергейваш кейс понятен, его попробуем закрыть другим способом, чтобы DDS вообще не нужно было запускать

Сборка пакета вне DDS отдельной утилитой? С выбором репозитория/ветки?

Еще уточнение, вы пишите, что для переключения на другую ветку меняете конфиг в DDS, т.е. ветки у вас хранятся в разных папках или вы все таки через гит переключались, а папки и конфиг DDS в этом случае оставались теми же?

Меняется ссылка на ветку репозитория в конфиге, папка та же остается.

Дмитрий Панкрашов

В окне с информацией о всех заблокированных адресах можно разблокировать конкретный IP-адрес либо сразу все.

И как там посмотреть все заблокированные адреса? На скрине отображается N первых.

Дмитрий Чепель

Дмитрий, есть возможность посмотреть не более 10 заблокированных адресов + общее количество заблокированных IP-адресов. 
Мы предполагаем, что такого UI будет достаточно - в норме количество заблокированных IP-адресов должно быть 0 или близко к нулю.
Если в реальной работе возможностей диалога окажется недостаточно - пишите пожелания.
Также более подробную информацию о заблокированных IP-адресах можно посмотреть прямыми запросами к БД MongoDB, где они хранятся. Например, через утилиту Compass.

Сергей Скурыгин

Антон
>>Сборка пакета вне DDS отдельной утилитой?
да, видится, что будет так. 
>> С выбором репозитория/ветки?
это скорее надо делать отдельно стандартными средствами git.exe. В итоге получится "батник", который получит все необходимое, соберет и опубликует (опционально).
>>Меняется ссылка на ветку репозитория в конфиге, папка та же остается.
про какой конфиг идет речь? можете подробнее написать, желательно с примером.

Авторизуйтесь, чтобы написать комментарий