You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Бізнес вимоги: 

  1. Система майданчика повинна використовувати централізований endpoint як єдине джерело прав доступу
  2. Усі бізнес-рішення щодо доступу до:

    • оголошення процедур,

    • подання заявок,

    • роботи з реєстрами,

    • подачі заяв на об'єкти оренди,
    • створення дій над об'єктами оренди,
    • створення контрактів для Малої та Великої приватизації
    • створення викупу для Малої та Великої приватизації
    • створення Інфораційних повідомлень для Малої та Великої приватизації
    • створення об'єктів для Малої та Великої приватизації

    повинні базуватись виключно на даних permissions, отриманих з endpoint.

  3. Майданчик не має права надавати функціональність, яка не підтверджена наявними в endpoind permissions.

Функціональні вимоги

В Prozorro.Sale наявні два endpoints:

  1. Для отримання загального списку прав і дозволів одразу по всім Майданчикам - https://procedure.prozorro.sale/api/auth/brokers  
  2. Для отримання списку прав і дозволів по одному конкретному Майданчику - https://procedure.prozorro.sale/api/auth/brokers/system/services
    • де замість system в запит необхідно підставити owner name Майданчика

Інтеграційні вимоги

  1. Майданчик повинен виконувати запит до endpoint не рідше ніж 1 раз на добу (наразі о 05:00)
  2. Майданчик повинен обробляти успішну відповідь та зчитувати всі отримані permissions
  3. Отримані permissions повинні зберігатись локально для подальшого використання бізнес-логікою та UI
  4. Система повинна зберігати останню валідну версію permissions у разі тимчасової недоступності endpoint

Валідація permissions

  1. Система повинна перевіряти цілісність структури permissions, зокрема:

    • наявність ключа permissions

    • наявність секцій procedures, jobber, registry

    • допустимі значення (procedure, bids, object)

  2. У разі виявлення невалідної структури необхідно передати інформацію Prozorro.Sale, наприклад, через запит в Slack Workflow

Доступ до процедур

  1. Система повинна дозволяти оголошення аукціонів організаторами, якщо permissions.procedures.<procedure_name> містить "procedure"
  2. Система повинна дозволяти подання заявок учасниками, якщо permissions.procedures.<procedure_name> містить "bids"

  3. За відсутності відповідного значення permissions функціональність повинна бути недоступною як на UI, бо вона буде недоступна і на API рівні.

Доступ до дій з Реєстром об’єктів оренди

  1. Система повинна дозволяти:

    1. Створення Об'єкту оренди, якщо: permissions.registry.object містить "object"

    2. Створення Дії до об'єкту оренди, якщо: permissions.registry.action містить "object"
    3. Створення Заяв до об'єкту оренди, якщо: permissions.registry.lease_request містить "object"

Робота з напрямком Приватизації

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

  1. Система повинна дозволяти:

    1. Створення Об'єкту Малої приватизації, якщо: permissions.registry.asset= object

    2. Створення Контракту Малої приватизації, якщо: permissions.registry.execution = object
    3. Створення Інформаційного повідомлення Малої приватизації, якщо: permissions.jobber.announcement = object
    4. Створення Викупу Малої приватизації, якщо: permissions.jobber.redemption= object
  2. В разі відсутності : permissions.jobber.announcement = object, організатор не може створити ІП та відповідно не буде автоматично створено процедуру

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

  1. Система повинна дозволяти:

    1. Створення Об'єкту Малої приватизації, якщо: permissions.registry.large_asset= object

    2. Створення Контракту Малої приватизації, якщо: permissions.registry.large_execution = object
    3. Створення Інформаційного повідомлення Малої приватизації, якщо: permissions.jobber.large_announcement = object
    4. Створення Викупу Малої приватизації, якщо: permissions.jobber.large_redemption= object
  2. В разі відсутності : permissions.jobber.large_announcement = object, організатор не може створити ІП та відповідно не буде автоматично створено процедуру

UI та відображення

  1. UI майданчика повинен динамічно відображати або приховувати функціональність відповідно до permissions.
  2. Користувачі не повинні бачити дій, які їм недоступні згідно permissions.

  3. UI та API повинні використовувати одну й ту саму логіку перевірки permissions

Обробка змін і відсутніх permissions

  1. У разі втрати або несподіваної зміни permissions система EТМ повинна зафіксувати інцидент.
  2. Менеджмент ЕТМ повинен мати можливість ініціювати звернення через WF (“Приватні запити”).

