Сервисы

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

Модуль Процесс

Чтобы создать новый процесс:

  1. В ЦН перейдите в раздел Сервисы:

    ../_images/image10.png
  2. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.

  3. На вкладке Основные заполните следующие поля:

  • Название: произвольное название сервиса, необязательно для заполнения.

  • Имя: уникальное имя сервиса, обязательно для заполнения.

  • Комментарий: описание сервиса, необязательно для заполнения.

  1. Для активации модуля установите флажок Включен.

  2. Для получения доступа к файлу конфигурации нажмите на переключатель в правом верхнем углу страницы.

  3. Для создания модуля Процесс выберите опцию Обработка данных и сообщений в разделе Настройка сервисов:

    ../_images/image11.png
  4. На вкладке Параметры сервиса внесите рекомендованные значения:

    ../_images/image13.png
  5. После внесения данных нажмите на кнопку Сохранить.

  6. Нажмите на кнопку Применить конфигурацию:

    ../_images/config_apply2.png

Модуль Банк данных

Модуль используется для хранения пользовательских данных в Платформе.

Чтобы создать модуль Банк данных:

  1. В ЦН перейдите в раздел Сервисы:

    ../_images/image10.png
  2. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.

  3. На вкладке Основные заполните следующие поля:

  • Название: произвольное название сервиса, необязательно для заполнения.

  • Имя: уникальное имя сервиса, обязательно для заполнения.

  • Комментарий: описание сервиса, необязательно для заполнения.

  1. Для активации модуля установите флажок Включен.

  1. Для создания модуля Банк данных выберите опцию Банк данных в разделе Настройка сервисов:

    ../_images/image14.png
  2. На вкладке Параметры сервиса заполните необходимые значения:

  • Выберите используемую СУБД.

  • Установите флажок Регистрация действий, если все действия с хранилищем должны журналироваться в таблицу masterjournal базы банных хранилища (по умолчанию флажок не установлен).

  • Заполните следующие поля:

    • Сервер

    • Экземпляр

    • Порт

    • Имя базы данных

  • Настройте параметры авторизации:
    • Установите флажок Вход по имени пользователя и паролю, а так же введите имя пользователя и пароль, если для доступа к хранилищу требуется авторизация.

    • Если данные пользователя хранятся в модуле Credential, установите флажок Получать пароль из модуля Credential.

    ../_images/image15.png
    ../_images/image16.png
  1. Перейдите в режим редактора конфигурации, нажав на соответствующую кнопку:

../_images/image802.png
  1. Установите параметры сервиса: databaseType, serverAddress, serverPort, serverInstance, database, в account учетные данные для подключения к СУБД, name, description.

  2. После внесения данных нажмите на кнопку Сохранить.

  3. Нажмите на кнопку Применить конфигурацию:

    ../_images/config_apply2.png

    Пример конфигурации сервиса банка данных:

    {
            "$type": "DT.ClusterConfiguration.NodeModule, DT_Core",
            "config": {
                    "$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.StorageConfig,
            DT_ConfigurationRepository",
                    "changeLog": false,
                    "storeDay": 0,
                    "databaseConfiguration": {
                    "$type": "DT.ClusterConfiguration.DBConnectionConfig, DT_Core",
                    "databaseType": "MsSql",
                    "useConnectionString": false,
                    "useUsernameAndPassword": true,
                    "serverAddress": "DTplatform31",
                    "serverPort": 1433,
                    "serverInstance": "sqlexpress",
                    "database": "MyDB",
                    "account": {
                            "$type": "DT.ClusterConfiguration.Account, DT_Core",
                            "userName": "Testing",
                            "passwordNew": "Datare0n!",
                            "useCredential": false
                    },
                    "integratedSecurity": false,
                    "pooling": true,
                    "minimumPoolSize": -1,
                    "maximumPoolSize": -1,
                    "connectionLifetime": -1,
                    "properties": []
                    },
                    "sendingStrategy": ""
            },
            "isActive": true,
            "folderId": null,
            "entityId": "e24de33c-a25f-494c-a97c-042b8775c21c",
            "clusterId": "140e7996-8609-4ebd-a783-ca63855dbb9a",
            "name": "Банк_данных",
            "description": "Банк данных",
            "version": 1,
            "tagsCollection": [],
            "className": "DataBank",
            "classNameStr": "Банк данных",
            "comment": ""
    }
    
  4. Примените конфигурацию и удостоверьтесь, что в диспетчере задач появился процесс банка - DatareonPlatformDataBank.

