Что нового в Loginom 7.1

15 сентября 2023
0 комментариев

Первое крупное обновление 7-ой версии Loginom. При работе над релизом значительное внимание уделялось запросам, которые поступали от наших пользователей. Основные изменения коснулись повышения безопасности и удобства использования. Кроме того, появились новые возможности при работе с базами данных, расширен функционал некоторых стандартных компонентов. Настольные редакции Loginom теперь доступны и для Linux.

Возможность скачать бесплатную версию для некоммерческого использования Loginom Community на Linux появится на официальном сайте в течение сентября. Следите за новостями в Телеграм-канале Loginom.

Изменения в работе Loginom Server

В серверных редакциях Loginom введено ограничение на количество неудачных попыток ввода пароля на странице аутентификации. В разделе Администрирование на странице Параметры появились новые настройки Лимит попыток ввода пароля (N) и Тайм-аут ввода пароля (Т). При каждой попытке входа пользователя в систему выполняется проверка: сколько неудачных попыток ввода пароля было совершено для данного аккаунта пользователя за последние T секунд. Если количество попыток больше или равно N, то проверка пароля не выполняется, и выводится ошибка: "Превышено максимальное количество попыток входа в учётную запись".

На странице Вход опционально можно убрать настройку Запомнить (пользователя). Для этого нужно в файле client.json, который добавлен в папку %ProgramFiles%\Loginom\Client, установить для свойства rememberuser значение false.

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

  • Тайм-аут блокировки сессии — определяет период неактивности пользователя, по истечении которого сессия переходит в заблокированное состояние. При этом соединение с сервером не закрывается, никакие данные от сервера к клиенту и наоборот не передаются. Проходят некоторые служебные сообщения, и разрешен вызов разблокировки с передачей аутентификационных данных. На экране пользователь видит только окно аутентификации, он может ввести пароль и восстановить сессию, либо закрыть вкладку браузера и вместе с ней сессию.
  • Тайм-аут закрытия сессии — определяет период неактивности пользователя, по истечении которого  соединение с сервером будет закрыто. При этом в лог будет записано соответствующее сообщение.
Новые параметры в разделе Администрирование

Новые параметры в разделе Администрирование

Активностью пользователя считается нажатие клавиш, кнопок мыши и использование полос прокрутки.

Пользователь самостоятельно может перевести сессию в заблокированное состояние — в Меню появился пункт Заблокировать.

Периодическая проверка соединения со стороны сервера по умолчанию отключена. В разделе Администрирование значение параметра Период проверки соединения по умолчанию установлено равным 1 (ранее было 300 сек.).

Для Loginom Server под Linux можно настроить ограничение объема RAM, используемого приложением Loginom. В разделе Администрирование на странице Параметры появились новые параметры:

  • Максимум используемой памяти (КБ) (по умолчанию — «не ограничено» (0)).
  • Доля используемой памяти (по умолчанию — «не ограничено» (0)).

Минимальное значение ограничения на RAM — 300 Мб. При увеличении лимита использования памяти новое значение применяется сразу, при уменьшении лимита требуется перезапуск приложения. Ограничение действует на виртуальную память. Автоматическое расширение стека главного потока не затрагивается.

Преимущество настройки заключается в том, что при достижении лимита не срабатывает OOM Killer. Но если память в системе закончилась до достижения лимита, OOM Killer сработает.

Loginom Data File

Для LGD-файлов в дополнение к алгоритму сжатия LZO стал доступен алгоритм LZ4. По сравнению с LZO прирост скорости при записи файлов с LZ4 составляет до 10%, при чтении — до 40%. Однако файлы, сжатые алгоритмом LZ4, примерно на 9-10% больше по размеру, чем сжатые с помощью алгоритма LZ0.

В мастере настройки Экспорта в LGD-файл алгоритм LZ4 добавлен в выпадающий список форматов сжатия и используется по умолчанию.

