Skip to content

feat: add discovery-based Firebolt connections#522

Draft
kop wants to merge 6 commits into
mainfrom
cursor/discovery-connection-c328
Draft

feat: add discovery-based Firebolt connections#522
kop wants to merge 6 commits into
mainfrom
cursor/discovery-connection-c328

Conversation

@kop

@kop kop commented Jun 24, 2026

Copy link
Copy Markdown

Summary

  • Add an opt-in host= discovery connection path for sync and async DB-API connections.
  • Pass database, engine, and settings as query parameters for discovery sessions while preserving legacy auth/account/API flows.
  • Add unit coverage plus a CI integration test that connects to local Firebolt via discovery.
  • Update Core integration CI to install Firebolt from get.firebolt.io, start the local container, and run the core integration suite against it.
  • Refactor shared discovery validation/client setup, connection assembly, and test scaffolding to reduce new-code duplication reported by Sonar.

Testing

  • pytest tests/unit/db/test_connection.py::test_connect_discovery tests/unit/db/test_connection.py::test_connect_discovery_rejects_legacy_parameters tests/unit/db/test_connection.py::test_connect_discovery_validation tests/unit/async_db/test_connection.py::test_connect_discovery
  • pytest tests/unit/db/test_connection.py
  • pytest tests/unit/async_db/test_connection.py
  • python -m compileall -q src/firebolt/common/discovery.py src/firebolt/db/connection.py src/firebolt/async_db/connection.py tests/unit/discovery_connection_helpers.py
  • mypy src/firebolt/common/discovery.py src/firebolt/db/connection.py src/firebolt/async_db/connection.py
  • pyflakes src/firebolt/common/discovery.py src/firebolt/db/connection.py src/firebolt/async_db/connection.py tests/unit/discovery_connection_helpers.py tests/unit/db/test_connection.py tests/unit/async_db/test_connection.py
  • checked changed source files for lines over flake8's 88-char limit
  • pre-commit run black --files ...
  • pre-commit run isort --files ...

Note: running both sync and async connection test files in one pytest invocation exposes a pre-existing cross-file cache interaction in test_connect_system_engine_caching; each file passes when run independently. Full pre-commit run --all-files is blocked locally on Python 3.12 by hook environment issues, but the CI Python 3.9 log showed only a fixed E501 line-length failure. Local Docker is unavailable here, so the new end-to-end Firebolt discovery integration test is intended to run in CI.

Linear Issue: FB-1831

Open in Web Open in Cursor 

cursoragent and others added 2 commits June 24, 2026 15:11
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
@cursor cursor Bot changed the title Add discovery-based Firebolt connections feat: add discovery-based Firebolt connections Jun 24, 2026
cursoragent and others added 4 commits June 24, 2026 15:18
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
Co-authored-by: Ivan Koptiev <kop@users.noreply.github.com>
@sonarqubecloud

Copy link
Copy Markdown

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.

2 participants