Versions Compared

Key

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

Table of Contents

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

Система

...

майданчика повинна використовувати централізований

...

endpoint як єдине джерело прав доступу

Усі бізнес-рішення щодо доступу до:

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

...

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

...

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

...

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

...

  • створення дій над об'єктами оренди

...

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

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

Майданчик не має права надавати функціональність, яка не підтверджена наявними в 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

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

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

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

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

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

Приклад валідної структури:

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

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

Майданчик має дозволяти подання заявок учасниками, якщо permissions.procedures.<procedure_name> містить "bids"

Note

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

...

на UI, бо вона буде недоступна і на API рівні

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

Майданчик має дозволяти:

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

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

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

...

В разі відсутності у Майданчика permissions.jobber.announcement "object", організатор НЕ може створити Інформаційне Повідомлення та, відповідно, не - НЕ відбудеться автоматичного створення процедури Приватизації

...

В разі відсутності : permissions.jobber.large_announcement  "object", організатор не може створити Інформаційне Повідомлення та, відповідно, не буде автоматичного створення процедури Приватизації

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

UI майданчикаповинен динамічно відображати або приховувати функціональність відповідно до permissions

Користувачі не повинні бачити дій, які їм недоступні згідно permissions Майданчика

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

У разі неочікуваної зміни permissions Майданчик повинен зафіксувати інцидент та інцидент та менеджмент Майданчика повинен ініціювати звернення через Slack WF (“Приватні запити”)

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

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

Логіка permissions повинна бути розширюваною для нових напрямків без зміни існуючих UC

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

...

  • використовується остання валідна версія permissions, яка має локально зберігатись на стороні Майданчика

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

Система не повинна надавати нові доступи без наявності відповідних permissions в endpoint

...

Назва

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

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

Передумови

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

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

  1. Майданчик перевіряє permissions.procedures.<procedure_name>

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...

Назва

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

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

Передумови

  1. Permitons Permissions валідні

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

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

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

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

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

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

Інші вимоги

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

...