Валидация#
Пререквизиты#
модули приложения развернуты;
граф репликации создан;
пользователь авторизовался под ролью APPADMIN, INSPECTOR или APPDUTY.
Процесс#
Валидация конфигурации#
UI консоль вызывает метод
/config/{configId}/state:если в качестве параметров заданы источник или приемник, проверяет, корректно ли будет создать из этой конфигурации и переданных соединений модуль;
если источник и приемник не заданы, проверяет только синтаксическую корректность JSON-данных.
Возвращается JSON-ответ:
"status":"VALID","error_list":[]с кодом ответа HTTP/200, если в процессе валидации не произошло технических ошибок.Это означает, что информации в объекте connection (соединение) достаточно для установления соединения с БД или Очередью, и для всех значений, которые модуль будет получать или генерировать, в целевой базе есть соответствующие схемы, таблицы, поля.
Альтернативный сценарий#
Если конфигурация некорректна, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source или в Target, и поле description с описанием ошибки. Пример ответа:
{
"status": "INVALID",
"error_list": [
{
"path": "TARGET/{имя_схемы}",
"code": "311",
"description": "Схема {имя_схемы} не найдена в БД c connectionId = {id_соединения}"
}
]
}
Валидация соединения#
UI консоль вызывает метод
/connection/{connectionId}/stateи подключается к хранилищу, описанному в соединении.Возвращается ответ: код 200, если попытка соединения с БД или Очередью успешна.
Альтернативный сценарий#
Если соединение не установлено, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source, Target или Queue, и поле description с описанием ошибки.
Валидация модуля#
Валидация модуля включает проверку его соединений (левое и правое) и конфигурации, которую модуль содержит. Так модуль применения содержит конфигурацию для приемника, поэтому при валидации модуля применения конфигурация для источника проверяться не будет.
UI консоль вызывает метод
/module/{moduleId}/state.Возвращается результат полной валидации модуля.
Это означает, что:
соединения Source или Target доступны;
соединение Queue доступно;
схемы, таблицы и поля в конфигурации модуля содержатся в метаданных БД соединения этого модуля;
в приемнике есть все таблицы и поля, в которые модуль должен записывать данные.
Альтернативный сценарий#
Если модуль не валиден, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source или в Target, и поле description с описанием ошибки.