Платформа 3V/DataManager/Описание модели настроек DataManager: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Полностью удалено содержимое страницы)
Метка: очистка
 
(не показано 35 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{DISPLAYTITLE: Описание модели настроек DataManager}}
 
Модель Json разделена на две части - '''Source''' (источник данных) и '''Destination''' (приёмник данных)
 
  
== Источник данных (Source) ==
 
=== Дискриминатор ===
 
discriminator - дискриминатор (тип данных - string)
 
 
* '''UrlDataManagerSource''' - в случае, если источник данных ''ссылка на ресурс''
 
Если источник данных - ''ссылка'', то в SOURCE необходимо указать '''Uri, Credentials, Headers''':
 
<syntaxhighlight lang="JSON" line>
 
"Source": {
 
        "discriminator": "UrlDataManagerSource",
 
        "Uri": "",
 
            "Credentials": "",
 
            "Headers": ""
 
      },
 
</syntaxhighlight> 
 
* '''ConstantDataManagerSource''' - если источник данных ''файл''
 
Если источник данных - ''файл'', то в SOURCE достаточно прописать только дискриминатор:
 
<syntaxhighlight lang="JSON" line>
 
"Source": {
 
            "discriminator": "ConstantDataManagerSource"
 
          },
 
</syntaxhighlight>
 
 
=== Унифицированный идентификатор ресурса ===
 
Uri - унифицированный идентификатор ресурса
 
 
DataManager поддерживает следующие источники:
 
* Postgres
 
* Любой get/post запрос
 
ВАЖНО: необходимо, чтобы запрос, прописанный в Uri возвращал данные в '''формате json'''
 
 
{| class="wikitable"
 
|-
 
! Стенд !! Пример !! Пояснение
 
|-
 
| finance || <syntaxhighlight lang="JSON" line>
 
"Source": {
 
            "discriminator": "UrlDataManagerSource",
 
            "Uri": "https://fmpcloud.io/api/v3/symbol/available-indexes?apikey=887f267b885bd2384c2b3ef0bfbee3c9"
 
          },
 
</syntaxhighlight>
 
|| Если перейти по ссылке, то данные представляются в json-формате
 
|-
 
| double.dev || <syntaxhighlight lang="JSON" line>
 
"Source": {
 
            "discriminator": "UrlDataManagerSource",
 
            "Uri": "http://filestorage/api/File/e0e88d78-339e-496c-baa8-d5fb18848692"
 
          },
 
</syntaxhighlight>
 
|| Ссылка на get-запрос файлового хранилища
 
''(как получить ссылку на файл из файлового хранилища см ниже)''
 
|-
 
| corp-portal || <syntaxhighlight lang="JSON" line>
 
"Source": {
 
            "discriminator": "UrlDataManagerSource",
 
            "Uri": "https://bs-extension.bright-soft.org/atlassian-adapter/Jira/Projects"
 
          },
 
</syntaxhighlight>
 
|| Ссылка на get-запрос сервиса atlassian-adapter
 
|}
 
 
Для того, чтобы получить ссылку на файл, необходимо сделать следующее:
 
# Получить идентификатор файла с помощью [[Платформа 3V/Справочник/Задание атрибутов в справочнике/Вычислимые значения файла|вычислимого атрибута]]
 
# Перейти в файловое хранилище проекта (filestorage) и найти get-метод [https://3v.3v-group.net/filestorage/swagger/index.html#/File/File_GetFile File/{fileid}]
 
# Заполнить параметр вызова "fileid" найденным в первом пункте значением (некоторые стенды дополнительно в качестве параметра запуска принимают тенант), запустить метод
 
# После запуска метода скопировать Request URL, оставить строку в формате "http://filestorage/api/File/НАБОР_ЦИФР" (набор цифр, в данном случае - ''fileid'')
 
 
''В случае, если данные предоставляются не из файлового хранилища, Request URL следует оставить без изменений''
 
 
=== Параметры авторизации ===
 
Credentials - параметры авторизации
 
Credentials содержит следующие настройки:
 
{| class="wikitable"
 
|-
 
! Поле !! Описание !! Тип
 
|-
 
| discriminator ||
 
* ConfidentialClientAuthenticationSettingsDto - аутентификация конфиденциального клиента
 
* PasswordAuthenticationSettingsDto - аутентификация с помощью логина и пароля
 
|| string (строка)
 
|-
 
| TokenRequestUrl || Адрес запроса токена - брать из кк || string (строка)
 
|-
 
| ClientId || Брать из кк (realm - clients - взять нужного) || string (строка)
 
|-
 
| ClientSecret || Брать из кк (realm - clients - взять нужного) - credentials - поле "secret" || string (строка)
 
|-
 
| UserName || Логин для авторизации на стенде '''(данное поле добавляется для дискриминатора ''"PasswordAuthenticationSettingsDto")''''' || string (строка)
 
|-
 
| Password || Пароль для авторизации на стенде || string (строка)
 
|}
 
 
 
"Credentials": {
 
"discriminator": "ConfidentialClientAuthenticationSettingsDto",
 
"TokenRequestUrl": "https://3v.3v-group.net/auth/realms/trivium/protocol/openid-connect/token",
 
"ClientId": "что-то",
 
"ClientSecret": "что-то"
 
}
 
 
есть такая штука:
 
"Credentials": {
 
      "discriminator": "PasswordAuthenticationSettingsDto",
 
      "TokenRequestUrl": "https://smart-id-test.mos.ru/iam/auth/realms/dev/protocol/openid-connect/token",
 
      "clientId": "smart-app",
 
      "clientSecret": "3fa537da-eac2-4625-a9a5-e8c0db5b4425",
 
      "UserName": "ivanov_ii",
 
      "Password": "7654321rM"
 
    },
 
    "Headers": {
 
      "namespace": "landscaping"
 
    }
 
 
=== Headers ===
 
  "Headers": {
 
      "namespace": "landscaping"
 
    }
 
 
"Headers": {
 
"Authorization": "Bearer <token>"
 
}
 
Токен берем из средств разработчика (f12 или ctrl+f12)
 
Создается отдельный клиент, который по написанному токену имеет ограниченный набор прав
 

Текущая версия на 04:36, 12 декабря 2022