Нефункціональні вимоги

  1. Обробка permissions не повинна впливати на продуктивність UI.

  2. Використання permissions повинно бути ідемпотентним (однакові дані → однаковий результат).
  3. Логіка permissions повинна бути розширюваною для нових напрямків без зміни існуючих UC.
  4. Усі перевірки permissions повинні логуватись для аудиту. - Чи потрібно ?

Вимоги до помилок і стабільності

  1. У разі недоступності endpoint:

    • використовується остання валідна версія permissions;

    • користувачі не отримують помилок UI.

  2. Система не повинна надавати нові доступи без підтверджених permissions.

  3. Будь-яка критична невідповідність permissions повинна бути видимою для відповідальних осіб.

UseCase

Use Case 1. Отримання permissions з системного endpoint

Назва

Отримання permissions з системного endpoint
Актори
  • Основний: ЕТМ (майданчик)

  • Системний: ЦБД

Передумови

  1. Майданчик акредитований у системі

  2. Endpoint доступний майданчику

  3. Є валідні облікові дані для доступу  - Наразі не актуально

Основний хід подій (дій)

  1. ЕТМ надсилає запит до endpoint permissions

  2. ЦБД повертає відповідь з permissions

  3. Дані передаються у внутрішню логіку майданчика

Альтернативні шляхи, помилки, крайові випадки

  1. Endpoint недоступний

  2. Помилка авторизації - наразі відсутня

  3. Некоректний формат відповіді

Результат (Постумови)

Отримано відповідь endpoint або зафіксовано помилку

Інші вимоги

Endpoint викликається планово (наразі 1 раз на добу о 05:00)

Use Case 2. Отримання та збереження permissions майданчиком

Назва

Отримання та локальне збереження permissions

Актори
  • Основний: ЕТМ (майданчик)

Передумови

  1. Успішно виконано UC-1
  2. Отримано відповідь endpoint

Основний хід подій (дій)

  1. ЕТМ зчитує дані з відповіді endpoint

  2. Дані зберігаються у локальному сховищі (cache / БД)

  3. Дані маркуються як актуальні

Альтернативні шляхи, помилки, крайові випадки

  1. Дані не збереглись

  2. Частково збережені permissions

Результат (Постумови)

Майданчик має локально доступний перелік permissions

Інші вимоги

Повинна зберігатись попередня версія permissions (за потреби)

Use Case 3. Валідація цілісності permissions

Назва

Валідація структури та цілісності permissions

Актори
  • Основний: ЕТМ (майданчик)

Передумови

  1. Успішно виконано UC-2

Основний хід подій (дій)

  1. ЕТМ перевіряє наявність ключа permissions
  2. Перевіряє обов’язкові секції (procedures, jobber, registry)
  3. Перевіряє допустимі значення (procedure, bids, object)
  4. Фіксує результат валідації

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутня секція
  2. Невідоме значення permissions
  3. Порожні permissions

Результат (Постумови)

Permitons визнані валідними або невалідними

Інші вимоги

Результат валідації має логуватись

Use Case 4. Визначення доступу до оголошення аукціонів

Назва

Визначення права організатора на оголошення аукціонів

Актори
  • Основний: ЕТМ
  • Другорядний: Організатор

Передумови

  1. Permitons валідні UC-3

Основний хід подій (дій)

  1. ЕТМ перевіряє permissions.procedures.<procedure_name>

  2. Якщо значення procedure — доступ дозволено

  3. Функціонал створення аукціону активується

Альтернативні шляхи, помилки, крайові випадки

  1. Procedure відсутня

  2. Значення ≠ procedure

Результат (Постумови)

Організатор може або не може створювати аукціони

Інші вимоги

Логіка повинна застосовуватись для кожного напрямку окремо

Use Case 5. Визначення доступу до подання заявок (bids)

Назва

Визначення права користувачів на подання заявок

Актори
  • Основний: ЕТМ
  • Другорядний: Потенційний учасник (зареєстрований на ЕТМ користувач з роллю учасник)

Передумови

  1. Permitons валідні UC-3

Основний хід подій (дій)

  1. ЕТМ перевіряє permissions.procedures.<procedure_name>

  2. Якщо значення bids — доступ дозволено

  3. Активується можливість подання заявки

Альтернативні шляхи, помилки, крайові випадки

  1. Значення відсутнє
  2. Значення ≠ bids

Результат (Постумови)

Учасник може або не може подати заявку

Інші вимоги

Має узгоджуватись з UI та API

Use Case 6. Доступ до оголошення JAS і подальшого автоматичного створення процедур SP*

Назва

Визначення доступу до оголошення JAS (Інформаційного повідомлення)

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.jobber.announcement
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ announcement
  2. Значення ≠ object

