Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
4dabd8c
fix: update @falkordb/canvas version to 0.0.34 in package.json and pa…
Anchel123 Feb 19, 2026
ccf9386
fix: update @falkordb/canvas version to 0.0.35 in package.json and pa…
Anchel123 Feb 22, 2026
2d01f5e
fix: update @falkordb/canvas version to 0.0.36 in package.json and pa…
Anchel123 Feb 22, 2026
ced4d4c
Initial plan
Copilot Feb 24, 2026
d5c93ed
Fix flaky Playwright e2e tests for database connection verification
Copilot Feb 24, 2026
7afba2f
Merge branch 'staging' into copilot/fix-github-actions-playwright-logs
gkorland Feb 24, 2026
a42427c
Bump playwright from 1.57.0 to 1.58.0
dependabot[bot] Feb 24, 2026
3aae129
Address review feedback: try/catch in retry, finalMessage guards, spe…
Copilot Feb 24, 2026
9a4098b
Rename waitForGraphPresent to waitForGraphs; make database tests serial
Copilot Feb 25, 2026
837f849
Tighten testdb_delete predicate: use === / endsWith instead of includes
Copilot Feb 25, 2026
414b380
Merge pull request #429 from FalkorDB/copilot/fix-github-actions-play…
gkorland Feb 25, 2026
53c4d08
Merge branch 'staging' into dependabot/pip/staging/playwright-1.58.0
gkorland Feb 25, 2026
095184f
Merge pull request #419 from FalkorDB/dependabot/pip/staging/playwrig…
gkorland Feb 25, 2026
f859b63
Merge branch 'main' into staging
gkorland Feb 25, 2026
2e1f439
Bump fastapi, uvicorn, litellm, playwright, and globals (#439)
gkorland Feb 25, 2026
c8712fd
fix: update @falkordb/canvas version to 0.0.40 in package.json and pa…
Anchel123 Feb 25, 2026
738ac5d
fix: update @falkordb/canvas version to 1.51.1 in package-lock.json
Anchel123 Feb 26, 2026
2341d4e
Fix SPA catch-all route not serving index.html (#433)
gkorland Feb 26, 2026
141b5b5
Fix: Add CSRF protection via double-submit cookie pattern (#432)
gkorland Feb 26, 2026
63f1bad
Update @falkordb/canvas version to v0.0.40 (#440)
Anchel123 Feb 26, 2026
75d5ce3
fix(e2e): pass authenticated request context to API calls and browser…
gkorland Feb 26, 2026
827f3f7
fix: update @falkordb/canvas version to 0.0.41 in package.json and pa…
Anchel123 Feb 26, 2026
a7b39e6
Bump fastapi from 0.133.0 to 0.135.0 (#446)
dependabot[bot] Mar 2, 2026
fd56f78
Bump actions/upload-artifact from 6 to 7 (#444)
dependabot[bot] Mar 2, 2026
f7ff24b
Bump the npm-minor-patch group in /app with 5 updates (#443)
dependabot[bot] Mar 2, 2026
1e12755
perf(ci): accelerate Playwright CI from ~16min to ~5min (#448)
gkorland Mar 2, 2026
83e240e
Bump litellm from 1.81.15 to 1.82.0 (#445)
dependabot[bot] Mar 2, 2026
d56aa94
Bump the npm_and_yarn group across 1 directory with 2 updates (#447)
dependabot[bot] Mar 2, 2026
3f53691
Bump version from 0.0.14 to 0.1.0 (#450)
Copilot Mar 2, 2026
1b1a93f
Change npm install to npm ci for consistency (#454)
gkorland Mar 8, 2026
4af58ed
fix: update @falkordb/canvas version to 0.0.44 in package.json and pa…
Anchel123 Mar 8, 2026
70e848f
Merge remote-tracking branch 'origin/main' into update-@falkordb/canv…
Anchel123 Mar 8, 2026
893c50a
Merge remote-tracking branch 'origin/staging' into update-@falkordb/c…
Anchel123 Mar 8, 2026
eb2aa04
Implement feature X to enhance user experience and fix bug Y in module Z
Anchel123 Mar 8, 2026
4077d75
chore: update dependencies and remove unused packages
Anchel123 Mar 8, 2026
84d2493
Merge pull request #466 from FalkorDB/update-@falkordb/canvas-version…
Anchel123 Mar 8, 2026
d9fd675
Move the project from Pipfile to pyproject (#409)
Claude Mar 8, 2026
40ba29f
Move project to pyproject (#471)
gkorland Mar 8, 2026
af91744
Clean up remaining pipenv/poetry references after uv migration (#472)
gkorland Mar 8, 2026
227d052
feat: Configurable model usage (#386)
galshubeli Mar 8, 2026
25903a5
chore: consolidate Dependabot PRs and resolve staging conflicts (#473)
Copilot Mar 8, 2026
88dcc75
fix: replace unnecessary dynamic import of vendorConfig with static i…
gkorland Mar 8, 2026
51ddf58
docs: add AGENTS.md project guide and CLAUDE.md symlink (#477)
gkorland Mar 10, 2026
1214b33
feat: add support for postgres schema selection (#475)
gkorland Mar 10, 2026
9a25ec0
fix: require SECRET_TOKEN at startup to prevent auth bypass (#476)
gkorland Mar 10, 2026
015ad95
fix: address PR #455 review comments (#478)
gkorland Mar 11, 2026
5e7f6a7
fix: remove SECRET_TOKEN static API key requirement (#479)
gkorland Mar 12, 2026
463c4d8
fix: require authentication on validate-api-key endpoint (#481)
gkorland Mar 14, 2026
c975ce2
chore(deps): bump graphiti-core in the uv group across 1 directory (#…
dependabot[bot] Mar 14, 2026
b6bd6b6
ci(workflows): pin GitHub Actions dependencies to commit SHAs (#503)
gkorland Mar 26, 2026
9d986cd
chore(deps): combine dependabot dependency updates (#504)
gkorland Mar 27, 2026
d491303
fix: address PR review comments
gkorland Mar 31, 2026
e866f8a
fix(deps): upgrade pyjwt 2.11.0 → 2.12.1 (GHSA-752w-5fwx-jx9f)
gkorland Mar 31, 2026
9eface8
fix(deps): upgrade requests 2.32.5 → 2.33.1 (GHSA-gc5v-m9x4-r6x2)
gkorland Mar 31, 2026
89641d6
fix(deps): upgrade cryptography 46.0.5 → 46.0.6 (GHSA-m959-cc7f-wv43)
gkorland Mar 31, 2026
4695d0d
fix(deps): upgrade pygments 2.19.2 → latest (GHSA-5239-wwwm-4pmq)
gkorland Mar 31, 2026
b99f7c8
ci(playwright): skip E2E tests for Dependabot PRs (#518)
gkorland Apr 5, 2026
c74d239
chore(deps): bump fastapi from 0.135.1 to 0.135.2 (#509)
dependabot[bot] Apr 5, 2026
6d2b012
chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 (#508)
dependabot[bot] Apr 5, 2026
102543b
chore(deps): bump fastmcp in the uv group across 1 directory (#515)
dependabot[bot] Apr 5, 2026
c93ffe2
chore(deps): bump the npm_and_yarn group across 1 directory with 3 up…
dependabot[bot] Apr 5, 2026
55ca995
chore(deps): bump the npm-minor-patch group in /app with 2 updates (#…
dependabot[bot] Apr 5, 2026
e2f82c4
chore(deps): bump the npm_and_yarn group across 1 directory with 3 up…
dependabot[bot] Apr 5, 2026
b7ce993
fix(deps): regenerate package-lock.json and fix vulnerabilities
gkorland Apr 5, 2026
16dc9aa
fix(deps): bump litellm to ~=1.83.0 to fix critical vulnerabilities
gkorland Apr 5, 2026
bdc533f
fix(deps): upgrade aiohttp to 3.13.5 to fix security vulnerabilities
gkorland Apr 5, 2026
1f728b4
chore(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 (#525)
dependabot[bot] Apr 5, 2026
bd5a461
feat(snowflake): add Snowflake loader with key-pair auth and security…
galshubeli Apr 6, 2026
f3d695f
fix(spellcheck): add DDL and DML to wordlist
galshubeli Apr 9, 2026
53ed013
refactor: remove redundant API key validation from text2sql
galshubeli Apr 9, 2026
d985e99
fix: use /settings prefix for settings router instead of /api
galshubeli Apr 9, 2026
7184832
fix: update test docstring to match /settings route path
galshubeli Apr 9, 2026
368188f
fix: restore staging code reverted during rebase
galshubeli Apr 9, 2026
9439c78
Merge pull request #380 from FalkorDB/copilot/add-support-for-snowflake
galshubeli Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.venv
node_modules
dist
.git
.github
*.md
!README.md
__pycache__
*.pyc
.env
.env.*
e2e
tests
58 changes: 45 additions & 13 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -42,29 +42,61 @@ FALKORDB_URL=redis://localhost:6379/0 # REQUIRED - change to your FalkorDB URL
# FALKORDB_PORT=6379

# -----------------------------
# Optional API / secret tokens
# API / secret tokens
# -----------------------------
# API token for internal API access (optional)
# SECRET_TOKEN=your_secret_token
# Optional: static bearer token for internal / programmatic API access.
# When set, this token is accepted as a "master" API key.
# When unset, only user-generated tokens are accepted.
# SECRET_TOKEN_ERP=your_erp_token

# -----------------------------
# AI / LLM configuration (optional)
# -----------------------------
# The default is to use Azure OpenAI if all three variables are set.
# If the OPENAI_API_KEY is set, it will use OpenAI directly.
# QueryWeaver supports multiple AI providers. Set ONE of the following API keys.
# Provider selection precedence (first match wins):
# OLLAMA_MODEL > OPENAI_API_KEY > GEMINI_API_KEY > ANTHROPIC_API_KEY > COHERE_API_KEY > Azure (fallback)
#
# Optional: Override the default models (both must be from the SAME provider):
# COMPLETION_MODEL=provider/model-name
# EMBEDDING_MODEL=provider/model-name
#
# IMPORTANT: The provider must match your API key. If you set gemini/* models,
# you must have GEMINI_API_KEY set. Mismatched overrides may cause runtime errors.
#
# Examples (using Gemini - requires GEMINI_API_KEY):
# COMPLETION_MODEL=gemini/gemini-3-pro-preview
# EMBEDDING_MODEL=gemini/gemini-embedding-001

# Azure OpenAI (example)
# AZURE_API_KEY=your_azure_api_key
# AZURE_API_BASE=https://your-resource.openai.azure.com/
# AZURE_API_VERSION=2023-05-15
# Examples (using OpenAI - requires OPENAI_API_KEY):
# COMPLETION_MODEL=openai/gpt-4.1
# EMBEDDING_MODEL=openai/text-embedding-ada-002

# OpenAI (example)
# OpenAI - uses openai/gpt-4.1 and openai/text-embedding-ada-002
# OPENAI_API_KEY=your_openai_api_key

# Optional: override default model names from api/config.py
# COMPLETION_MODEL=azure/gpt-4.1
# EMBEDDING_MODEL=azure/text-embedding-ada-002
# Google Gemini - uses gemini/gemini-3-pro-preview and gemini/gemini-embedding-001
# GEMINI_API_KEY=your_gemini_api_key

# Anthropic - uses anthropic/claude-sonnet-4-5-20250929
# Note: Anthropic has no native embeddings. You MUST also set one of:
# VOYAGE_API_KEY or EMBEDDING_MODEL for embeddings (startup fails otherwise).
# ANTHROPIC_API_KEY=your_anthropic_api_key
# VOYAGE_API_KEY=your_voyage_api_key # Optional: for Voyage AI embeddings with Anthropic

# Cohere - uses cohere/command-a-03-2025 and cohere/embed-v4.0
# COHERE_API_KEY=your_cohere_api_key
# COHERE_MODEL=command-a-03-2025
# COHERE_EMBEDDING_MODEL=embed-v4.0

# Local open-source model via Ollama (through LiteLLM)
# OLLAMA_MODEL=llama3.1
# OLLAMA_EMBEDDING_MODEL=nomic-embed-text
# OLLAMA_API_BASE=http://localhost:11434

# Azure OpenAI (default fallback) - uses azure/gpt-4.1 and azure/text-embedding-ada-002
# AZURE_API_KEY=your_azure_api_key
# AZURE_API_BASE=https://your-resource.openai.azure.com/
# AZURE_API_VERSION=2023-05-15

# -----------------------------
# OAuth configuration (optional — uncomment to enable login flows)
Expand Down
43 changes: 22 additions & 21 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ QueryWeaver is an open-source Text2SQL tool that transforms natural language int
- **Backend**: Python 3.12+, FastAPI 0.115.0+, FalkorDB (Redis-based graph database)
- **AI/ML**: LiteLLM with Azure OpenAI/OpenAI integration for text-to-SQL generation
- **Testing**: pytest for unit tests, Playwright for E2E testing
- **Dependencies**: pipenv for package management
- **Dependencies**: uv for package management
- **Authentication**: authlib with Google/GitHub OAuth
- **Deployment**: Docker support, Vercel configuration

Expand All @@ -22,8 +22,9 @@ Follow this order for a reliable local setup; if you customize the steps, ensure

### 1. Initial Setup (recommended for new contributors)
```bash
# Install pipenv if not available
pip install pipenv
# Install uv if not available
pip install uv
# or visit https://docs.astral.sh/uv/getting-started/installation/

# Install dependencies (backend + frontend) and prepare dev tools
# Recommended: use the Make helper which installs Python deps and frontend deps
Expand All @@ -34,9 +35,9 @@ make install
make setup-dev

# OR manual steps if you prefer more granular control:
# pipenv sync --dev
# pipenv run playwright install chromium
# pipenv run playwright install-deps
# uv sync
# uv run playwright install chromium
# uv run playwright install-deps

# Set up environment file
cp .env.example .env
Expand All @@ -51,9 +52,9 @@ Note: This project includes a TypeScript frontend in `app/` that must be built b
make setup-dev

# OR manual steps:
pipenv sync --dev
pipenv run playwright install chromium
pipenv run playwright install-deps
uv sync
uv run playwright install chromium
uv run playwright install-deps
```

### 3. Testing Commands
Expand Down Expand Up @@ -82,19 +83,19 @@ make docker-stop
```bash
# Run pylint (can be run without FalkorDB)
make lint
# OR manually: pipenv run pylint $(git ls-files '*.py')
# OR manually: uv run pylint $(git ls-files '*.py')
```

### 5. Running the Application

```bash
# Development server with debug mode
make run-dev
# OR manually: pipenv run uvicorn api.index:app --host "localhost" --port "5000" --reload
# OR manually: uv run uvicorn api.index:app --host "localhost" --port "5000" --reload

# Production mode
make run-prod
# OR manually: pipenv run uvicorn api.index:app --host "localhost" --port "5000"
# OR manually: uv run uvicorn api.index:app --host "localhost" --port "5000"
```

Important: If you're preparing a production deployment or have changed frontend code, run `make build-prod` (or `make build-dev` for a development build) first to produce the static bundle used by the app.
Expand Down Expand Up @@ -183,8 +184,8 @@ make docker-falkordb
**Error**: E2E tests fail with browser not found
**Solution**:
```bash
pipenv run playwright install chromium
pipenv run playwright install-deps
uv run playwright install chromium
uv run playwright install-deps
```

### 3. Missing Environment File
Expand All @@ -197,10 +198,10 @@ cp .env.example .env

### 4. Import Errors During Testing
**Error**: Module import failures in tests
**Solution**: Ensure you're using pipenv and dependencies are installed:
**Solution**: Ensure you're using uv and dependencies are installed:
```bash
pipenv sync --dev
pipenv run pytest tests/ -k "not e2e"
uv sync
uv run python -m pytest tests/ -k "not e2e"
```

### 5. Port Conflicts
Expand Down Expand Up @@ -242,7 +243,7 @@ tests/
```

### Configuration Files
- `Pipfile` & `Pipfile.lock`: Python dependencies
- `pyproject.toml` & `uv.lock`: Python dependencies
- `pytest.ini`: Test configuration with custom markers
- `Makefile`: Build and development commands
- `.env.example`: Environment variable template
Expand All @@ -268,7 +269,7 @@ The repository has comprehensive CI/CD in `.github/workflows/`:

2. **pylint.yml**: Code quality checks
- Runs on every push
- Uses same Python/pipenv setup
- Uses same Python/uv setup

3. **e2e-tests.yml**: Dedicated E2E testing
- Separate workflow for E2E tests
Expand All @@ -281,8 +282,8 @@ The repository has comprehensive CI/CD in `.github/workflows/`:
All workflows follow this pattern:
```yaml
- Python 3.12 setup
- pipenv installation
- pipenv sync --dev
- uv installation
- uv sync
- .env file creation with test values (use FALKORDB_URL in CI)
- FalkorDB service startup (for tests requiring DB)
- Playwright browser installation (for E2E tests)
Expand Down
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ updates:
target-branch: "staging"
schedule:
interval: "weekly"
- package-ecosystem: "pip"
- package-ecosystem: "uv"
directory: "/"
target-branch: "staging"
schedule:
Expand Down
31 changes: 28 additions & 3 deletions .github/wordlist.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
QueryWeaver
FalkorDB
OAuth
DDL
DML
AGPL
Affero
nullability
schemas
psycopg
html
PostgreSQLLoader
PostgresLoader
api
postgres
postgresql
Expand All @@ -30,8 +33,8 @@ Nullability
endcapture
CVSS
falkordb
pipenv
Pipenv
uv
pyproject
README
md
UI
Expand Down Expand Up @@ -71,9 +74,13 @@ namespace
namespaced

CSRF
Anthropic
Cohere
LLM
Ollama
OpenAI
OpenAI's
DockerHub
Dockerhub
FDE
github
Expand All @@ -95,4 +102,22 @@ Sanitization
JOINs
subqueries
subquery
TTL
TTL

config
docstring
dotenv
ESLint
GraphNotFoundError
HSTS
init
InternalError
InvalidArgumentError
Middleware
monorepo
PRs
pylint
pytest
Radix
Zod
Dependabot
7 changes: 2 additions & 5 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Checkout repository'
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: 'Dependency Review'
uses: actions/dependency-review-action@v4
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4
# Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options.
with:
comment-summary-in-pr: always
# fail-on-severity: moderate
# deny-licenses: GPL-1.0-or-later, LGPL-2.0-or-later
# retry-on-snapshot-warnings: true
Loading
Loading