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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 68: Строка 68:
 
# После запуска метода скопировать Request URL, оставить строку в формате "http://filestorage/api/File/НАБОР_ЦИФР" (набор цифр, в данном случае - ''fileid'')
 
# После запуска метода скопировать Request URL, оставить строку в формате "http://filestorage/api/File/НАБОР_ЦИФР" (набор цифр, в данном случае - ''fileid'')
  
''В случае, если данные предоставляются не из файлового хранилища Request URL следует оставить без изменений''
+
''В случае, если данные предоставляются не из файлового хранилища, Request URL следует оставить без изменений''
 
   
 
   
 
=== Параметры авторизации ===
 
=== Параметры авторизации ===
Credentials
+
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": {
 
"Credentials": {
 
"discriminator": "ConfidentialClientAuthenticationSettingsDto",
 
"discriminator": "ConfidentialClientAuthenticationSettingsDto",

Версия 09:10, 8 сентября 2022

Модель Json разделена на две части - Source (источник данных) и Destination (приёмник данных)

Source

Дискриминатор

discriminator - дискриминатор (тип данных - string)

  • UrlDataManagerSource - в случае, если источник данных ссылка на ресурс

Если источник данных - ссылка, то в SOURCE необходимо указать Uri, Credentials, Headers:

1 "Source": {
2 	        "discriminator": "UrlDataManagerSource",
3 	        "Uri": "",
4             "Credentials": "",
5             "Headers": ""
6 	      },
  • ConstantDataManagerSource - если источник данных файл

Если источник данных - файл, то в SOURCE достаточно прописать только дискриминатор:

1 "Source": {
2             "discriminator": "ConstantDataManagerSource"
3           },

Унифицированный идентификатор ресурса

Uri - унифицированный идентификатор ресурса

DataManager поддерживает следующие источники:

  • Postgres
  • Любой get/post запрос

ВАЖНО: необходимо, чтобы запрос, прописанный в Uri возвращал данные в формате json

Стенд Пример Пояснение
finance
1 "Source": {
2             "discriminator": "UrlDataManagerSource",
3             "Uri": "https://fmpcloud.io/api/v3/symbol/available-indexes?apikey=887f267b885bd2384c2b3ef0bfbee3c9" 
4           },
Если перейти по ссылке, то данные представляются в json-формате
double.dev
1 "Source": {
2             "discriminator": "UrlDataManagerSource",
3             "Uri": "http://filestorage/api/File/e0e88d78-339e-496c-baa8-d5fb18848692" 
4           },
Ссылка на get-запрос файлового хранилища

(как получить ссылку на файл из файлового хранилища см ниже)

corp-portal
1 "Source": {
2             "discriminator": "UrlDataManagerSource",
3             "Uri": "https://bs-extension.bright-soft.org/atlassian-adapter/Jira/Projects" 
4           },
Ссылка на get-запрос сервиса atlassian-adapter

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

  1. Получить идентификатор файла с помощью вычислимого атрибута
  2. Перейти в файловое хранилище проекта (filestorage) и найти get-метод File/{fileid}
  3. Заполнить параметр вызова "fileid" найденным в первом пункте значением (некоторые стенды дополнительно в качестве параметра запуска принимают тенант), запустить метод
  4. После запуска метода скопировать Request URL, оставить строку в формате "http://filestorage/api/File/НАБОР_ЦИФР" (набор цифр, в данном случае - fileid)

В случае, если данные предоставляются не из файлового хранилища, Request URL следует оставить без изменений

Параметры авторизации

Credentials - параметры авторизации Credentials содержит следующие настройки:

Поле Описание Тип
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) Создается отдельный клиент, который по написанному токену имеет ограниченный набор прав