Стандарт LZ4 позволяет передавать опциональную контрольную сумму блока и всего содержимого. В мастере узла Экспорт в LGD-файл, если выбрано сжатие LZ4, пользователь может установить значение параметра Контрольная сумма:

  • записывать контрольную сумму сжатых данных после каждого блока (по умолчанию);
  • не записывать никакую контрольную сумму, при этом запись будет выполняться быстрее на 1%;
  • записывать контрольную сумму сжатых данных после каждого блока, а также контрольную сумму всех несжатых данных в конце файла, при этом запись будет выполняться медленнее на 1,5%.

В мастер настройки Импорта из LGD-файла добавлен параметр Контрольная сумма, который показывает, с какой контрольной суммой был создан файл с LZ4-сжатием, и новая настройка — флаг Проверять контрольную сумму. При установленном флаге производится проверка контрольной суммы, если она есть в файле. Это страхует пользователя от незаметных искажений и от ошибки "Access Violation", если файл по какой-то причине испорчен. При этом чтение будет производиться медленнее на 2%, если контрольная сумма была от сжатых данных, и до 7%, если были оба вида контрольной суммы. По умолчанию контрольная сумма проверяется (флаг установлен).

Параметр Контрольная сумма

Параметр Контрольная сумма

Обновленный менеджер Файлового хранилища

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

  • Добавлена возможность с помощью Drag-and-Drop загружать папки с находящимися внутри файлами/папками. Ранее можно было загружать только файлы, а структуру папок приходилось задавать вручную.
  • Можно создать новый пакет прямо из папки файлового хранилища: в контекстном меню менеджера появилась соответствующая команда.
  • При загрузке файлов с одинаковыми именами появилась возможность выбрать один из вариантов решения конфликта Заменить/Заменить все, Пропустить/Пропустить все или Отменить.
  • Скачивать файлы и папки из файлового хранилища можно в виде архива.
  • Появилась возможность распаковать zip-архив. Для этого в контекстное меню добавлена соответствующая команда.
  • Изменен начальный порядок сортировки колонок с «по возрастанию» на «по убыванию». В Файловом хранилище изменения коснулись колонок: Выделение файла/папки, Размер, Дата изменения и Только чтение. В Файловом Диалоге — Размер и Изменен.
  • Навигация по списку файлов/папок при помощи клавиатуры стала удобнее. Появился инкрементный поиск/позиционирование на файле/папке при вводе первых символов с клавиатуры.

Новые возможности в стандартных компонентах

В компонентах Группировка и Таблица в переменные появились новые варианты агрегации:

  1. Единственный (Only), который возвращает значение агрегированного поля, если оно единственное на уровне группы. В мастерах настройки узлов Группировка и Таблица в переменные для не числовых (Строковый, Дата/Время, Логический, Переменный) полей в фактах этот вариант агрегации применяется по умолчанию.
  2. Мода, который доступен для всех видов и типов данных. При расчете моды пропущенные значения игнорируются. В случае, если мод несколько, будет выбрано наименьшее значение:
    • для логического типа данных — False;
    • для числовых данных — наименьшее из чисел;
    • для строк — наименьшее в лексикографическом порядке.

В Заполнении пропусков для метода заполнения «Заменять на «Не задано»» появилась возможность настройки значения «Не задано». Теперь для каждого поля можно указать значение, на которое нужно заменить пропущенное. Например, «Заменить на «Пропуск»». Значение по умолчанию — это зависимая от локализации строка «Не задано». Для сценариев, которые были подготовлены в более ранних версиях, значение по умолчанию остается зависимым от языка до перенастройки.

В Калькулятор добавлена функция ISO8601ToDate, которая конвертирует строку, содержащую дату/время в формате ISO 8601, в значение типа Дата/Время. При указанном смещении времени относительно UTC дата/время приводится к текущей временной зоне. Если смещение времени не указано, дата/время остается без изменений.

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

В мастере настройки Узла-ссылки разрешено ссылаться на узлы подключений.

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

Появилась возможность выполнения Python в изолированном окружении пользователя. Теперь можно передавать переменные окружения в процесс интерпретатора Python. В качестве процесса интерпретатора Python можно указать скрипт python_run.sh (или аналогичный), который будет использовать переменные окружения для реализации логики запуска Python.

Чтобы Python выполнялся в изолированном окружении пользователя, необходимо указать соответствующие значения параметрам Передавать переменные окружения узла и Путь интерпретатора в разделе Администрирование на странице Параметры. В случае python_run.sh должен быть Linux, на котором установлен docker или podman, а также подготовлен базовый docker образ c Python и нужными пакетами внутри.

Изменения в работе с базами данных

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

В Импорте из базы данных появился режим выполнения с игнорированием ошибок. В мастер настройки добавлен редактор выбора режима активации и параметр Тайм-аут импорта (мс), а узел Импорт из базы данных получил дополнительный выходной порт переменных Статус выполнения.

При импорте в режиме Игнорировать ошибки узел активируется успешно даже при наличии в процессе активации ошибок, а информация об ошибках (код завершения и текст ошибки) записывается в выходной порт Статус выполнения.

Следует учитывать, что при срабатывании тайм-аута в зависимости от этапа выполнения останавливается выполнение запроса или заполнение выходного набора. Таким образом, в режиме Игнорировать ошибки выходной набор данных может оказаться частично заполненным. Тайм-аут импорта не распространяется на предварительный просмотр внутри мастера настройки.

Аналогичный режим игнорирования ошибок появился и в узле Экспорт в базу данных.

При настройке подключения к MS SQL, PostgreSQL, Oracle (без клиента), MySQL, ClickHouse и ODBC (если поддерживается драйвером) можно указать Тайм-аут подключения. Если импорт из базы данных или экспорт в базу данных будет выполняться в режиме игнорирования ошибок, то в случае неудавшегося подключения в течение установленного времени, соответствующая ошибка будет записана в порт Статус выполнения, а при импорте/экспорте в обычном режиме — выполнение узла завершится ошибкой.

Кроме того, при настройке подключения к MS SQL, ClickHouse, PostgreSQL и MySQL можно указать Тайм-аут блокировки (с), который устанавливает тайм-аут ожидания снятия блокировки с ресурса (таблицы, строки). Без этой настройки узлы Импорта/Экспорта могут зависнуть на неограниченное время.

В Подключение SQLite добавлена настройка PRAGMA temp_store. Параметр позволяет определять место хранения временных файлов, таблиц и индексов (в памяти или на диске). По умолчанию они сохраняются на диске даже для баз in-memory, что при выполнении некоторых сценариев может приводить к существенному использованию диска и, соответственно, к его износу.

В ClickHouse появилась поддержка типов DateTime64, IPv4, IPv6, LowCardinality и Bool.

В PostgreSQL теперь поддерживается выполнение скриптов через Импорт из базы данных.

Удобство использования

