firebolt-sdk
A Python DB-API 2.0 client for the Firebolt cloud data warehouse.
Repository Health
Technical Analysis
firebolt-sdk is the official Python client for the Firebolt cloud data warehouse. It implements the PEP 249 DB-API 2.0 interface, giving you familiar connection and cursor objects to authenticate, run SQL, and fetch results from Firebolt engines and databases. Both synchronous and async execution are supported.
Beyond querying, the SDK provides a management layer for programmatically controlling Firebolt resources such as engines and databases, making it suitable for both application data access and infrastructure automation.
What You Get
- A DB-API 2.0 (PEP 249) connection and cursor interface for Firebolt
- Credential-based authentication using account name, client id, and client secret
- Synchronous and asynchronous query execution
- A management API for programmatically controlling engines and databases
- Example notebooks demonstrating the DB-API workflow
Common Use Cases
- Running analytical SQL against Firebolt from Python applications and ETL jobs
- Integrating Firebolt into data tools that expect a DB-API 2.0 driver
- Automating Firebolt engine and database provisioning via the management API
Under The Hood
Architecture
The SDK is structured under a src/ layout separating the DB-API client from the management client. The client module implements Connection and Cursor per PEP 249, delegating HTTP transport to httpx and handling authentication token lifecycle, engine URL resolution, and result parsing. A parallel async implementation mirrors the sync API, while a service/management layer wraps Firebolt’s REST endpoints as typed resource objects for engines and databases.
Tech Stack
Python (>=3.8) packaged with pyproject.toml and setup.cfg. It relies on httpx for synchronous and asynchronous HTTP, along with authentication and token-caching utilities. Testing spans unit and integration suites under tests/, code quality is tracked with SonarCloud (sonar-project.properties), and the docs are built from docsrc with compiled output committed for the reference site.
Code Quality
The codebase shows strong engineering practices: an src/ layout, extensive CI workflows (unit, integration, nightly, security scans, code checks) visible in the README badges, and coverage tracking. Tests are split into unit and integration directories, the public surface is typed, and thread-safety expectations (DB-API thread safety level 2) are documented explicitly.
API Design
The developer experience follows DB-API conventions closely, so anyone familiar with sqlite3 or psycopg will feel at home: connect(), cursor(), execute(), fetchall(). Connection parameters are clearly documented, example notebooks illustrate real usage, and the parallel async API keeps naming consistent, though some Firebolt-specific SET-parameter caveats require reading the docs.