Через mirror прилітають оновлення обʼєкта:
- навіть якщо ніяка дата не змінювалась
- навіть якщо перезберігти обʼєкт в БД один до одного (нуль змін)
Тобто, будь яка операція по модифікації даних обʼєкта на рівні БД надішле оновлення через mirror.
Наприклад, якщо devOps вручну вносять в БД зміни у обʼєкт - це будуть зміни, які НЕ вносяться програмним шляхом.
При цьому можуть бути не змінені systemDateModified / dateModified, але mirror надішле зміни все одно.
Mirror - це real-time синхронізація БД (простими словами)
systemDateModified - це дата модифікації даних програмним шляхом, яка не зачіпає даних обʼєкта (Процедури\Реєстра...)
dateModified - модифікація даних обʼєкта програмним шляхом, яка зачіпає дані обʼєкта
для dateModified на Search існує endPoint https://procedure-sandbox.prozorro.sale/api/doc#/procedure/search_by_date_modified
для systemDateModified на Search заплановано додати такий endPoint
Якщо Майданчик НЕ цікавлять ніякі зміни, які відбуваються поза флоу обʼєкта, то можна дивитись на зміну поля dateModified
Якщо необхідно відслідковувати зміни, які відбуваються по флоу обʼєкта (наприклад: міграції даних, додавання ДІ), то необхідно відслідковувати зміни поля systemDateModified
Основні правила:
- Якщо змінюється dateModified, то змінюється і systemDateModified
- Якщо змінюється systemDateModified то поле dateModified може змінюватися, а може і ні. Бо не всі зміни systemDateModified змінюють обʼєкт і, відповідно, dateModified
Тому Майданчику можна дивитись завжди тільки на зміни поля systemDateModified
P.S.: На сервісі Процедур і Реєстрів логіка цих полів однакова.
На Jobber ще не додавали, але планується.
Це концептуальна core логіка, яка має бути у всіх обʼєктів ЦБД.