Skip to content

enhancement(connections): add SSL/TLS client certificate UI and driver support for MySQL, MongoDB, and Redis #278

Description

@ZhuchkaTriplesix

Summary / Описание проблемы

Ранее в рамках PR #260 (feat(connections): add UI for PostgreSQL SSL client certificates) в форму PostgreSQL были добавлены поля выбора клиентских SSL-сертификатов (Root CA, Client Certificate, Client Key).
При проверке остальных драйверов и форм подключения выявилось, что эта функциональность отсутствует для других баз данных:

  1. MySQL (mysql_connection_form.dart): Присутствует только базовый чекбокс Use SSL/TLS (_useSSL), но нет UI и обработки путей к сертификатам Root CA, Client Cert и Client Key для mTLS/SSL аутентификации.
  2. MongoDB (mongodb_connection_form.dart): Присутствует только базовый чекбокс Use SSL/TLS (_useSSL), без возможности указать клиентские сертификаты и Root CA.
  3. Redis (redis_connection_form.dart и redis_connection.dart): В драйвере и форме Redis поддержка SSL/TLS (rediss:// / SecureSocket) и клиентских сертификатов полностью отсутствует — подключение возможно только по открытому незашифрованному TCP сокету.

Scope & Component

  • Scope: desktop
  • Component: Connections / Drivers
  • Kind: enhancement
  • Severity: medium
  • Detected in version: dev / 0.5.0

Местоположение в коде

  • Файлы:
    • lib/features/mysql/mysql_connection_form.dart (строка ~360) и lib/core/database/mysql_connection.dart
    • lib/features/mongodb/mongodb_connection_form.dart (строка ~427) и lib/core/database/mongodb_connection.dart
    • lib/features/redis/redis_connection_form.dart и lib/core/database/redis_connection.dart

Шаги воспроизведения

  1. Открыть диалог создания нового подключения для MySQL, MongoDB или Redis.
  2. Обратить внимание на блок настроек безопасности.
  3. Фактический результат: В MySQL и MongoDB есть только чекбокс Use SSL/TLS, в Redis настройки SSL/TLS отсутствуют вовсе. Указать клиентские сертификаты (.pem, .crt, .key) или Root CA для защищенных корпоративных или облачных БД (AWS RDS/ElastiCache, Google Cloud SQL, Atlas) невозможно.
  4. Ожидаемый результат: Во всех драйверах и формах подключения должен быть унифицированный блок выбора SSL-сертификатов (Root CA, Client Certificate, Client Key) с корректной передачей SecurityContext на низком уровне драйвера.

Acceptance Criteria / Критерии приемки

  • В форму mysql_connection_form.dart добавлены поля выбора SSL-сертификатов (Root CA, Client Cert, Client Key) по аналогии с postgresql_connection_form.dart, а драйвер mysql_connection.dart передает эти сертификаты при установке соединения.
  • В форму mongodb_connection_form.dart и сервис mongodb_connection.dart добавлена поддержка клиентских сертификатов при TLS-подключении (mongo_dart / SecurityContext).
  • В форму redis_connection_form.dart и драйвер redis_connection.dart добавлена поддержка SecureSocket.connect для rediss:// соединений с опциональными SSL-сертификатами.

Metadata

Metadata

Labels

connectionsDatabase connections, URI parsing, poolscoreCore library logic and servicesenhancementNew feature or requestmysqlMySQL database driver and workspaceuiUser interface components and widgets

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions