Ініціація перенесення обʼєкта

На Prozorro.Sale надходить письмовий запит на перенесення обʼєкта з одного Майданчика на інший Майданчик.

(Ніяких змін в ініціації процесу переносу не відбувається!)

Частина Prozorro.Sale

В разі отримання звернення, адміністратор ЦБД виконує технічну команду по створеній на нього Jira завці.

Результатом виконання команди зміни owner-а, в обʼєкті в _meta{} додається поле ownerTransfer зі значенням owner name майданчика, на який переносять обʼєкт.

Приклад структури _meta{}:

            "_meta": {
                "ownerTransfer": "filip.kuzmin@prozorro.sale"
                "systemDateModified": "2025-04-09T18:00:03.751000Z"
            }

Приклад обʼєкта, для якого виконали команду: https://procedure-epic.prozorro.sale/api/procedures/682462182cf8333bd1c00c64

Частина Майданчика-реціпієнта

API -запит на отримання токену

Ознакою того, що на Майданчик хочуть перенести обʼєкт є наявність в обʼєкті поля _meta{}.ownerTransfer в якому записано значення owner name майданчика-реціпієнта.

Наприклад, якщо в Адмінці була виконана команда на переніс обʼєкта на Майданчик "test_broker_1", то в обʼєкті, який переносять буде:

"_meta": {
     "systemDateModified": "2025-05-15T06:39:31.450000Z",
     "ownerTransfer": "test_broker_1"
}

ВАЖЛИВО! Токен до обʼєкта процедури на цьому етапі не змінюється! Навіть при наявності в обʼєкті поля _meta.ownerTransfer попередній owner обʼєкта може виконувати дії над обʼєктом використовуючи свій токен.


Щоб отримати токен до обʼєкту, Майданчику-реціпієнту необхідно виконати запит

HTTP методPOST
Header

Authorization

{{broker_token}}


Приклад запиту:

POST https://{host}/api/procedures/{object_id}/transfer
Authorization: {{broker_token}}


Приклад сURL

curl --location --request POST 'https://procedure-dev.prozorro.sale/api/procedures/67c7fb9b150280fe7b87f69b/transfer' \
--header 'Authorization: *******-*****-****-****-*******'

params:

host -

Назваhost
Dev

https://procedure-dev.prozorro.sale

Sandbox

https://procedure-sandbox.prozorro.sale

Prodhttps://procedure.prozorro.sale


object_id - технічний ідентифікатор обʼєкта "_id". Приклад: 67c7fb9b150280fe7b87f69b


Відповідь 200 ОК:

{
    "id": "67c7fb9b150280fe7b87f69b",
    "acc_token": "a4082115-ae38-409f-9093-bcacdb701cb5"
}

Запит обовʼязково має бути аутентифікований (відпрацьовує тільки з використанням унікального токену Майданчика)


ВАЖЛИВО! Результатом успішного виконання запиту має бути видача токена новому власнику, а також прибирання із обʼєкта, для якого виконувався переніс, поля ownerTransfer

Тобто, поле ownerTransfer відображається з моменту успішного виконання команди і до моменту успішного POST запиту майданчиком-реціпієнтом.


Відповідь 403 Forbidden:

{
    "message": "Forbidden. You are not authorized to receive token to this object"
}

Якщо обʼєкт ще не передано (відсутнє поле ownerTransfer), то повертаємо 403


Відповідь 404 Not Found:

{
    "message": "Not found procedure object with id 67f38f3de820f002c07a0644"
}

В системі має відбуватись логування дій отримання токену Майданчиком-реціпієнтом.


Як можна налаштувати логіку на Майданчику

Коли в mirror прилітає обʼєкт, то необхідно дивитись на наявність поля ownerTransfer в _meta{}

Якщо в обʼєкті присутнє поле ownerTransfer, то перевірити чи вказано в цьому полі ownerName Вашого Майданчика?