Summary / Описание проблемы
Ранее в рамках PR #260 (feat(connections): add UI for PostgreSQL SSL client certificates) в форму PostgreSQL были добавлены поля выбора клиентских SSL-сертификатов (Root CA, Client Certificate, Client Key).
При проверке остальных драйверов и форм подключения выявилось, что эта функциональность отсутствует для других баз данных:
- MySQL (
mysql_connection_form.dart): Присутствует только базовый чекбокс Use SSL/TLS (_useSSL), но нет UI и обработки путей к сертификатам Root CA, Client Cert и Client Key для mTLS/SSL аутентификации.
- MongoDB (
mongodb_connection_form.dart): Присутствует только базовый чекбокс Use SSL/TLS (_useSSL), без возможности указать клиентские сертификаты и Root CA.
- 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
Шаги воспроизведения
- Открыть диалог создания нового подключения для MySQL, MongoDB или Redis.
- Обратить внимание на блок настроек безопасности.
- Фактический результат: В MySQL и MongoDB есть только чекбокс
Use SSL/TLS, в Redis настройки SSL/TLS отсутствуют вовсе. Указать клиентские сертификаты (.pem, .crt, .key) или Root CA для защищенных корпоративных или облачных БД (AWS RDS/ElastiCache, Google Cloud SQL, Atlas) невозможно.
- Ожидаемый результат: Во всех драйверах и формах подключения должен быть унифицированный блок выбора SSL-сертификатов (Root CA, Client Certificate, Client Key) с корректной передачей
SecurityContext на низком уровне драйвера.
Acceptance Criteria / Критерии приемки
Summary / Описание проблемы
Ранее в рамках PR #260 (
feat(connections): add UI for PostgreSQL SSL client certificates) в форму PostgreSQL были добавлены поля выбора клиентских SSL-сертификатов (Root CA,Client Certificate,Client Key).При проверке остальных драйверов и форм подключения выявилось, что эта функциональность отсутствует для других баз данных:
mysql_connection_form.dart): Присутствует только базовый чекбоксUse SSL/TLS(_useSSL), но нет UI и обработки путей к сертификатамRoot CA,Client CertиClient Keyдля mTLS/SSL аутентификации.mongodb_connection_form.dart): Присутствует только базовый чекбоксUse SSL/TLS(_useSSL), без возможности указать клиентские сертификаты и Root CA.redis_connection_form.dartиredis_connection.dart): В драйвере и форме Redis поддержка SSL/TLS (rediss:///SecureSocket) и клиентских сертификатов полностью отсутствует — подключение возможно только по открытому незашифрованному TCP сокету.Scope & Component
desktopConnections / Driversenhancementmediumdev / 0.5.0Местоположение в коде
lib/features/mysql/mysql_connection_form.dart(строка ~360) иlib/core/database/mysql_connection.dartlib/features/mongodb/mongodb_connection_form.dart(строка ~427) иlib/core/database/mongodb_connection.dartlib/features/redis/redis_connection_form.dartиlib/core/database/redis_connection.dartШаги воспроизведения
Use SSL/TLS, в Redis настройки SSL/TLS отсутствуют вовсе. Указать клиентские сертификаты (.pem,.crt,.key) или Root CA для защищенных корпоративных или облачных БД (AWS RDS/ElastiCache, Google Cloud SQL, Atlas) невозможно.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-сертификатами.