Сервисы
Сервисы предназначены для выполнения функций Платформы. Набор необходимых сервисов определяется администратором, исходя из решаемых задач.
Процесс
Чтобы создать новый процесс:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Для активации сервиса установите флажок Включен.
Для получения доступа к файлу конфигурации нажмите на переключатель в правом верхнем углу страницы.
Для создания сервиса Процесс выберите вариант Обработка данных и сообщений в разделе Настройка сервисов:
На вкладке Параметры сервиса внесите рекомендованные значения:
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Банк данных
Сервис используется для хранения пользовательских данных в Платформе.
Чтобы создать сервис Банк данных:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Для активации сервиса установите флажок Включен.
Для создания сервиса выберите вариант Банк данных в разделе Настройка сервисов:
На вкладке Параметры сервиса произведите следующие действия:
Выберите используемую СУБД:
MSSQL
PostgreSQL
Установите флажок Регистрация действий, если все действия с банком данных должны журналироваться в таблицу masterjournal базы данных (по умолчанию флажок не установлен). После установки флажка появляется возможность выбрать период хранения журнала действий (значение по умолчанию: 0 (Не ограничено)).
Заполните следующие поля:
Сервер
Экземпляр
Порт
Имя базы данных
Настройте параметры аутентификации:
Установите флажок Вход по имени пользователя и паролю
Введите имя пользователя и пароль, если для доступа к банку данных требуется аутентификация.
Если данные пользователя хранятся в сервисе Управление пользователями, установите флажок Получать пароль из модуля Credential. В результате поле Пароль отображаться не будет.
Нажмите на кнопку перехода в режим редактора конфигурации:
Установите параметры сервиса: databaseType, serverAddress, serverPort, serverInstance, database, account, name, description.
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Убедитесь, что в диспетчере задач появился процесс банка - 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 (формы типа Управление пользователями).
Чтобы создать сервис:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Для активации сервиса установите флажок Включен.
Для создания сервиса выберите вариант Управление пользователями в разделе Настройка сервисов:
На вкладке Параметры сервиса произведите следующие действия:
Выберите используемую СУБД:
MSSQL
PostgreSQL
Установите флажок Регистрация действий, если все действия должны журналироваться в таблицу masterjournal базы данных (по умолчанию флажок не установлен). После установки флажка появляется возможность выбрать период хранения журнала действий (значение по умолчанию: 0 (Не ограничено)).
Заполните следующие поля:
Сервер
Экземпляр
Порт
Имя базы данных
Настройте параметры аутентификации:
Установите флажок Вход по имени пользователя и паролю
Введите имя пользователя и пароль, если для доступа к сервису требуется аутентификация.
Если данные пользователя хранятся в сервисе Управление пользователями, установите флажок Получать пароль из модуля Credential. В результате поле Пароль отображаться не будет.
Примечание
В новой базе по умолчанию создается пользователь со следующими аутентификационными данными: Администратор/Datare0n!. В конфигурации кластера хранится только список ролей.
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Хранение данных
Для хранения данных используется СУБД 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, то он будет помещен в эту папку. Папка защищена от удаления.
Аутентификация для пользователей данных
Аутентификация может быть включена:
во внешних системах Веб-сервис и REST API;
в custom-адаптерах;
в сервисе Веб-интерфейс.
При включении / выключении аутентификации все веб-сервисы перезапускаются, чтобы корректно включить / выключить функцию аутентификации.
Все остальные параметры аутентификации берутся из модуля Credential. Если модуль Credential отсутствует, включение аутентификации невозможно.
При включенной аутентификации в веб-сервисах в swagger сверху отображается кнопка Authorize и контроллеры с методами для аутентификации. При этом методы (все или некоторые) перестают работать без аутентификации.
Как работает аутентификация:
Клиент вызывает метод для получения токена, передав логин и пароль.
Сервис отправляет запрос в сервис Управление пользователями, который проверяет все данные, и если все ок - записывает данные в таблицу sessions и возвращает сервису готовую сессию. Сервис сохраняет сессии в памяти. Данные о сессии возвращаются клиенту.
Если вы пользуетесь swagger, то полученный токен без кавычек необходимо вставить в поле, которое появляется при нажатии на кнопку Authorize в swagger, дописав перед ним Bearer, и нажать на кнопку Authorize.
Если сервис перезапускается, то при первом запросе от клиента данные о сессии будут заново загружены из сервиса Управление пользователями.
Обновление токена возможно, если эта опция включена в настройках сервиса Управление пользователями. Обновление также возможно через запрос к самому сервису (появляется еще один метод в контроллере аутентификации). Соответственно, если сервис Управление пользователями неактивен, аутентификация невозможна.
Если пользователя блокируют / удаляют, все сессии на сервисах должны прерваться не позднее указанного в настройках Управление пользователями времени (параметр CreditalsLifetime).
Если сервис Управление пользователями отсутствует, включение аутентификации невозможно. При этом Веб-сервис-клиент может использовать базовую и анонимную аутентификацию без помощи сервиса Управление пользователями.
При включенной аутентификации в веб-сервисах в swagger сверху отображается кнопка Authorize и контроллеры с методами для аутентификации. При этом методы (все или некоторые) перестают работать без аутентификации (для веб-обработчиков аутентификация настраивается включением флага Требуется авторизация).
Веб-интерфейс (UI)
Сервис UI позволяет пользователю настроить интерфейс для дальнейшей работы с данными из Платформы.
Для создания веб-интерфейса:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Убедитесь, что флажок Включен установлен.
В разделе Настройка сервисов выберите вариант Веб-интерфейс:
Перейдите на вкладку Параметры сервиса.
На вкладке Параметры сервиса заполните необходимые значения. При необходимости можно задать параметры аутентификации, установив флажок Использовать авторизацию.
Пример конфигурации:
{
"$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"
}
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Для работы с UI используются следующие порты:
Порт 7200, в разделе Публикация данных - администраторская часть UI, позволяющая настроить представление для пользователей.
Порт 5199 - пользовательская часть UI для просмотра и работы с данными (аутентификация по логину / паролю пользователей из сервиса Управление пользователями).
Значение параметра timeout используется как время ожидания по умолчанию в формах редактирования и групповых представлениях, в конфигурации которых указано ожидание 0.
Для добавления информации в пользовательскую часть, настройте следующие параметры в администраторской части:
Формы.
Табличные формы.
Меню.
Внимание
Для включения аутентификации в пользовательской части необходимо добавить в конфигурацию сервиса UI настройки аутентификации:
"auth": {
"$type": "DT.ClusterConfiguration.AuthenticationConfig, DT_Core",
"enabled": true,
"usePasswordHash": false
},
После добавления настроек и применения конфигурации при входе в пользовательский UI будут запрашиваться учетные данные пользователя из сервиса Управление пользователями. При успешной аутентификации в правом верхнем углу будет отображаться имя авторизованного пользователя. При некорректном вводе логина или пароля отобразится соответствующая ошибка. Если у пользователя нет прав на просмотр определенного типа данных, пункты меню для просмотра этих типов будут скрыты.
Хранилище сообщений
Сервис на основе базы данных SQL, предназначенный для регистрации и хранения сообщений Платформы с возможностью извлечения сообщений для повторной обработки в Платформе.
Для создания хранилища сообщений:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Убедитесь, что флажок Включен установлен.
В разделе Настройка сервисов выберите вариант Хранилище сообщений:
Перейдите на вкладку Параметры сервиса.
На вкладке Параметры сервиса произведите следующие действия:
Выберите используемую СУБД:
MSSQL
PostgreSQL
Установите флажок Регистрация действий, если все действия с хранилищем должны журналироваться в таблицу masterjournal базы данных хранилища (по умолчанию флажок не установлен). После установки флажка появляется возможность выбрать период хранения журнала действий (значение по умолчанию: 0 (Не ограничено)).
Заполните следующие поля:
Сервер
Экземпляр
Порт
Имя базы данных
Настройте параметры аутентификации:
Установите флажок Вход по имени пользователя и паролю
Введите имя пользователя и пароль, если для доступа к хранилищу требуется аутентификация.
Если данные пользователя хранятся в сервисе Управление пользователями, установите флажок Получать пароль из модуля Credential. В результате поле Пароль отображаться не будет.
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
После сохранения изменений и применения конфигурации будет автоматически создана база данных.
Онтология
Для создания сервиса Онтология:
В ЦН перейдите в раздел Сервисы.
Нажмите на кнопку + над таблицей сервисов. В рабочей области страницы отобразится интерфейс создания / редактирования сервиса, содержащий две вкладки: Основные и Параметры сервиса.
На вкладке Основные заполните следующие поля:
Название: произвольное название сервиса, необязательно для заполнения.
Имя: уникальное имя сервиса, обязательно для заполнения.
Комментарий: описание сервиса, необязательно для заполнения.
Убедитесь, что флажок Включен установлен.
В разделе Настройка сервисов выберите вариант Онтология:
Перейдите на вкладку Параметры сервиса.
На вкладке Параметры сервиса произведите следующие действия:
Выберите используемую СУБД:
MSSQL
PostgreSQL
Установите флажок Регистрация действий, если все действия должны журналироваться в таблицу masterjournal базы данных (по умолчанию флажок не установлен). После установки флажка появляется возможность выбрать период хранения журнала действий (значение по умолчанию: 0 (Не ограничено)).
Заполните следующие поля:
Сервер
Экземпляр
Порт
Имя базы данных
Настройте параметры аутентификации:
Установите флажок Вход по имени пользователя и паролю
Введите имя пользователя и пароль, если для доступа к сервису требуется аутентификация.
Если данные пользователя хранятся в сервисе Управление пользователями, установите флажок Получать пароль из модуля Credential. В результате поле Пароль отображаться не будет.
После внесения данных нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Пример конфигурации:
{
"$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": "Онтология"
}
Другое
Сервис позволяет настроить конфигурации сервисов, отсутствующих в списке настраиваемых сервисов на вкладке создания сервиса.