Універсальний конектор для виклику Trembita Rest API

1. Загальний опис

На цей час комунікація з учасниками інформаційного обміну через ШБО "Трембіта" відбувається лише з використанням SOAP протоколу через типові специфічні SOAP-конектори (з ЄДР, ДРАЦС, ЄІБДВПО) або через універсальний SOAP-конектор.

Водночас ШБО "Трембіта" надає можливість комунікувати зі своїми сервісами через REST.

Наразі Платформа не надає користувачу можливості зручної інтеграції з ШБО для подібних випадків.

Необхідно надати користувачам Платформи можливість через зручний інтерфейс виконувати налаштування взаємодії з ШБО "Трембіта" через REST та відповідний Trembita-REST-конектор для гнучкого моделювання точок інтеграції на рівні бізнес-процесів в залежності від вимог.

2. Функціональні сценарії

  • Налаштування технічним адміністратором реєстру інформації про учасників інформаційного обміну Трембіта через REST-інтеграцію

  • Моделювання точок інтеграції з налаштованим учасником інформаційного обміну на рівні бізнес-процесів з використанням універсального Trembita-REST-конектора.

3. Ролі користувачів

  • Технічний адміністратор реєстру

  • Розробник регламенту

5. Високорівневий дизайн рішення

Дана функціональність використовує механізми закладені в дизайні Управління налаштуваннями та секретами зовнішніх інтеграцій.

5.1. Налаштування інтеграцій через Центр управління платформою

5.1.1. Інтерфейси адміністратора

Екран конфігурації реєстру
500
control-plane-gerrit:<registry>.git
deployment-templates/values.yaml
trembita:
  registries:
    edrlike-registry:
      url: "https://trembita.mdtu-ddm.projects.epam.com"
      type: "registry"
      protocol: "REST"
      client:
        x-road-instance: "THIS-REGISTRY"
        member-class: "GOV"
        member-code: "CODE"
        subsystem-code: "Platform-registry"
      service:
        x-road-instance: "THAT-REGISTRY"
        member-class: "GOV"
        member-code: "CODE"
        subsystem-code: "EdrLike-system"
      # опційний блок авторизації
      auth:
        type: "AUTH_TOKEN"
        secret: "vault:registry-kv/registry/<registry>/trembita-registries/<trembita-registry-name>"

5.2. Налаштування інтеграцій на рівні регламенту

registry-gerrit:<registry-regulation>.git/bp-trembita/configuration.yml
# new block on the same level as external-systems:
trembita:
  registries:
    edrlike-registry:
      operations:
        get-subject:
          resource-path: "/api/subject"
          method: "GET"
        create-subject:
          resource-path: "/api/subject"
          method: "POST"

5.3. Створення ConfigMap ресурсів при публікації змін регламенту

ConfigMap: "trembita-rest-endpoint-configuration"
kind: ConfigMap
apiVersion: v1
metadata:
  name: trembita-rest-endpoint-configuration
  namespace: <registry-namespace>
data:
  trembita-rest-endpoint-configuration.yml: |
    trembita:
      registries:
        edrlike-registry:
          operations:
            get-subject:
              resource-path: "/api/subject"
              method: "GET"
            create-subject:
              resource-path: "/api/subject"
              method: "POST"

6. Моделювання регламенту реєстру

6.1. Новий Trembita-REST-конектор

Новий конектор є схожим на стандартний REST-конектор, вже наявний у платформі, проте додається специфіка, необхідна для запитів через Трембіта

6.1.2. Заголовки

Обов’язковими є заголовки Uxp-Client та Uxp-Service, які заповнюються відповідно до формату

trembita headers

Також можна передавати інші заголовки, необхідні за специфікацією реєстру, до якого виконується запит

6.1.3. Тіло/Параметри запиту

Не стандартизовані, надаються для окремих реєстрів

6.1.4. Конфігурація конектора

Конфігураційний параметр Вхідний/Вихідний Тип Опис

Службова назва реєстру учаснику ШБО "Трембіта"

in

string

Назва яка була вказана в якості службової при створенні конфігурації в адміністративній консолі

Назва операції

in

string

Назва операції, яка буде виконуватись (з регламенту trembita.registries.<>.operations)

Заголовки запиту

in

string

Додаткові необхідні заголовки запиту

Параметри запиту

in

string

Необхідні параметри запиту (request params)

Дані запиту

in

string

Необхідне тіло запиту

Вихідний результат запиту

out

string

Строкове представлення відповіді від ШБО "Трембіта"

7. Високорівневий план розробки

7.2. План розробки

  • Створення нового розширення для camunda (bpms)

  • Розширення функціональності адмін консолі (control-plane) можливістю додавати нові реєстри для інтеграції через ШБО "Трембіта" REST.

  • Створення додаткових валідаційних правил регламенту (registry-regulation-validator-cli)

  • Створення референтного прикладу бізнес-процесу з використання конектору

  • Створення інструкцій для технічного адміністратора та розробника регламенту