Запись об изменении объекта (changes)

Описание

Любое изменение некоторых объектов (типов сущностей) фиксируется в журнале изменений. Каждый элемент журнала представляет собой одну конкретную проведенную операцию над конкретным объектом.

Изменением считаются: создание нового объекта (create), изменение значений полей существующего объекта (update), удаление существующего объекта (delete).
Журнал истории изменений в каждой строке о создании содержит полное JSON-представление на момент создания. В каждой строке об изменении содержит полное JSON-представление объекта после соответствующего изменения, а также список полей, которые подверглись изменению. В каждой строке об удалении содержит значение поля идентификатора.

Ограничения

  • Запись об изменении не может быть создана или удалена непосредственно. Их совокупность представляют лишь отражение сохраненной истории.

  • В журнал сохраняется история операций лишь по сущностям, управляемым доменным центром (отражено в спецификации сущностей).

Поля

Структура сущности
{
  "cmdtype": uuid,
  "dtutc": date,
  "fields": str,
  "modifierid": uuid,
  "modifiername": str,
  "obj": object,
  "objid": uuid,
  "objtype": str
}
Table 1. Поля
Спецификация Описание

Поле: cmdtype
Режим: out
Тип: str

Тип операции.
Возможные значения:

  • "update" – Изменены значения существующего объекта.

  • "create" – Создан новый объект.

  • "delete" – Удален существовавший ранее объект.

Поле: dtutc
Режим: out
Тип: date

Дата/время в UTC проведения операции в формате RFC3339.
Например, "2019-08-21T13:59:39.833Z".

Поле: fields
Режим: out
Тип: str

Список полей объекта, подвергшихся изменению.
Только для cmdtype = update.
Например, "enabled,ext.lwt,lwt,opts.comment".

Поле: modifierid
Режим: out
Тип: uuid

Идентификатор учетной записи пользователя, от имени которого проведена операция.

Поле: modifiername
Режим: out
Тип: str

Имя учетной записи пользователя, от имени которого проведена операция.

Поле: obj
Режим: out
Тип: object

Полное содержание объекта в виде JSON-структуры.
Для операций создания и изменения значений полей – после проведения операции.
Для операции удаления – непосредственно перед удалением.

Поле: objid
Режим: out
Тип: uuid

Идентификатор объекта

Поле: objtype
Режим: out
Тип: str

Тип сущности.
Например, "provider".

См. также

Логические роли

  • mdc и sdc осуществляют управление сущностями и сохраняют данные в журнал изменений.