В обновление вошло большое количество изменений, направленных на удобство использования платформы:

  • В серверных редакциях название вкладки браузера меняется в зависимости от активного элемента Loginom Studio. По умолчанию название имеет вид: активный элемент · путь до активного элемента · название продукта. Например, если пользователь создал черновик, то на экране отобразится страница Сценарий, а вкладка браузера будет иметь название «Сценарий · Package1/Модуль1».
  • Добавлена возможность разворачивать/сворачивать Главную (вертикальную) панель инструментов. В нижней части панели под меню «Процессы» появилась соответствующая кнопка. В развернутом состоянии ширину панели можно изменять, перетаскивая ее правую границу. Эта функция полезна, когда на панели отображаются настроенные визуализаторы, названия которых могут быть длинными.
  • На главной (вертикальной) панели инструментов при большом количестве настроенных визуализаторов появляются кнопки, позволяющие прокручивать список настроенных визуализаторов. Вместе со списком визуализаторов «прокручивалась» и кнопка «Настройка визуализаторов», что неудобно. Внесли изменения: теперь кнопка «Настройка визуализаторов» всегда видна на главной панели, а прокручивается только список визуализаторов.
  • При перемещении узла с панели компонентов в область построения сценария он отображается в процессе перетаскивания, и при этом происходят попытки автоматического связывания портов с отображением создаваемых связей. Если в процессе перетаскивания зажать клавишу Alt, то автоматическое соединение не будет выполняться.

  • Если сессия была закрыта из Диспетчера, то пользователь получит сообщение: «Администратор закрыл сессию через диспетчер». Ранее для пользователя это выглядело как потеря связи с сервером.
  • На странице Пользователи в разделе Администрирование можно увидеть не только список зарегистрированных пользователей, но и их общее количество.
  • После добавления узла в сценарий он переходит в выделенное состояние и на узле отображаются кнопки настройки. Таким образом, пользователь выполняет меньшее количество кликов мышью, для того чтобы перейти к настройке узла.
  • В мастерах настройки Импорта из текстового файла и Экспорта в текстовый файл в редакторах свойств, задающих разделители (десятичный, даты, времени и т.д.), вместо значения «по умолчанию» показано значение, которое будет использоваться при разборе файла, если пользователь не изменит настройки. Например, для десятичного разделителя: «Не задано (,)».
  • В мастере настройки узла Калькулятор (переменные) появился Предпросмотр результата вычисления. В качестве результата возвращаются имена, метки и типы входных используемых переменных, значения входных переменных; имена, метки и типы выражений и значения рассчитанных выражений.
  • При настройке узла Таблица в дерево появилась возможность заполнять метки узлов дерева из 1-й строки xsd:documentation при загрузке структуры из XSD схемы. В окне генерации дерева данных по XSD схеме добавлен параметр Формировать метки узлов по xsd:documentation. Если указать у этого параметра значение True, то генерируемые узлы дерева получают метку, равную 1-й непустой строке из элемента xsd:documentation для исходного элемента или атрибута в XSD схеме. Если элементов xsd:documentation несколько, то учитывается только 1-й элемент. Если документация отсутствует или значение параметра Формировать метки узлов по xsd:documentation равно False, то метка генерируется по имени элемента или атрибута, как и раньше.
  • В визуализаторе Таблица теперь есть возможность делать длинные заголовки многострочными. Соответствующая настройка появилась в контекстном меню и на панели инструментов визуализатора.
  • В визуализаторе Качество данных после расчета статистик список проблем для некоторых полей мог оказаться слишком большим и не умещался на экране. При этом не появлялся горизонтальный скроллбар. Теперь после расчета статистик вся информация помещается на экране, а при необходимости появляется горизонтальный скроллбар. Кроме того, таблицу характеристик набора данных можно скрыть, чтобы появилось больше места для отображения списка проблем.
  • Оптимизировали время подготовки визуализаторов Таблица и Быстрый просмотр для наборов с большим количеством столбцов.
  • В визуализаторах обновление таблицы Детализация происходит быстрее и визуально комфортнее для пользователя.
  • В мастерах настройки Импорт из Deductor Warehouse и Экспорт в Deductor Warehouse в списке столбцов исходного набора и в дереве доступных элементов объекта хранилища данных появились всплывающие подсказки для значений, которые не помещаются в ячейке.
  • В табличном представлении Сценария при выделении одной записи (узла) появилась возможность посмотреть информацию по узлу в Инспекторе свойств.
  • Через Адресную строку можно перейти к любому объекту пакета, при этом страница объекта откроется в текущей вкладке. Теперь появилась возможность открывать адрес в отдельной вкладке, для этого нужно нажать на объект средней кнопкой мыши или левой кнопкой, удерживая клавишу Ctrl.
  • Появилась возможность скопировать текст сообщения из всплывающего окна об ошибке. Это можно сделать через контекстное меню окна.

Логирование

В новой версии значительно расширен объем информации, которая записывается в лог.

