Персональні та чутливі дані

Сторінка технічної документації є баченням майбутньої реалізації, актуальність якого може бути застарілою.

1. Контекстна діаграма

personal data.drawio

Mediator/Facade - для спрощення процесу генерації витягів, оркестрація цим процесом виділена в окремий сервіс Personal data requests DB - база даних яка містить події факту запиту до персональних даних та даних які були позначені як чутливі.
Personal data service - додаток що надає доступ для читання подій факту запиту персональних даних і повертає їх в форматі JSON
Report Service - сервіс який зберігає шаблони витягів та генерує PDF витяги на підставі назви шаблону витягу та даних які відповідають шаблону.

2. Вимоги до моделювання

2.1. Загальний опис

Для забезпечення прав власника персональних даних всі таблиці, що містять персональні дані мають посилання на таблицю суб’єктів. Зв’язок з таблицею суб’єктів задається при моделюванні реєстру наступним чином:

2.2. Розширення сутності для запиту персональних даних

Для спрощення моделювання передбачено окремий тег який дозволяє доєднувати інші таблиці через зовнішні ключі БД. Звернення до таких точок інтеграції відбувається по ідентифікатору основної таблиці та передбачено повернення тільки однієї сутності.

2.3. Доступ до чутливих даних реєстру

Фіксація факту доступу через аудит події відбувається автоматично, для всіх таблиць де є поля, що позначені як приватні дані. У разі якщо необхідно додати фіксацію факту запиту до інших таблиць використовується розширення accessAudit де можуть бути перелічені такі таблиці. Видалення такого аудиту можливе тільки для додаткових таблиць які були додані моделювальником.

Приклад операцій додавання та видалення таблиць з аудиту.
<databaseChangeLog>

    <changeSet id="add table to audit">
        <accessAudit>
          <addTables>
            <table name="address"/>
          </addTables>
        </accessAudit>
    </changeSet>

    <changeSet id="change audit tables">
        <accessAudit>
          <addTables>
            <table name="laboratory"/>
          </addTables>
          <removeTable>
            <table name="address"/>
          </removeTable>
        </accessAudit>
    </changeSet>

</databaseChangeLog>

2.4. Обмеження регламенту

До даних які були класифіковані як персональні запити можуть відбуватись тільки по унікальному ідентифікатору. Таким чином жодне поле персональних даних не може повертатись в рамках searchConditions, хоча може бути використано як поле для пошуку.

В структурах які містять персональні дані обов’язково має бути поле яке посилається на суб’єкт який є власником персональних даних