Skip to content

release: clickhouse-query-ext v1.0.0 (Analyst Edition) - #41

Merged
ZhuchkaTriplesix merged 37 commits into
mainfrom
release/1.0.0
Jul 11, 2026
Merged

release: clickhouse-query-ext v1.0.0 (Analyst Edition)#41
ZhuchkaTriplesix merged 37 commits into
mainfrom
release/1.0.0

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

🎉 Релиз ClickHouse Database Driver v1.0.0 (Analyst Edition) для Querya Desktop

Это финальный релиз полнофункционального, безопасного и высокопроизводительного нативного драйвера ClickHouse на Rust для Querya Desktop, включающий реализацию всех 6 этапов (Stages 1/6 — 6/6) и 18 архитектурных задач (Issues #5#22).


🌟 Ключевые возможности и архитектурные компоненты

1. Транспортный слой и JSON-RPC 2.0 (Stage 1 & 2)

  • Асинхронный Stdio NDJSON транспорт (src/transport): Высокоскоростной асинхронный обмен сообщениями через с буферизацией без блокировок.
  • Роутер JSON-RPC 2.0 (src/rpc): Динамический диспетчер методов (, , , , , , , , , , , ).
  • HTTP/HTTPS пул соединений (src/driver): Управление пулом асинхронных клиентов () с поддержкой таймаутов, keep-alive и SSL/TLS (, , ).

2. Безопасность и управление секретами (Zero-Trust Sandbox Block B)

  • In-Memory Secrets Pool (src/utils/secret_guard.rs): Пароли и JWT-токены хранятся исключительно в оперативной памяти драйвера, обёрнутые в с гарантированным занулением (). В аргументах командной строки и URI передаются только идентификаторы ().
  • Санитайзер логов (src/utils/logger.rs): Регулярные выражения автоматически скрывают () пароли из URL, заголовков и JSON-пейлоадов перед выводом в .
  • Восстановление после паник (src/utils/recovery.rs): Кастомный гарантирует корректное завершение процесса и очистку временных директорий в .

3. SDUI и интроспекция метаданных (Stage 3)

  • Генерация схемы формы подключения (src/sdui/form.rs): Предоставляет декларативное описание полей () с поддержкой переключателей SSL и Safe Mode.
  • Древовидная интроспекция схемы (src/sdui/tree.rs, src/rpc/handlers/schema.rs): Иерархическое отображение баз данных (группировка по , , ), таблиц с иконками движков (, , , , ), колонок с типами и партиций с их размерами и количеством строк.

4. Маппинг типов и формат JSONCompactEachRowWithNamesAndTypes (Stage 4)

  • Строгая типизация для защиты 53-бит JS () (src/mapper):
    • Целые числа до 32 бит, Float32/Float64 десериализуются в нативные JSON-числа ( / ).
    • , , , , и все прозрачно маппятся в строковые представления ().
    • Полная поддержка (), (), , , , (/) и разворачивание обёрток и .

5. Продвинутые возможности и Аналитический Safe Mode (Stage 5)

  • Аналитический Safe Mode / Read-Only (src/driver/client.rs, src/rpc/handlers/query.rs):
    • При включении переключателя в HTTP-запросы автоматически добавляются параметры сессии: , (5 мин) и (10 ГБ).
    • На стороне Rust работает быстрый AST-пречек ( + проверка токенов), мгновенно блокирующий деструктивные запросы (, , , , , ) с кодом .
  • Контекстные меню и DDL операции (src/sdui/actions.rs):
    • Дедупликация таблиц и (с подтверждением).
    • Жизненный цикл партиций: , , .
  • Мониторинг активных процессов и мутаций (src/rpc/handlers/query.rs):
    • Интроспекция и для серверов, баз данных и таблиц.
    • Моментальная отмена запросов ( / ) и мутаций ( / ).

6. Оптимизация сборки и дистрибутив (Stage 6)

  • Микро-бинарник на Rust: Настроен (, , , , ). Итоговый размер бинарного файла — всего ~4.6 МБ!
  • Кросс-компиляция и .qext упаковка (scripts/):
    • для автоматической сборки под , и .
    • собирает дистрибутив в () и вычисляет SHA-256 контрольные суммы для проверки безопасности в маркетплейсе Querya.
  • CI/CD матрица (.github/workflows/release.yml): Автоматическая сборка и публикация артефактов в GitHub Releases при создании тегов .

✅ Проверка качества (CI Status)

  • 100% покрытие unit-тестами: Все 62 теста проходят успешно.
  • Форматирование и статический анализ: и — 0 ошибок и 0 предупреждений.

Ветка релиза: → .

ZhuchkaTriplesix and others added 30 commits July 11, 2026 11:12
feat(core): initialize cargo workspace and module structure (#5)
feat(transport): implement asynchronous NDJSON stdio framing and sanitized stderr logging (#6)
feat(rpc): implement system.handshake, system.ping and system.shutdown (#7)
feat(security): implement zeroize secrets pool and system.injectCredentials (#8)
feat(driver): implement HTTP connection pool, db.connect/disconnect and CI (#9)
feat(mapper): implement ClickHouse to Querya type mapper and ColumnSchema (#10)
feat(rpc): implement query execution and streaming format normalizer (#11)
feat(sdui): implement schema tree introspection and lazy node expansion
…rators (db.getConnectionFormSchema and sdui.contextActions)
feat(sdui): implement connection form schema and context actions generators
feat(core): implement panic hook, scratch directory recovery and final documentation
feat(rpc): implement automatic query_id generation and SYNC/ASYNC cancelQuery support
…ions

feat(sdui): implement context actions and fast statistical profiling for columns and tables
… and DEDUPLICATE with detailed execution status tracking
feat(sdui,rpc): support MergeTree maintenance commands OPTIMIZE FINAL and DEDUPLICATE with execution status tracking
… attach) with confirmation guard and detailed execution status
…nagement

feat(sdui,rpc): partition lifecycle management (drop, freeze, detach, attach)
…cesses & SYSTEM.mutations) with emergency kill actions
ZhuchkaTriplesix and others added 7 commits July 11, 2026 12:59
…onitoring

feat(sdui,rpc): active processes and mutations monitoring (SYSTEM.processes & SYSTEM.mutations)
feat(driver,rpc): analytical safe mode (Read-Only session settings & AST precheck filter)
…safety

test(mapper,transport,rpc): comprehensive unit tests for type mapping, protocol framing and memory zeroization
…qext-packaging

feat(release): cross-compilation scripts, minimal release profile and .qext distribution packaging
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit eddc8d9 into main Jul 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant