Журнал технических изменений

Примечание

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

Версия 2.7.1

Шифрование паролей подключений LDAP

Класс org.unidata.mdm.core.util.CryptUtils объявлен deprecated. Необходимо использовать класс org.unidata.mdm.system.utils.CryptUtils.

Шифрование паролей подключений LDAP переведено на общий механизм платформы. Если шифрование в платформе выключено, подключения LDAP шифроваться не будут.

Старые настройки подключений LDAP после обновления станут неактуальны. Для существующих подключений необходимо заново ввести пароль.

Версия 2.7

Отображение удаленных связей

  • На эндпоинтах /v1/dg/data/relations и /v1/dg/data/catalog/next-level добавлен флаг "cascaded", если includeInactive=true и cascaded=true, то возвращаются все активные и логически удаленные каскадно связи.

  • На эндпоинте /v1/dg/data/catalog/next-level также добавлена поддержка флага "includeInactive" (работает так же, как и в /v1/dg/data/relations).

Удаление информационной системы

  • Реализован новый эндпоинт для получения информации о наличии связей с бизнес-слоем или активами другой информационной системы: GET-запрос /dg/meta/information-systems/has-relations с Query-параметром "informationSystem": "Название ИС".

Очистка информационной системы

  • Реализован новый endpoint для очистки ИС с выбором сканера. url: v1/data/clean/crawler-instance/, method: DELETE, params: informationSystemName: Название ИС, crawlerInstanceName: Название сканера (на BE - имя crawler instance в модели org.unidata.mdm.meta.configuration.Descriptors.SOURCE_SYSTEMS).

Ресурс безопасности на пользовательские пакетные операции

  • POST /api/v2/core/import-data

  • POST /api/v2/bulk-operations/execute

  • При отсутствии прав ответ: 403 У пользователя [user1] недостаточно прав для (импорта/экспорта/удаления - в зависимости от выбранной операции) активов. Доступ запрещен.

Кастомный модуль по поддержке SSO Kerberos

Добавлена возможность добавить кнопку Вход по ССО, для этого необходимо добавить параметр "SSO_BUTTON_ENABLED" : true" в customer json

Изменены параметры файла backend.properties:

  • com.universe.mdm.sso.kerberos.realm.name=${SSO_KERBEROS_REALM_NAME:USE.ME} //edit with correct domain name

  • com.universe.mdm.sso.kerberos.keytab.file=${SSO_KERBEROS_KEYTAB_FILE:${unidata.conf}/tomcat.keytab}

  • com.universe.mdm.sso.kerberos.service.principal=${SSO_KERBEROS_SERVICE_PRINCIPAL:HTTP/dmitrova.use.me@USE.ME}

Поддержка файловых массив-атрибутов

  • org.unidata.mdm.rest.system.upload.attachment.directory

  • org.unidata.mdm.rest.system.upload.attachment.memory.threshold

  • org.unidata.mdm.rest.system.upload.attachment.max.size

Были изменены на:

  • org.unidata.mdm.core.upload.attachment.directory

  • org.unidata.mdm.core.upload.attachment.memory.threshold

  • org.unidata.mdm.core.upload.attachment.max.size

Было добавлено поле:

  • org.unidata.mdm.core.file.max.count

Оно задает максимальное количество файлов для атрибута (по умолчанию 10).

Управление статусами вручную

  • Добавлена возможность ручного управления статусами объектов через REST. Подробнее см. в важных изменениях.

  • Метод com.unidata.mdm.data.status.type.transition.DataStatusTransitionHandler.handle(List<DataStatusTransition>) объявлен deprecated. Рекомендуется использовать вместо него метод com.unidata.mdm.data.status.type.transition.DataStatusTransitionHandler.after(List<DataStatusTransition>).

Сортировка записей активов без выбора конкретного актива

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

В случае изменения типа актива будет необходимо выполнение переиндексации, о чем появится соответствующее сообщение в момент публикации типа актива.

Поддержка транслитерации в поиске

Для обновления необходимо установить плагин analysis-icu для OpenSearch.

  • Установка с Docker:

При запуске Universe DG из репозитория Docker через Docker Compose плагин будет установлен автоматически.

Важно: Перед запуском команды docker-compose up -d необходимо убедиться, что присутствует файл opensearch-install-plugins-and-start.sh, который производит установку плагина analysis-icu, если она требуется, а также актуализирован файл docker-compose.yml:

...
opensearch-dg:
    image: opensearchproject/opensearch:2.7.0
    restart: always
    environment:
      - "OPENSEARCH_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - "discovery.type=single-node"
      - "DISABLE_SECURITY_PLUGIN=true"
    volumes:
      - dg-opensearch-data:/usr/share/opensearch/data
      - ./hunspell:/usr/share/opensearch/config/hunspell/
      - ./opensearch-install-plugins-and-start.sh:/usr/share/opensearch/opensearch-install-plugins-and-start.sh
    entrypoint: /usr/share/opensearch/opensearch-install-plugins-and-start.sh
