NEW (ще не реалізовано)
Підписання документа (Створення ЕЦП)
ЕЦП накладається поза системою. Сервіс, за допомогою якого є можливість підписати документ залишається на розсуд користувача.
Наприклад, ЕЦП є можливість накласти за допомогою сервісу ДІЯ https://sign.diia.gov.ua/
Інструкція "Як це зробити" тут
Завантаження в Документ.Сервіс
Вже сформований файл ЕЦП завантажується окремим файлом в Документ.Сервіс за стандартною логікою "Завантаження документа в Документ.Сервіс"
Найчастіше вживаний тип розширення файлу .p7s, але це може бути файл з іншим розширенням.
Ознака "публічності" документа (scope: public/private) вказується на етапі завантаження файла в Документ.Сервіс.
- на ЦБД немає валідації на те, щоб "публічність" документа та його ЕЦП була однаковою, але бажано завантажувати саме так: якщо основний документ є private, то його ЕЦП також має бути private
Завантаживши файл ЕЦП у Документ.Сервіс користувач отримує token завантаженого документа (jwt).
Додавання до документу файлу з ЕЦП
Додати документ ЕЦП має бути можливість до будь-якого документа будь-якого Обʼєкта ЦБД, де це передбачено ТЗ. Якщо у сутності є документи, то до кожного документа має бути можливість додати ЕЦП (згідно статусів\періодів Обʼєкта)
Одразу при публікації в ЦБД Обʼєкта
При публікації Обʼєкта в ЦБД є можливість одразу надсилати документ із вкладеним файлом ЕЦП використовуючи POST запит створення відповідного Обʼєкта.
Модель документа із вкладеним документом ЕЦП виглядає наступним чином:
Тобто, документ з documentType: "digitalSignature" є вкладеним у документ до якого відноситься.
Додавання документа ЕЦП до вже існуючого документа Обʼєкта
Окремий endpoint (деталі нижче) дозволяє додати до документа Обʼєкта документ ЕЦП.
Використовується для ситуації, коли Обʼєкт вже опубліковано і протягом періода редагування Обʼєкта необхідно додати документ ЕЦП, який має бути обовʼязково вкладеною сутністью існуючого документа.
До одного документа - один ЕЦП!
Додавання ЕЦП до документа - необовʼязкова дія. Обовʼязковість зазначена з нормативній документації і в ТЗ, в тому випадку, якщо цього потребує нормативка.
Endpoint
До всіх груп endpoints по роботі з документами додається окремий endpoint для роботи з ЕЦП.
Приклади:
*./documents/{doc_id}/digitalSignature - GET - отримати ЕЦП *./documents/{doc_id}/digitalSignature - POST - завантажити ЕЦП *./documents/{doc_id}/digitalSignature - PATCH - замінити ЕЦП *./documents/{doc_id}/digitalSignature - DELETE - видалити ЕЦП
Наприклад*./documents/{doc_id}/digitalSignature - GET
повертає ЕЦП для документа без основного документу
Відповідно, є можливість завантажувати до документу підпис окремо або одразу документ з підписом при публікації Обʼєкта.
Міграція
Буде реалізована Міграція існуючих документів на стороні ЦБД.
Особливості міграції:
Наразі, документ ЕЦП у relatedDocument може мати ID файла у Документ.Сервісі (_ds_id) АБО ID документа у Обʼєкті (id)
При міграції існуючих документів ЕЦП необхідно дивитись на ID, що вказана у relatedDocument:
- якщо в Обʼєкті є декілька документів з одним _ds_id, і у документі ЕЦП relatedDocument вказано цей _ds_id, то підпис буде додано до кожного такого документа
- якщо в Обʼєкті є один документ і декілька ЕЦП у яких в обох relatedDocument вказано _ds_id цього документа, то ... (!!!) брати тільки один у якого dateModified ближча до currentDate ("найсвіжіший")
(приклад) - є приклади, де документ ЕЦП привʼязаний до іншого документа ЕЦП (!!!) В такому випадку ЕЦП, який привʼязаний до іншого ЕЦП буде видалено
Історія змін документів
При заміні документа (PATCH) його попередня версія зберігається в .../{{object_id}}/documents/history
Залежний (вкладений) ЕЦП також буде присутній в тій самій структурі в history, і якщо для нової версії документа при оновленні НЕ додали ЕЦП, то його, відповідно, не буде в новій версії документа (вкладений ЕЦП разом з залежним "старим" документом потрапляє в history)
Історію змін конкретного документа ЕЦП має бути можливість побачити тільки переглядаючи Історію "бітьківського" документа.
OLD
Публікація документа digitalSignature в Документ Сервіс не відрізняється від завантаження звичайного документа в Документ Сервіс.
Тобто, публікувати digitalSignature в Документ Сервіс треба БЕЗ привʼязки до якогось певного документа.
АЛЕ!
Коли публікується Процедура (чи інший Обʼєкт) з документом digitalSignature, то в API запиті на публікацію Процедури необхідно для документа digitalSignature вказувати relatedDocument.
Треба враховувати, що це вже не "публікація документа в Документ.Сервіс", а "публікація Процедури(Обʼєкта) з попередньо завантаженим в Документ.Сервіс документом digitalSignature".
Процедури: | Всі |
Додавання попередньо завантаженого в Документ Сервіс документу digitalSignature до Процедури:
Хто | Організатор або Учасник |
Передумови |
|
Дії |
|
Запит: | При публікації Процедури: POST {{baseUrl}}/api/procedures Додати ЕЦП до існуючого документа існуючої Процедури: POST {{baseUrl}}/api/procedures/{{procedure_id}}/documents?acc_token={{procedure_acc_token}} |
Валідації: | |
Результат: |
|
3 Comments
Yuriy Bilinsky
Приватність ЕЦП завжди співпадає з приватністю документа до якого він публікується - повинна співпадати
Yuriy Bilinsky
https://procedure-dev.prozorro.sale/api/procedures/65119dffe28342d60e6a57fe
Yuriy Bilinsky
До публічної іллюстрації завантажив 2 цифрових підписа (публічний + приватний)
До приватного цифрового підписа завантажив публічний цифровий підпис