Цей розділ описує склад автоматизованих функцій кожної підсистеми та їхній взаємозв’язок.
1. Загальна структура автоматизованих функцій
Система АТ "Прозорро.Продажі" включає в себе набір автоматизованих функцій, які забезпечують ефективність, прозорість та безпеку проведення електронних аукціонів.
Основні групи автоматизованих функцій:
- Функції процесу торгів (Procedure)
Функції управління аукціонами
- Функції автоматичної синхронізації
Функції забезпечення безпеки та доступу
- Функції автоматизації внутрішніх процесів
2. Опис автоматизованих функцій за підсистемами
2.1. Система процесу торгів
Призначення: Забезпечує створення, управління та зміну статусів обʼєкта Procedure (процедури продажу) на всіх етапах її життєвого циклу.
Автоматизовані функції:
Автоматична зміна статусів процедури в залежності від дат, кількості учасників та подій (завершення прийому заяв, початок аукціону, завершення кваліфікації тощо).
Перевірка відповідності кількості заяв до мінімального порогу для проведення аукціону.
- Автоматичне обчислення періодів (наприклад, період уточнень, період подачі пропозицій, період кваліфікації) залежно від налаштувань процедури.
Створення об’єктів awards (присудження переможцю), коли завершено аукціон.
Формування contracts, коли завершено кваліфікацію.
Можливість скасування об'єктів award/contract у разі дискваліфікації чи відмови переможця.
Валідація полів оголошення, відповідність бізнес-правилам.
Перевірка поданих заяв, зокрема дотримання умов участі (цінові, документальні, строкові).
Взаємодія:
Може забирати дані через databridge у обʼєктів інших систем. Наприклад, registry або jobber.
Передає дані в auction для його коректного формування
2.2. Система управління аукціонами
Призначення: Забезпечує автоматизоване проведення аукціонної частини: від створення об’єкта аукціону до передачі результатів.
Автоматизовані функції:
Автоматичне створення аукціону в системі Auctions на основі об’єкта procedure.
Автоматичне відкриття торгів в зазначений час.
Прийом ставок в режимі реального часу.
Перевірка ставок:
правильність за кроком мінімального підвищення/пониження,
відповідність до умов (макс/мін значення, допустимі кроки тощо).
Динамічне ранжування учасників у ході торгів.
Фіксація переможця після завершення аукціону.
Формування результатів аукціону (найкраща ставка, всі раунди, часові мітки).
Передача даних до системи протоколювання, процедури та білінгового модуля (для розрахунку вартості участі/услуг).
Взаємодія:
- Отримання параметрів аукціону з Procedure через databridge.
Передача результатів:
до системи генерації протоколів,
до модуля procedure для створення awards і контрактів,
до білінгової системи.
2.3. Система синхронізації Mirror
Призначення: Забезпечує двосторонню синхронізацію даних між центральною базою даних (ЦБД) та майданчиками. Дозволяє майданчикам отримувати актуальний стан обʼєктів процедур, аукціонів, заявок та пов’язаних з ними сутностей у режимі майже реального часу.
Автоматизовані функції:
Синхронізація об'єктів (procedure, auction, bid, award, contract, cancellation тощо) з центральної системи до майданчиків через підписку на feed
Оновлення стану об'єктів у майданчика після внесення змін у ЦБД.
Підтримка цілісності даних шляхом валідації змін, контроль версій (modified, dateModified).
Інкрементальна синхронізація через
feed=changesз підтримкою offset/token-ідентифікаторів.Можливість повторного отримання змін у разі втрати з’єднання або помилок.
Фільтрація подій (за типом об’єкта, статусом, часом оновлення тощо).
Взаємодія:
Отримує зміни із ЦБД (core system) через:
API запити з
feed=changes
Передає дані майданчикам, які використовують їх для:
оновлення своїх UI/UX,
формування власних аналітичних сервісів,
тригерів для дій користувачів (подача ставок, підписання договорів тощо).
2.4. Забезпечення безпеки та доступів
Призначення: Забезпечують контроль доступу до даних і функцій системи, автентифікацію учасників, цілісність та конфіденційність переданої інформації. Гарантують, що лише авторизовані суб’єкти можуть переглядати або змінювати відповідні об’єкти системи.
Автоматизовані функції:
Використання токенів доступу для автентифікації майданчиків при роботі з API.
Прив’язка токена до конкретного майданчика – усі дії відбуваються тільки в межах об'єктів, які належать цьому майданчику.
Розмежування прав доступу:
Організатор бачить та змінює тільки свої процедури.
Учасник має доступ лише до власних заяв/документів.
Майданчики мають доступ до дій лише у межах своїх користувачів.
- Обмеження на зміну об'єктів – внесення змін можливе лише на певних етапах і лише дозволеним суб’єктом.
Взаємодія:
- Використовується в усіх системних модулях: procedure, auction, mirror, databridge, протоколювання тощо.
Спільно з модулем databridge здійснює контроль доступу до операцій по API.
2.5. Автоматизації внутрішніх процесів
Призначення: Забезпечує безперервну інтеграцію, автоматичне тестування, збирання та розгортання нових версій компонентів системи. Дозволяє оперативно та контрольовано оновлювати сервіси, зменшуючи ризики помилок при ручному втручанні.
Автоматизовані функції:
- CI (Continuous Integration):
Автоматичний запуск тестів після кожного коміту або пул-реквеста в основну гілку:
юніт-тести,
інтеграційні тести,
статичний аналіз коду (linting, code style).
Збірка артефактів (docker-образів, пакетів, артефактів застосунку) з проставленням версій та міток (build tags).
CD (Continuous Delivery / Deployment):
Автоматичне розгортання на тестове середовище після успішного CI.
Ручне або автоматичне розгортання на продакшн (в залежності від політик релізу).
Підтримка rollback — у разі помилки є можливість автоматично повернути попередню стабільну версію.
Інфраструктурні автоматизації:
Масштабоване розгортання через шаблони (Terraform, Helm).
Механізми оновлення залежностей — автоматичне відстеження оновлень бібліотек або пакетів із перевіркою на вразливості.
Інтеграція з іншими процесами:
Зв'язок із системою керування задачами (GitHub Issues): статуси задач оновлюються залежно від стану CI/CD.
Нотифікації про результати збірок і релізів у Slack
3. Висновок
- Кожна підсистема має набір автоматизованих функцій, що забезпечують ефективну роботу системи.
- Інтеграція між підсистемами відбувається через API, що забезпечує швидку взаємодію.
- Автоматизація процесів дозволяє зменшити ризики людських помилок та підвищити ефективність аукціонів.