Модуль Управление пользователями

Модуль хранит информацию о пользователях данных.

Для управления пользователями данных используйте:

  • методы на C#, которые можно вызывать из алгоритмов/функций. Описание методов в коде приведено в разделе Разработчику.

  • API узла, контроллер CredentialExternalUsers.

  • UI (формы типа Credential).

Чтобы создать модуль:

  1. Откройте вкладку Сервисы.

    ../_images/image10.png
  2. На вкладке Основные укажите имя модуля.

  3. Для активации модуля установите флажок Включен.

  4. Для получения доступа к файлу конфигурации нажмите на переключатель в правом верхнем углу страницы.

  5. Для создания модуля Управление пользователями выберите опцию Управление пользователями в разделе Настройка сервисов:

    ../_images/image17.png
  6. На вкладке Параметры сервиса введите необходимые значения.

  7. Выберите тип СУБД и введите название сервера и параметры подключения. При необходимости можно задать параметры авторизации с помощью флажка Вход по имени пользователя и паролю.

    ../_images/image18.png

    Примечание

    В новой базе всегда создается стандартный пользователь: Администратор Datare0n!

    Пример заполнения:

    ../_images/image19.png

    Внимание

    В конфигурации кластера хранится только список ролей!

Структура базы

Для хранения данных используется СУБД MS SQL/PostgreSQL в зависимости от настроек модуля.

../_images/image20.png

Таблицы:

  • users - список пользователей.

  • passwords - список паролей пользователей.

  • role_users - список соответствий пользователей и ролей.

  • folders - список папок пользователей.

  • role_folders - список соответствий папок и ролей.

  • sessions - список сессий, открытых пользователями на модулях.

  • journal - журнал регистрации действий пользователей. Регистрируются только действия, указанные в списке LoggingActions в настройках модуля.

  • externalUsers - список паролей к внешним системам.

  • metadata - текущая структура таблиц с дополнительными и секретными полями.

  • 11111111-0000-0000-0000-000000000000 - таблица с дополнительными полями. Дополнительные поля настраиваются в списке additionalFields конфигурации модуля.

  • 11111112-0000-0000-0000-000000000000 - таблица с секретными полями. Секретные поля настраиваются в списке secretField конфигурации модуля.

Структура таблиц с дополнительными и секретными полями обновляется аналогично таблицам с типами в банке при apply. Поля могут быть только простого типа и не могут являться массивами.

Две разные таблицы необходиммы для предоставления администратору СУБД возможности настраивать разные уровни доступа к этим таблицам. Таким образом исключается возможность открытого доступа к паролям и секретным полям.

В таблице folders при создании базы находится одна корневая папка с ID 11111111-0000-0000-0000-000000000000 и названием Все пользователи. Если у аккаунта пользователя не указан FolderId, то он будет помещен в эту папку. Папка защищена от удаления.

Использование авторизации для пользователей данных

Авторизация может использоваться:

  • в api узла - настраивается в кластере (enabled true/false):
    "auth": {
            "$type": "DT.ClusterConfiguration.AuthenticationConfig, DT_Core",
            "enabled": false
    }
    
  • в веб-адаптерах;

  • в custom-адаптерах;

  • в модуле UI.

При включении / выключении авторизации все веб-сервисы перезапускается, чтобы добавить / убрать функции авторизации.

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

При включенной авторизации в веб-сервисах в swagger сверху отображается кнопка Authorize и контроллеры с методами для авторизации. При этом методы (все или некоторые) перестают работать без авторизации (для веб-обработчиков авторизация настраивается включением флажка Требуется авторизация).

