Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • ПЗ майданчика має забезпечувати окреме логування всіх запитів до API ЦБД, незалежно від логів роботи самого ПЗ.

  • Логи мають бути доступними Prozorro.Sale на запит.за запитом

4.2. Вміст логів

Лог кожного запиту до ЦБД повинен включати:

  • HTTP-метод (GET, POST тощо)
  • Повний URI запиту (
  • дату та час запиту (у UTC),

  • повний URI запиту з query-параметрами (, але без чутливої інформації, наприклад, access token),
  • HTTP-метод (GET, POST, PUT, DELETE тощо),

  • статус відповіді ЦБД,

  • Дату та час запиту та відповіді (у UTC)

  • Статус відповіді ЦБД

  • Унікальний ідентифікатор X-Request-ID, який ЦБД повернуло у заголовку відповідізначення заголовка request-id, що повертається ЦБД.

4.3. Доступ до логів

  • НЕПРОД: доступ можуть отримати тестувальники, розробники, DevOps за запитом.

  • ПРОД: доступ можливий лише через офіційне звернення бізнес-сторони (через наявність конфіденційних даних).

4.4. Формат і доступ

  • Логи можуть надаватися у вигляді:

    • текстових файлів (обов’язково — з можливістю фільтрації),

    • бажано — через інтерфейс для самостійного аналізу (наприклад, Kibana).

...

Майданчик має забезпечити можливість фільтрації логів:

  • за часовим інтервалом,

  • за значенням request-id, X-Request-ID

  • за API-ендпоінтом,

  • за HTTP-статусом відповіді,

  • за HTTP-методом.

4.6. Зберігання логів

  • НЕПРОД: щонайменше 14 днів,

  • ПРОД: щонайменше 30 днів.

  • Логи мають бути чітко розділені за середовищами ЦБД (наприклад: stagingsandbox, production), не об’єднані в одну стрічку.один рядок

5. Базові вимоги до процедур взаємодії

5.1. Обов’язкове використання Mirror-сервісу

  • Майданчик зобов’язаний інтегруватися з Mirror-сервісом для синхронізації з ЦБД.

  • ПЗ має підтримувати постійне з'єднання з Mirror-сервісом і забезпечувати неперервну синхронізацію.

  • Заборонено використовувати Mirror-сервіс у вигляді періодичного cron-сценарію (наприклад, раз на годину/добу)


Info

Для забезпечення стабільності синхронізації даних, майданчики повинні коректно обробляти об'єкти великого розміру. 

Вимоги до налаштування майданчиків

Переконайтеся, що налаштування вашого WebSocket-клієнта дозволяють передачу пакетів розміром до 7.5 Мб.

Базовий тесткейс

Цей сценарій є обов'язковим для проходження при підключенні нових майданчиків або оновленні логіки роботи з Mirror.

Кроки тестування:

  1. Створення даних (Create):

    • Створити процедуру кожного доступного типу з наповненням (текст, метадані), що сумарно складає 7.5 Мб

    • Створити кожен об'єкт реєстру (Registry Object) розміром 7.5 Мб

    • Створити кожен об'єкт джоббера розміром 7.5 Мб
    • Очікуваний результат: Об'єкт успішно валідується, передається в ЦБД та стає доступним для інших учасників через Mirror

  2. Отримання даних (Sync):

    • У ЦБД (на середовищі Sandbox) створюється об'єкт процедури розміром 7.5 Мб.

    • Очікуваний результат: Клієнт Mirror майданчика не розриває з'єднання, успішно парсить отриманий JSON та оновлює локальну базу даних.


Для перевірки роботи міррора, протестувати створення наступних сутностей

  • процедури (з будь-якого напрямку)
  • процедури dgf
  • об'єкт реєстра (registry)
  • Announcement з послідуючим створенням процедури великого обʼєму (більше 6 Мб)

можна розбити на наступні етапи (якщо потрібно) - 2, 5, 7.5 метри об'єкт


Майданчик у себе перевіряє роботу клієнту (опрацювання помилки 1009 або схожих в залежності від реалізації клієнту) і також можливість швидко налаштувати максимальний розмір повідомлення яке Майданчик може отримувати з Mirror

Для тестувальників: тестувальник перевіряє, що об'єкт був синхронізований і корректно відображається на фронті Майданчика (публічний перегляд, кабінет організатора і учасника) при створенні об'єкту і його редагуванні як зі сторони самого Майданчика, так і зі сторони, коли обʼєкт створено іншим Майданчиком

5.2. Генерація мініатюр

  • ПЗ майданчика має використовувати генератор мініатюр для ілюстрацій, що відображаються в інтерфейсі.

6. Використання VPN для

...

авторизованих HTTP-запитів

...

Усі POST та PUT запити до API ЦБД у ПРОД середовищі мають виконуватись через захищене VPN-з’єднання.

...

  • Підключення до API з використанням AUTH токена дозволене лише всередині VPN-з'єднання, яке попередньо сертифіковане Prozorro.Sale

  • Заборонено виконання авторизованих запитів без VPN, навіть якщо передача відбувається по HTTPS

  • Винятком можуть бути лише публічні GET-запити, які не потребують авторизації, якщо інше не зазначено окремо

Мета: Забезпечення безпеки та конфіденційності авторизованої взаємодії з API ЦБД, запобігання перехопленню або компрометації токенів авторизації сторонніми особами.

6.1. Отримання доступу до VPN

Для підключення до захищеного середовища необхідно попередньо отримати сертифікат VPN.
Заявка на отримання сертифікату VPN подається через Service Desk Prozorro.Sale за посиланням: https://jira-sale.prozorro.org/servicedesk/customer/portal/33/create/481

7. Додатково

Загальні вимоги до процедур описані за

...

посиланням Базові вимоги до майданчиків