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

Compare with Current View Page History

« Previous Version 3 Next »

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

  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, зокрема:

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

    • наявність секцій procedures, jobber, registry (за потреби);

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

  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 доступ до:

    • створення об’єктів;

    • створення LL* процедур

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

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:

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

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

  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. Перевірка доступу до оголошення SP* процедур

Назва

Визначення доступу до SP* процедур

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

Use Case 7. Перевірка доступу до оголошення LP* процедур

Назва

Визначення доступу до LP* процедур

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

Передумови

  1. Permitons валідні

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

  1. Перевіряється permitions.jobber.large_announcement

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

  1. Permitons валідні

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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

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

Назва

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

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

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

Передумови

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

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

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

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

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

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

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

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

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

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

Інші вимоги

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

  • No labels