Результат (Постумови)

Доступ до SP* процедур дозволено або заборонено

Інші вимоги

  • Обов’язково для напрямків SP*
  • Не застосовується до інших напрямків

Use Case 7. Доступ до внесення об’єктів у реєстр Малої приватизації (RAS)

Назва

Визначення доступу до внесення об’єктів до реєстру Малої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.asset
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ asset
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з RAS
  • Не застосовується до інших напрямків

Use Case 8. Доступ до створення execution Малої приватизації (RES)

Назва

Визначення доступу до створення execution Малої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.execution
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ execution
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з REL
  • Не застосовується до інших напрямків

Use Case 9. Доступ до створення redemption Малої приватизації (JRS)

Назва

Визначення доступу до створення redemption Малої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permissions валідні

Основний хід подій (дій)

  1. Перевіряється permissions.jobber.redemption
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ redemption
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з JRS
  • Не застосовується до інших напрямків

Use Case 10. Доступ до оголошення JAL і подальшого автоматичного створення процедур LP*

Назва

Визначення доступу до оголошення JAL (Інформаційного повідомлення)

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.jobber.large_announcement
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ large_announcement
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення JAL дозволено або заборонено

Інші вимоги

  • Обов’язково для напрямків LP*
  • Не застосовується до інших напрямків

Use Case 11. Доступ до внесення об’єктів до реєстру Великої приватизації (RAL)

Назва

Визначення доступу до внесення об’єктів до реєстру Великої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.large_asset
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ large_asset
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з RAL
  • Не застосовується до інших напрямків

Use Case 12. Доступ до створення execution Великої приватизації (REL)

Назва

Визначення доступу до створення executionВеликої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.large_execution
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ large_execution
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з REL
  • Не застосовується до інших напрямків

Use Case 13. Доступ до створення redemption Великої приватизації (JRL)

Назва

Визначення доступу до створення redemption Великої приватизації

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.jobber.large_redemption
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ large_redemption
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з JRL
  • Не застосовується до інших напрямків

Use Case 14. Доступ до внесення об’єктів у реєстр оренди (RGL)

Назва

Визначення доступу до внесення об'єктів до реєстру оренди

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.object
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ object
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з RGL
  • Не застосовується до інших напрямків

Use Case 15. Доступ до створення Дій до об'єктів реєстру оренди (RGLA)

Назва

Визначення доступу до створення Дій до об'єктів реєстру оренди

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.action
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ action
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з RGL
  • Не застосовується до інших напрямків

Use Case 16. Доступ до створення Заяв до об'єктів реєстру оренди (RGLR)

Назва

Визначення доступу до створення Заяв до об'єктів реєстру оренди

Актори
  • Основний: ЕТМ

Передумови

  1. Permitons валідні

Основний хід подій (дій)

  1. Перевіряється permissions.registry.lease_request
  2. Якщо значення object — доступ дозволено

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутній ключ lease_request
  2. Значення ≠ object

Результат (Постумови)

Доступ до створення об'єктів реєстру дозволено або заборонено

Інші вимоги

  • Обов’язково для роботи з RGL
  • Не застосовується до інших напрямків

Use Case 17. Керування відображенням функціоналу на сайті

Назва

Керування UI відповідно до permissions

Актори
  • Основний: ЕТМ
  • Другорядні: Організатор, Учасник

Передумови

  1. Виконані UC-4 – UC16

Основний хід подій (дій)

  1. ЕТМ агрегує результати бізнес-UC

  2. Відображає лише дозволені дії

  3. Приховує або блокує заборонений функціонал

Альтернативні шляхи, помилки, крайові випадки

  1. Конфлікт доступів

  2. Застарілі permissions

Результат (Постумови)

Користувачі бачать лише дозволений функціонал

Інші вимоги

UI та API мають бути синхронні

Use Case 18. Обробка відсутніх або змінених permissions

Назва

Ескалація проблем з permissions

Актори
  • Основний: Менеджмент ЕТМ

  • Системний: WF (“Приватні запити”)

Передумови

  1. Виявлено аномалію permissions

Основний хід подій (дій)

  1. ЕТМ фіксує невідповідність

  2. Менеджмент ініціює звернення у WF

  3. Очікується роз’яснення або корекція

Альтернативні шляхи, помилки, крайові випадки

  1. Відсутня відповідь

  2. Підтверджена бізнес-зміна

Результат (Постумови)

Причина відсутності permissions з’ясована

Інші вимоги

Всі звернення мають трасуватись

  • No labels