...
  • Установка вручную:

Приведенные ниже команды выполняются из директории, где установлен OpenSearch.

  • Команда для проверки установленных плагинов:

    bin/opensearch-plugin list
    
  • Команда для установки плагина analysis-icu:

    bin/opensearch-plugin install analysis-icu
    
  • Пример команды для установки плагина оффлайн (необходимо заранее скачать zip-файл с плагином, например, по ссылке https://artifacts.opensearch.org/releases/plugins/analysis-icu/2.7.0/analysis-icu-2.7.0.zip):

    bin/opensearch-plugin install file:C:/Downloads/analysis-icu-2.7.0.zip
    
  • Пример команды для установки плагина через указание URL на zip-файл с плагином:

    bin/opensearch-plugin install https://artifacts.opensearch.org/releases/plugins/analysis-icu/2.7.0/analysis-icu-2.7.0.zip
    

История изменения актива

Доработан способ получения истории изменений записи актива.

Для сохранения дополнительных элементов истории, которые ранее никак не фиксировались (восстановление/удаление актива), создана таблица org_unidata_dg_data.transitions. Также доступна регистрация новых типов transition'ов и их сохранение в таблицу.

Для различных потоков выполнения восстановления и удаления актива добавлены новые сегменты, которые сохраняют информацию об изменениях в org_unidata_dg_data.transitions (org.unidata.dg.data[ASSET_DELETE_TRANSITION], org.unidata.dg.data[ASSET_RESTORE_TRANSITION]).

Получение истории записи вынесено в отдельный поток выполнения:

{
    "startId": "org.unidata.dg.data[ASSET_HISTORY_START]",
    "subjectId": "",
    "description": "org.unidata.dg.data.asset.history.start.description",
    "segments": [
        {
            "segmentType": "START",
            "id": "org.unidata.dg.data[ASSET_HISTORY_START]"
        },
        {
           "segmentType": "POINT",
            "id": "org.unidata.dg.data[ASSET_HISTORY]"
        },
        {
            "segmentType": "POINT",
            "id": "org.unidata.dg.data[ASSET_HISTORY_TRANSITIONS]"
        },
        {
            "segmentType": "FINISH",
            "id": "org.unidata.dg.data[ASSET_HISTORY_FINISH]"
        }
    ]
}

Добавлены новые эндпоинты:

  • GET-запрос /v1/dg/data/assets-history/types для получения всех типов событий истории актива.

  • POST-запрос /v1/dg/data/assets-history для получения истории записи.

Примечания:

  • Эндпоинт для получения истории записи актива стал Deprecated - POST-запрос /v1/dg/data/assets/vistory

  • Метод org.unidata.dg.data.service.AssetsService.getVistory(AssetVistoryGetContext) стал Deprecated

  • Точки пайплайна org.unidata.dg.data[ASSET_VISTORY_GET_START], org.unidata.dg.data[ASSET_GET_VISTORY] и org.unidata.dg.data[ASSET_VISTORY_GET_FINISH] стали Deprecated

Обновление OrientDB с версии 3.2.4 до 3.2.23

  • Добавлено свойство в backend.properties c названием БД OrientDB: org.unidata.mdm.graph.storage.orientdb.datasource.database=dg

  • Изменено значение для свойства org.unidata.mdm.graph.storage.orientdb.datasource.url

    • Было: org.unidata.mdm.graph.storage.orientdb.datasource.url=remote:localhost:2424/dg

    • Стало: org.unidata.mdm.graph.storage.orientdb.datasource.url=remote:localhost:2424

В url необходимо указывать только хост и порт для подключения к OrientDB.

Выбор формата импорта ФИО из Active Directory

  • Добавлен REST эндпоинт

Запрос: GET http://{{server}}:{{port}}/universe-backend/api/v1/ldap/configuration/name-formats

Ответ (displayName локализован):

{"details":{"info":[],"warning":[],"error":[]},
"names":[
{"name":"LAST_FIRST_MIDDLE","displayName":"фамилия / имя / отчество"},
{"name":"LAST_MIDDLE_FIRST","displayName":"фамилия / отчество / имя"},
{"name":"FIRST_LAST_MIDDLE","displayName":"имя / фамилия / отчество"},
{"name":"FIRST_MIDDLE_LAST","displayName":"имя / отчество / фамилия"},
{"name":"FIRST_LAST","displayName":"имя / фамилия"},
{"name":"LAST_FIRST","displayName":"фамилия / имя"},
{"name":"MIDDLE_LAST_FIRST","displayName":"отчество / фамилия / имя"},
{"name":"MIDDLE_FIRST_LAST","displayName":"отчество / имя / фамилия"}]}
  • Изменен объект для GET/POST/PUT http://{{server}}:{{port}}/unidata-backend/api/v1/ldap/configuration/{{_int}}

  • В объект domains добавлено поле "adUserNameFormat" типа строка. Значение - одно из списка name-formats