Метод PUT /v1/connector/{id_connector}/configuration-metadata

Краткое описание

Частично обновляет существующую конфигурацию подключения к базе данных. Позволяет изменить только необходимые поля без необходимости передачи всех параметров. Используется для изменения отдельных аспектов конфигурации.

Входные параметры

Параметры пути (обязательные):

  1. id_db_connection (string)

    • Уникальный идентификатор конфигурации подключения

  2. id_connector (string)

    • Уникальный идентификатор коннектора

    • Связь между подключением БД и коннектором

Тело запроса (JSON) — схема: DBConnectionUpdateSchema

Обновляемые поля (все опциональные):

  • name (string, опционально) — имя конфигурации

  • host (string, опционально) — адрес сервера БД

  • port (int, опционально) — порт подключения

  • database (string, опционально) — имя базы данных

  • username (string, опционально) — имя пользователя

  • password (string, опционально) — пароль (будет перезашифрован)

  • ssl_mode (string, опционально) — режим SSL/TLS

  • timeout (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 из таблицы DBConnection

  • WHERE 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" }