Thank you for your interest in contributing! This guide will help you get started.
This project follows our Code of Conduct. By participating, you agree to uphold it.
- Search existing issues before opening a new one.
- Use the Bug Report issue template.
- Include reproduction steps, expected vs. actual behavior, and your environment.
- Open a Feature Request issue.
- Describe the use case and why it matters for DBSQL performance tuning.
- Fork the repository and create a branch from
main. - Name your branch descriptively:
feature/query-fingerprinting,fix/warehouse-selector-crash. - Write code following the standards below.
- Test locally — ensure all checks pass (see Development Setup below).
- Open a Pull Request against
mainusing the PR template.
# Clone your fork
git clone https://github.com/<your-username>/databricks-sql-genie.git
cd databricks-sql-genie
# Install dependencies
npm install
# Copy env template and configure
cp .env.example .env.local
# Run development server
npm run dev
# Run checks (must pass before PR)
npm run format:check
npm run lint
npm run typecheck
npm run test
npm run buildSee STYLE_GUIDE.md for the full guide. Key points:
- TypeScript strict — no
anywithout justification. - Next.js App Router patterns for pages and server actions.
- shadcn/ui for all UI components.
- Keep SQL queries in
/lib/queries/— one file per query domain, named and versioned. - Use the shared data client at
/lib/dbx/sql-client.tsfor all Databricks SQL access. - PII redaction is on by default — never log raw SQL text unless explicitly enabled.
- Prettier formats all code — pre-commit hooks enforce this automatically.
- See ARCHITECTURE.md for the system overview and data flow.
- Keep PRs focused — one logical change per PR.
- Fill out the PR template completely.
- Ensure CI passes (lint, test, build).
- PRs to
mainrequire at least one approving review and passing status checks. - Address review feedback with new commits (don't force-push during review).
Use clear, descriptive commit messages:
feat: add warehouse cost breakdown to detail page
fix: prevent crash when query history is empty
refactor: extract scoring logic into shared utility
docs: update deployment guide for Databricks Apps
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.