Дизайн обробки запитів на ініціювання бізнес-процесів зовнішніми системами через Трембіту
1. Призначення
Зовнішні системи повинні мати можливість ініціювати бізнес-процес через Трембіту.
1.1. Припущення
-
Бізнес-процеси, які викликані через Трембіту, автоматичні та синхронні(synchronous).
1.2. Базові принципи реалізації вимог
-
При ініціюванні бізнес-процесу зовнішні системи мають можливість передати вхідні параметри(start_vars) до SOAP запросу.
-
Валідація вхідних параметрів(start_vars)
-
В SOAP відповіді присутні return_vars, якщо вони є.
-
Системний підпис автоматично генерується при наявності параметра requires_signature для відповідного бізнес-процесу
Функціонал накладання системного підпису надалі може бути змінений на отримання підпису зовнішньої системи за наявності відповідних вимог -
start_vars зберігаються у Ceph bucket разом із згенерованим системним підписом за таким самим принципом, як і form-data для кабінетів користувача
-
start_vars є доступний для використання в рамках бізнес-процесу у тому числі і за допомогою juel функцій
Аспект авторизації описаний окремо за посиланням. |
2. Взаємодія з Data Factory
Взаємодія soap-сервісу з дата фабрикою відбувається з бізнес-процесів через bpms сервіс. Це означає, що будь-який виклик ендпоінта дата фабрики буде відбуватися з токеном сервіс-акаунта зовнішнього клієнта підсистеми-учасника в якому доступні автоматично налаштовані ролі для виконання авторизації доступу до даних на рівні Дата Фабрики.
2.1. Приклад бізнес-процесу
![init bpmn example](../../../../../_images/architecture/registry/operational/external-integrations/trembita/external-invocation/init-bpmn-example.png)
-
В x-digital-signature-source ключ документа з даними start_vars без підписа
-
В x-digital-signature-derived-source ключ документа з системним підписом
2.2. Відкриті питання
-
Чи потрібно користувачу підписувати дані та присилати підпис у soap-запиті?
5. Файл регулювання вхідних/вихідних параметрів бізнес-процесу
Файл, який описує вхідні та вихідні параметри для унікального бізнес-процесу. На базі цього файла буде виконана валідація вхідних параметрів при ініціалізації бізнес-процесу.
start_vars/return_vars змінні мають підтримку тільки примітивних типів: int, long, string, boolean. |
Формат trembita/business-processes.yml:
trembita:
process_definitions:
- process_definition_id: '<id>' # Унікальний ідентифікатор бізнес-процесу
requires_signature: boolean # Вказує на необхідність накладання системного підпису
start_vars: # Список вхідних параметрів бізнес-процесу
- <var_name>
- ...
return_vars: # Список вихідних параметрів, які будуть в респонсі ініціатора
- <var_name>
- ...
- process_definition_id: '<id>'
requires_signature: boolean
start_vars:
- <var_name>
- ...
return_vars:
- <var_name>
- ...
Приклад конфігурації:
trembita:
process_definitions:
- process_definition_id: 'add-lab'
requires_signature: true
start_vars:
- 'edrpou'
- 'name'
return_vars:
- 'labId'
- 'status'