Теперь в журнале фиксируются не только удачные, но и неудачные попытки аутентификации пользователя. Помимо имени пользователя в логируемых сообщениях выводится его IP-адрес и доменное имя. Доменное имя выводится опционально, в случае, если в разделе Администрирование на странице Параметры установлен флаг «Разрешать доменные имена».

В сообщение о неуспешной аутентификации пользователя, а также об инициализации сессии добавлен параметр HEADERS, содержащий список http-заголовков текущей сессии. Заголовки содержат user-agent с информацией о типе и версии браузера.

При логировании в файл в каждом сообщении выводится идентификатор сообщения (также как и при логировании в journald):

  • идентификатор представляет собой 128-битное число (GUID), представленное в виде строки шестнадцатеричного формата (32 символа в нижнем регистре).
  • идентификатор в сообщениях выводится после времени и критичности (типа) события.

Пример записи:

2023-05-12T17:27:37.475 info e688494e9da1c6488e5f505b8e65a92e (Server.exe:7280>user:1:) - Инициализирована сессия для пользователя user{"USER_NAME": "user", "SESSION_TYPE": "Интерактивная сессия", "CLIENT_IP": "127.0.0.1", "CLIENT_HOST": "PC-X.bg.local", "HEADERS": "{host=localhost:8080,connection=Upgrade,pragma=no-cache,cache-control=no-cache,"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",upgrade=websocket,origin=http://localhost,sec-websocket-version=13,"accept-encoding=gzip, deflate, br","accept-language=en-US,en;q=0.9",sec-websocket-key=rO8ZERq8O9UCJ/Np8j9plA==,"sec-websocket-extensions=permessage-deflate; client_max_window_bits"}"}

Изменения в Loginom Integrator

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

Для этого в файле конфигурации Integrator-а необходимо указать параметр packageRefreshPeriod, задающий период (в секундах), с которым запрашивается с сервера список опубликованных пакетов. Integrator сравнивает этот список со своим собственным, если есть изменения, то применяет их. По умолчанию параметр packageRefreshPeriod отсутствует, периодического запроса списка пакетов не происходит.

В конфигурационном файле Loginom Integrator Integrator.dll.config секция loginom переименована в settings.

Настольные редакции под Linux

Настольные редакции Loginom теперь доступны и под Linux. Loginom Desktop под Linux использует кроссплатформенную библиотеку элементов интерфейса GTK3 и может быть установлен на дистрибутивы операционной системы, поддерживающие GTK3, с минимальной версией ядра 5.3 (если не планируется использование Python-a, то минимальная версия ядра 4.11). Кроме того, в некоторых случаях используются утилиты xdg-open и dbus-send, значение переменной окружения DESKTOP_SESSION.

Дистрибутив Loginom Desktop поставляется в виде архива. Для начала работы достаточно просто распаковать архив и запустить исполняемый файл. В архиве находится файл README.txt, в котором даны инструкции по установке и созданию ярлыка для Loginom Desktop, а также другая полезная информация. При использовании сторонних библиотек может потребоваться их самостоятельная установка.

Еще одна новая возможность настольной редакции — полноэкранный режим работы, в который можно перейти, нажав на клавишу F11.

Прочие изменения

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

В визуализаторе Куб в режим «Приостановить автовычисления» при открытии панели фильтра измерения начинается загрузка данных и, если данные долго загружаются, отображается кнопка «Отменить», позволяющая приостановить загрузку. Если процесс был отменен, то на панели фильтра измерения будет видна кнопка «Загрузить» для повторного начала загрузки. Ранее остановить долгий процесс загрузки можно было только через Панель «Процессы».

Кнопка приостановки загрузки в Кубе

Кнопка приостановки загрузки в Кубе

В связи с переходом на OpenSSL 3.0. нельзя использовать сертификаты с хэш-алгоритмом подписи SHA1 и MD5. Такой сертификат, например, нельзя задать как «Сертификат пользователя» в параметрах подключения к MySQL.
#release notes#7.1

Смотрите также