Конфигурация (configuration)

Описание

Структура, объединяющая слои инфраструктуры, логики и данных между собой. На основе активной конфигурации строится и работает весь кластер развернутой системы «Era».

Изначально конфигурация разворачивается вместе с мастер-сервером и содержится на диске. Она содержит лишь один сервер с базовым набором ролей.
Изменение конфигураций происходит в приложении редактора конфигураций или через API, после чего конфигурация сохраняется в домене, валидируется, и в случае успешной валидации может быть применена.

Ограничения

  • Коллекция доступна только в мастер-домене.

  • При изменении любого поля объекта конфигурации в БД после перезагрузки домена объект не будет загружен, действует проверка по hash.

  • Невозможно удалить активную конфигурацию.

  • При отсутствии активной конфигурации в мастер-домене MIC применяет последнюю активную конфигурацию с диска.

  • Только одна конфигурация может находиться в состоянии "active".

  • Валидация производится относительно текущей активной конфигурации, таким образом произвольная конфигурация, загружаемая извне в подавляющем большинстве случаев оказывается невалидной.

Поля

Структура сущности
{
  "id": uuid,
  "name": str,
  "state": str,
  "content": object,
  "opts": {
    "title": str,
    "comment": str
  },
  "ext": {
    "ct": date,
    "lwt": date,
    "warnings": str,
    "errormsg": str,
    "activation_time": date,
    "deactivation_time": date,
    "version": str
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: name
Режим: in
Тип: str
По умолчанию: empty

Название

Поле: state
Режим: inout
Тип: str
По умолчанию: "initial"

Поле: content
Режим: inout
Тип: object
По умолчанию: required

Содержание конфигурации: сайты, серверы, домены, роли, их настройки и связи, общие настройки.

Поле: opts
Режим: in
Тип: object
По умолчанию: empty

Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями.

Поле: ext.replaced_by_id
Режим: out
Тип: uuid
По умолчанию: generated

Идентификатор конфигурации, которой в момент активации заменена текущая конфигурация, бывшая до этого активной.

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта в UTC.

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта в UTC.

Поле: ext.warnings
Режим: out
Тип: object
По умолчанию: — 

Список предупреждений, которые возникли при валидации конфигурации.

Поле: ext.errormsg
Режим: out
Тип: object
По умолчанию: — 

Текст об ошибке, которая возникла при валидации конфигурации.

Поле: ext.activate_time
Режим: out
Тип: date
По умолчанию: — 

Время активации конфигурации в UTC.

Поле: ext.deactivate_time
Режим: out
Тип: date
По умолчанию: — 

Время деактивации конфигурации в UTC.

Поле: ext.version
Режим: out
Тип: str
По умолчанию: — 

Версия конфигурации

Состояния

Table 2. Состояния
Состояние Описание Ограничения

"initial"

Новая конфигурация

  • доступно для установки через api;

  • устанавливается принудительно автоматически при создании.

"valid"

Конфигурация прошла валидацию и корректна, список предупреждений указан в поле ext.errormsg

  • устанавливается системой

"error"

Конфигурация невалидна, список ошибок указан в поле ext.errormsg

  • устанавливается системой

"activating"

Запустить процесс активации конфигурации, в результате конфигурация перейдет в состояние active или error

  • доступно для установки через api

  • может быть только одна;

  • можно установить только если текущее состояние valid;

  • обновляет и переводит в valid или error только роль mic;

  • при успешной активации предыдущая активная становится valid.

"active"

Текущая активная конфигурация

  • устанавливается системой;

  • может быть только одна;

  • запрещено изменять/удалять;

  • создается только ролью mic;

См. также

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

  • mic производит валидацию и активацию конфигурации.

  • mdc управляет сменой состояний конфигурации, а также загрузкой активной конфигурации из БД.

  • ic производит применение конфигурации на сайте.