Сервисы

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

Процесс

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

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

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

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

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

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

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

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

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

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

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

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

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

    ../_images/config_apply2.png

Банк данных

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

Чтобы создать сервис Банк данных:

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

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

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

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

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

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

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

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

    ../_images/image14.png
  2. На вкладке Параметры сервиса произведите следующие действия:

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

      • MSSQL

      • PostgreSQL

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

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

      • Сервер

      • Экземпляр

      • Порт

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

    • Настройте параметры аутентификации:

      • Установите флажок Вход по имени пользователя и паролю

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

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

      ../_images/authorization.png
  3. Нажмите на кнопку перехода в режим редактора конфигурации:

    ../_images/image801.png
  4. Установите параметры сервиса: databaseType, serverAddress, serverPort, serverInstance, database, account, name, description.

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

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

    ../_images/config_apply2.png
  7. Убедитесь, что в диспетчере задач появился процесс банка - DatareonPlatformDataBank.

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

{
        "$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": ""
}

Примечание

Если на сервере СУБД MSSQL отключен параметр оптимизированных запросов FILESTREAM, в журнале работы сервиса будет регистрироваться соответствующее предупреждение, не блокирующее работу сервиса. Для нормальной работы сервиса с оптимизированными запросами включите параметр FILESTREAM на стороне сервера СУБД. Если работа с оптимизированными сервисами не требуется, отключите параметр useMemoryOptimizedTable в конфигурации сервиса для избежания регистрации предупреждений.

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

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

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

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

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

  • UI (формы типа Управление пользователями).

Чтобы создать сервис:

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

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

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

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

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

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

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

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

    ../_images/image17.png
  2. На вкладке Параметры сервиса произведите следующие действия:

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

      • MSSQL

      • PostgreSQL

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

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

      • Сервер

      • Экземпляр

      • Порт

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

    • Настройте параметры аутентификации:

      • Установите флажок Вход по имени пользователя и паролю

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

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

      ../_images/authorization.png

    Примечание

    В новой базе по умолчанию создается пользователь со следующими аутентификационными данными: Администратор/Datare0n!. В конфигурации кластера хранится только список ролей.

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

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

    ../_images/config_apply2.png

Хранение данных

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

Таблицы:

  • 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, то он будет помещен в эту папку. Папка защищена от удаления.

Аутентификация для пользователей данных

Аутентификация может быть включена:

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

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

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

Как работает аутентификация:

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

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

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

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

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

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

Если сервис Управление пользователями отсутствует, включение аутентификации невозможно. При этом Веб-сервис-клиент может использовать базовую и анонимную аутентификацию без помощи сервиса Управление пользователями.

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

Аутентификация во внешних сервисах

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

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

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

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

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

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

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

Веб-интерфейс (UI)

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

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

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

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

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

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

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

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

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

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

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

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

    ../_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 будут запрашиваться учетные данные пользователя из сервиса Управление пользователями. При успешной аутентификации в правом верхнем углу будет отображаться имя авторизованного пользователя. При некорректном вводе логина или пароля отобразится соответствующая ошибка. Если у пользователя нет прав на просмотр определенного типа данных, пункты меню для просмотра этих типов будут скрыты.

Хранилище сообщений

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

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

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

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

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

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

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

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

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

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

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

  4. На вкладке Параметры сервиса произведите следующие действия:

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

      • MSSQL

      • PostgreSQL

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

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

      • Сервер

      • Экземпляр

      • Порт

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

    • Настройте параметры аутентификации:

      • Установите флажок Вход по имени пользователя и паролю

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

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

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

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

    ../_images/config_apply2.png

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

Онтология

Для создания сервиса Онтология:

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

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

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

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

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

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

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

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

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

  4. На вкладке Параметры сервиса произведите следующие действия:

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

      • MSSQL

      • PostgreSQL

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

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

      • Сервер

      • Экземпляр

      • Порт

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

    • Настройте параметры аутентификации:

      • Установите флажок Вход по имени пользователя и паролю

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

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

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

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

    ../_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