Метод PUT /v1/connector/{id_connector}/configuration-metadata
Краткое описание
Частично обновляет существующую конфигурацию подключения к базе данных. Позволяет изменить только необходимые поля без необходимости передачи всех параметров. Используется для изменения отдельных аспектов конфигурации.
Входные параметры
Параметры пути (обязательные):
id_db_connection(string)Уникальный идентификатор конфигурации подключения
id_connector(string)Уникальный идентификатор коннектора
Связь между подключением БД и коннектором
Тело запроса (JSON) — схема: DBConnectionUpdateSchema
Обновляемые поля (все опциональные):
name(string, опционально) — имя конфигурацииhost(string, опционально) — адрес сервера БДport(int, опционально) — порт подключенияdatabase(string, опционально) — имя базы данныхusername(string, опционально) — имя пользователяpassword(string, опционально) — пароль (будет перезашифрован)ssl_mode(string, опционально) — режим SSL/TLStimeout(int, опционально) — timeout подключенияpool_size(int, опционально) — размер пула соединенийmax_overflow(int, опционально) — максимальное переполнение пулаdescription(string, опционально) — описание конфигурацииtags(list[string], опционально) — теги для категоризацииmetadata(object, опционально) — произвольные метаданные
Заголовки:
Content-Type: application/json
Authorization(опционально) — токен аутентификации
Алгоритм работы метода
ЭТАП 1: Парсинг и валидация параметров пути
Извлекаются
id_db_connectionиid_connectorиз URL
ЭТАП 2: Поиск существующей конфигурации
Выполняется SELECT из таблицы
DBConnectionWHERE DBConnection.id == id_db_connection AND DBConnection.id_connector == id_connector
Если запись не найдена — возвращается HTTP 404
ЭТАП 3: Валидация передаваемых данных
Данные из тела запроса валидируются по схеме DBConnectionUpdateSchema
Проверяются только переданные поля (остальные игнорируются)
Если валидация не пройдена — возвращается HTTP 400
ЭТАП 4: Частичное обновление полей
Обновляются только те поля, которые были переданы в теле запроса
Остальные поля остаются неизменными
Обновляется поле
updated_at= текущее времяОбновляется служебное поле
ecc_dt= текущее время
ЭТАП 5: Специальная обработка пароля
Если
passwordпередан:Пароль шифруется перед сохранением
Старый пароль перезаписывается
Новый пароль используется для подключений
ЭТАП 6: Сохранение в базу данных
db_session.add(db_connection)— добавляет обновлённую запись в сессиюdb_session.commit()— фиксирует изменения в БДdb_session.refresh(db_connection)— перезагружает объект из БД
ЭТАП 7: Возврат обновлённой конфигурации
Возвращается полный объект
DBConnectionReadSchemaВключает все поля (обновлённые и неизменённые)
Пароль НЕ включается в ответ
Успешный ответ (200 OK)
Формат: JSON, схема DBConnectionReadSchema
Пример ответа при обновлении timeout и pool_size:
{ "id_db_connection": "db-conn-001", "id_connector": "conn-prod-001", "name": "Production Database", "host": "prod-db.example.com", "port": 5432, "database": "production_db", "username": "app_user", "ssl_mode": "require", "timeout": 120, "pool_size": 15, "max_overflow": 20, "description": "Main production database", "created_at": "2025-11-01T10:30:00+03:00", "updated_at": "2025-11-14T15:20:10+03:00" }