Как работает авторизация:

  1. Клиент вызывает метод для получения токена, передав логин и пароль.

  2. Модуль отправляет запрос в модуль Credential, который проверяет все данные, и если все ок - записывает данные в таблицу sessions и возвращает модулю готовую сессию. Модуль сохраняет сессии в памяти. Данные о сессии возвращаются клиенту.

    ../_images/image21.png
    ../_images/image22.png
    • Если вы пользуетесь swagger, то полученный токен без кавычек необходимо вставить в поле, которое появляется при нажатии на кнопку Authorize в swagger, дописав перед ним Bearer, и нажать на кнопку Authorize.

    • Если модуль перезапускается, то при первом запросе от клиента данные о сессии будут заново загружены из модуля Credential.

    • Обновление токена возможно, если эта опция включена в настройках модуля Credential. Обновление так же возможно через запрос к самому модулю (появляется еще один метод в контроллере авторизации). Соответственно, если модуль Credential неактивен, авторизация невозможна.

    • Если пользователя блокируют / удаляют, все сессии на модулях должны прерваться не позднее указанного в настройках Credential времени (параметр CreditalsLifetime).

Использование внешних пользователей для авторизации

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

Все действия выполняются в swagger узла в разделе CredentialExternalUsers.

Для использования внешних пользователей:

  1. Создайте нового пользователя.

  2. Установите пароль для пользователя.

  3. В конфигурации сервиса разрешите использование Credential.

    "account": {
                            "$type": "DT.ClusterConfiguration.Account, DT_Core",
                            "userName": "user01",
                            "password": "111",
                            "useCredential": true
                    },
    

Модуль Веб-интерфейс (UI)

Сервис UI позволяет пользователю настроить интерфейс для дальнейшей работы с данными из Платформы.

Для создания веб-интерфейса:

  1. В ЦН перейдите в раздел Сервисы:

../_images/image10.png
  1. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.

  2. На вкладке Основные заполните следующие поля:

  • Название: произвольное название сервиса, необязательно для заполнения.

  • Имя: уникальное имя сервиса, обязательно для заполнения.

  • Комментарий: описание сервиса, необязательно для заполнения.

  1. Убедитесь, что флажок Включен установлен.

  2. В разделе Настройка сервисов выберите вариант Веб-интерфейс:

../_images/image23.png
  1. Перейдите на вкладку Параметры сервиса.

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

../_images/image24.png
../_images/image25.png

Пример конфигурации:

{
        "$type": "DT.ClusterConfiguration.NodeModule, DT_Core",
        "config": {
                "$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.PortalConfig,
                DT_ConfigurationRepository",
        "port": 5199, //порт, на котором откроется пользовательская часть UI
        "useHttps": true, //необходимость использования Https
        "replyStoreTime": 0,
        "timeout": 10000 //ожидание отклика от сервера по умолчанию
        "sendingStrategy": "",
        "auth": {
        "$type": "DT.ClusterConfiguration.AuthenticationConfig, DT_Core",
        "enabled": false
        }
},
"isActive": true,
"folderId": "8a1a39ff-4236-4b28-bfe2-2cec7abc8f8f",
"entityId": "571fa3df-21b1-4755-aa52-538aaa6dbb68",
"clusterId": "e2678d8f-fc76-4940-b716-00d5634a2cd0",
"name": "UI",
"description": "UI",
"version": 1,
"tagsCollection": [],
"className": "UI",
"classNameStr": "UI"
}
  1. После внесения данных нажмите на кнопку Сохранить.

  2. Нажмите на кнопку Применить конфигурацию:

    ../_images/config_apply2.png

Для работы с UI используются следующие порты:

  • Порт 7200, в разделе Публикация данных - администаторская часть UI, позволяющая настроить представление для пользователей.

  • Порт 5199 - пользовательская часть UI для просмотра и работы с данными (авторизация по логину / паролю пользователей из модуля Управление пользователями).

Значение параметра timeout используется как время ожидания по умолчанию в формах редактирования и групповых представлениях, в конфигурации которых указано ожидание 0.

Для добавления информации в пользовательскую часть, настройте следующие параметры в администаторской части:

  • Формы.

  • Табличные формы.

  • Меню.

Внимание

Для включения авторизации в пользовательской части необходимо добавить в конфигурацию модуля UI настройки авторизации:

"auth": {
        "$type": "DT.ClusterConfiguration.AuthenticationConfig, DT_Core",
        "enabled": true,
        "usePasswordHash": false
},

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

Модуль Хранилище сообщений

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

Для создания хранилища сообщений:

  1. В ЦН перейдите в раздел Сервисы:

