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

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

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

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

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

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

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

Валідація permitions

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

  2. У разі виявлення невалідної структури permitions система повинна зафіксувати помилку.

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

  1. Система повинна дозволяти оголошення аукціонів організаторами, якщо permitions.procedures.<procedure_name> = procedure
  2. Система повинна дозволяти подання заявок учасниками, якщо permitions.procedures.<procedure_name> = bids
  3. За відсутності відповідного значення permitions функціональність повинна бути недоступною як на UI, так і на API-рівні.

Доступ до Jobber-процедури

  1. Для напрямків SP* система повинна перевіряти: permitions.jobber.announcement = object
  2. Для напрямків LP* система повинна перевіряти: permitions.jobber.large_announcement = object

  3. Без відповідних permitions створення SP/LP процедур забороняється**.

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

  1. Система повинна дозволяти роботу з реєстром об’єктів оренди, якщо: permitions.registry.registry = object

  2. У разі відсутності permitions доступ до:

    повинен бути заблокований.

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

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

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

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

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

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

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

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

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

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

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

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

UseCase

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

  1. Procedure відсутня

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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