Слой хранения (модель данных)


Вопрос: Какое корректное решение предлагается для изменения модели данных в продуктовой среде, где уже работают объекты?

Ответ:

  1. При необходимости изменения атрибута в модели данных рекомендуется завести новый атрибут с новым кодом и требуемым типом (например, «text»). Старый атрибут необходимо отвязать от класса модели.
  2. Необходимо сформировать и выполнить скрипт по БД, который для всех существующих объектов добавит в поле «data» новый атрибут, скопировав в него значение из старого атрибута с соответствующим преобразованием формата.
  3. После миграции данных система автоматически воспримет изменения и переиндексирует старые документы с новым атрибутом.
  4. Во всех lowCode-настройках, где использовалось старое поле, необходимо обновить конфигурацию, заменив поле на новый атрибут.

Вопрос: Какие компоненты системы, кроме Elasticsearch, могут быть затронуты при изменении модели данных? Например, приведет ли изменение параметров атрибута, входящего в ключ уникальности, к ошибкам?

Ответ: В модели данных для атрибутов, у которых уже созданы экземпляры объектов, нельзя изменять тип, режим ввода (мульти/сингл) и код (code). Изменение значений (сортировка, поиск, тоггл «персональные данные») также может быть небезопасным. Такие изменения могут привести к ошибкам в атрибутивном и федеративном поиске, а также в хранении данных. Изменение параметров атрибута, входящего в ключ уникальности, приведет к ошибкам. Тип поля входит в определение набора ключей и его хэша. Если изменить тип поля, то хэш полей класса при получении токена и хэш в наборе ключей не будут совпадать из-за типа. Это вызовет ошибку при получении токена при создании объекта. Она возникнет сразу, как только модель будет изменена, так как при получении или проверке токена всегда используется текущая модель класса. Если вернуть тип поля к предыдущему значению, ошибка устранится.


Вопрос: Что происходит с экземплярами (объектами) при удалении их класса в модели данных?

Ответ: При удалении класса в модели данных экземпляры остаются в системе, но они блокируются к выдаче (невозможно получить эти объекты). Если класс снова появится в системе, то эти экземпляры будут снова доступны.


Вопрос: Как устроены связи между объектами, которые создаются в сервисе dh-relations-service?

Ответ: Связь – это самостоятельный объект системы, основная функция которого заключается в фиксации логической взаимосвязи между другими объектами системы без необходимости изменения их собственного атрибутивного состава. Как и другие базовые объекты Платформы, объект «Связь» может быть кастомизирован в части набора атрибутов через сервис управления моделью данных.


Вопрос: Что такое модель данных, для чего она нужна и кто имеет полномочия на работу с ней?

Ответ: Модель данных позволяет создавать новые пользовательские классы объектов системы (документы, папки и др.), что требуется для реализации прикладной бизнес-логики. Полномочия на работу с моделью данных определяются настройками сервиса управления доступом.


Вопрос: Требуется инструкция или рекомендации по изменению атрибута в модели данных (МД). Есть ли рекомендации по изменению атрибута в модели данных: какие параметры можно изменять и при каких условиях??

Ответ: Описание ограничений по изменению модели данных, включая перечень изменяемых и неизменяемых параметров атрибутов, содержится в документации: Ограничения изменения моделей данных


Вопрос: Существует ли в системе категоризация атрибутов объектов по степени важности?

Ответ: В системе не предусмотрено деление атрибутов по критерию «важности». Существует деление на статические и динамические атрибуты. Динамические атрибуты являются бизнес-атрибутами, которые определяются и настраиваются непосредственно в сервисе «Управление моделью данных».


Вопрос: Каков механизм базовой индексации объектов для федеративного поиска?

Ответ: Базовая индексация объектов базовых классов реализована через Debezium. Для индексации объектов из новых документных сервисов необходимо:

  1. Настроить Debezium для нового документного сервиса. Параметры настроек описаны в документации: Настройки Debezium
  2. Настроить чтение нового топика Kafka в сервисе федеративного поиска.

Вопрос: Возможно ли организовать совместную работу с файлами (добавление, удаление, отслеживание версионности) в Системе только с помощью сервиса управления файлами?

Ответ: Нет, полноценная работа с файлами, включая операции добавления, удаления и управления версионностью в контексте совместной работы, реализуется в системе только через карточку документа.


Вопрос: Каков краткий алгоритм создания нового класса документа?

Ответ: Создание нового класса документа выполняется в три шага:

  1. Описать сам класс с основными атрибутами в сервисе «Управление моделью данных».
  2. Добавить наборы данных как динамические атрибуты класса после сохранения (если атрибуты присутствуют в данном классе документа).
  3. Прописать код класса в сервисе конфигураций.

Создание класса объекта «Документ» описано в документации: Создание класса объекта «Документ»