../_images/image10.png
  1. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.

  2. На вкладке Основные заполните следующие поля:

  • Название: произвольное название сервиса, необязательно для заполнения.

  • Имя: уникальное имя сервиса, обязательно для заполнения.

  • Комментарий: описание сервиса, необязательно для заполнения.

  1. Убедитесь, что флажок Включен установлен.

  2. В разделе Настройка сервисов выберите вариант Хранилище сообщений:

../_images/image26.png
  1. Перейдите на вкладку Параметры сервиса.

  2. На вкладке Параметры сервиса установите необходимые значения:

../_images/image27.png
  • Выберите используемую СУБД.

  • Установите флажок Регистрация действий, если все действия с хранилищем должны журналироваться в таблицу masterjournal базы банных хранилища (по умолчанию флажок не установлен).

  • Заполните следующие поля:

    • Сервер

    • Экземпляр

    • Порт

    • Имя базы данных

  • Настройте параметры авторизации:
    • Установите флажок Вход по имени пользователя и паролю, а так же введите имя пользователя и пароль, если для доступа к хранилищу требуется авторизация.

    • Если данные пользователя хранятся в модуле Credential, установите флажок Получать пароль из модуля Credential.

  1. После внесения данных нажмите на кнопку Сохранить.

  2. Нажмите на кнопку Применить конфигурацию:

    ../_images/config_apply2.png

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

Модуль Онтология

Для создания модуля Онтология:

  1. В ЦН перейдите в раздел Сервисы:

../_images/image10.png
  1. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.

  2. На вкладке Основные заполните следующие поля:

  • Название: произвольное название сервиса, необязательно для заполнения.

  • Имя: уникальное имя сервиса, обязательно для заполнения.

  • Комментарий: описание сервиса, необязательно для заполнения.

  1. Убедитесь, что флажок Включен установлен.

  2. В разделе Настройка сервисов выберите вариант Онтология:

../_images/image29.png
  1. Перейдите на вкладку Параметры сервиса.

  2. На вкладке Параметры сервиса установите необходимые значения:

../_images/image30.png
  • Выберите используемую СУБД.

  • Установите флажок Регистрация действий, если все действия с хранилищем должны журналироваться в таблицу masterjournal базы банных хранилища (по умолчанию флажок не установлен).

  • Заполните следующие поля:

    • Сервер

    • Экземпляр

    • Порт

    • Имя базы данных

  • Настройте параметры авторизации:
    • Установите флажок Вход по имени пользователя и паролю, а так же введите имя пользователя и пароль, если для доступа к хранилищу требуется авторизация.

    • Если данные пользователя хранятся в модуле Credential, установите флажок Получать пароль из модуля Credential.

Пример заполнения:

../_images/image31.png
  1. После внесения данных нажмите на кнопку Сохранить.

  2. Нажмите на кнопку Применить конфигурацию:

    ../_images/config_apply2.png

Пример конфигурации:

{
        "$type": "DT.ClusterConfiguration.NodeModule, DT_Core",
        "config": {
                "$type": "DT.ConfigurationRepository.Configuration.ModuleConfiguration.OntologyConfig, DT_ConfigurationRepository",
                "databaseConfiguration": {
                        "$type": "DT.ClusterConfiguration.DBConnectionConfig, DT_Core",
                        "databaseType": "MsSql",
                        "useConnectionString": false,
                        "useUsernameAndPassword": true,
                        "serverAddress": "DTplatform31",
                        "serverPort": "1433",
                        "serverInstance": "sqlexpress",
                        "database": "MyDB",
                        "account": {
                                "$type": "DT.ClusterConfiguration.Account, DT_Core",
                                "userName": "Testing",
                                "passwordNew": "Testing",
                                "useCredential": false
                                },
                                "integratedSecurity": false,
                                "pooling": true,
                                "minimumPoolSize": 5,
                                "maximumPoolSize": 10,
                                "connectionLifetime": 0,
                                "properties": []
                        },
                        "sendingStrategy": ""
                },
                "isActive": true,
                "folderId": null,
                "entityId": "b5fecb0a-a516-449d-9533-8a262adc9df5",
                "clusterId": "140e7996-8609-4ebd-a783-ca63855dbb9a",
                "name": "Онтология",
                "description": "Онтология",
                "comment": "",
                "version": 1,
                "tagsCollection": [],
                "className": "OntologyConfig",
                "classNameStr": "Онтология"
        }

Модуль Другое

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

../_images/image47.png