You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
enhancement(marketplace): extend SDUI RPC protocol with getCapabilities, getServerStats, getObjectDDL, and cancelQuery #323
В рамках приведения всех драйверов и плагинов к Единому UI-стандарту (Universal UI Standard) необходимо расширить JSON-RPC протокол взаимодействия хоста с внешними расширениями (database_driver).
Сейчас ExtensionDriverSession (lib/core/extensions/extension_driver_session.dart) поддерживает только базовые методы (db.connect, db.disconnect, db.query, db.getSchemaTree, db.expandTreeNode). Из-за этого расширения не могут отображать живую статистику сервера, отдавать DDL структуры таблиц/функций и прерывать зависшие запросы.
Зачем
Отображение вкладки Overview / Server Stats для внешних БД (ClickHouse, DuckDB, Snowflake).
Поддержка кнопок DDL / Structure во вьюере таблиц и открытие процедур в RoutineView.
Возможность отмены (Cancel / Stop) тяжёлых аналитических запросов из UI.
Определение транзакционных возможностей драйвера (чтобы показывать или скрывать кнопки Begin/Commit/Rollback).
db.getServerStats → возвращает стандартизированный набор метрик (версия, аптайм, активные сессии, метрики памяти/диска) для рендеринга в ExtensionStatsView.
db.getObjectDDL (или db.getObjectMetadata) → принимает {"connectionId": 123, "nodeId": "...", "nodeType": "table"|"routine"|"view"} и возвращает DDL-скрипт (CREATE TABLE/VIEW/FUNCTION ...) и список колонок/параметров.
db.cancelQuery → принимает {"connectionId": 123, "queryId": "..."} для немедленного прерывания выполняемого запроса (аналог PostgresService.interrupt).
Технические требования
Добавить методы обёртки в ExtensionDriverSession (getCapabilities, getServerStats, getObjectDDL, cancelQuery).
Описать модели данных/DTO для возвращаемых результатов в lib/core/extensions/models/.
Обеспечить безопасный fallback (если плагин старой версии и не реализует метод, возвращать дефолтные capabilities/ошибку без падения сессии).
Написать юнит-тесты с моком PluginRpcBridge для проверки вызовов новых методов.
Activity
ZhuchkaTriplesix commentedon Jul 19, 2026
Implemented: SDUI RPC getCapabilities / getServerStats / getObjectMetadata / cancelQuery.
Merged in PR #327.