Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
878ca28
Require token for mutating API endpoints in public mode
gkorland Mar 12, 2026
c47f93e
Migrate backend from Flask to FastAPI
gkorland Mar 12, 2026
0704421
Fix path traversal in SPA serving and stop leaking exception details
gkorland Mar 12, 2026
70bc326
Fix test app: use token_required for mutating endpoints
gkorland Mar 12, 2026
f5d12b6
Fix path traversal vulnerabilities, harden auth tests, and improve lo…
gkorland Mar 13, 2026
3b92198
Fix dual import style for api.index module
gkorland Mar 13, 2026
11b92ab
Strengthen auth test assertions and fix trailing whitespace
gkorland Mar 13, 2026
4ece2a5
Merge pull request #609 from FalkorDB/secure-mutating-endpoints
gkorland Mar 13, 2026
814689e
Migrate FastAPI endpoints from sync to async for better concurrency
gkorland Mar 13, 2026
d347c47
Merge branch 'main' into async-endpoints
gkorland Mar 13, 2026
d4daf00
Merge branch 'main' into staging
gkorland Mar 13, 2026
902a65e
Merge branch 'staging' into async-endpoints
gkorland Mar 13, 2026
fbdbecb
Address PR review feedback
gkorland Mar 13, 2026
e893b66
Remove unused sync imports and add async wrapper unit tests
gkorland Mar 13, 2026
92fa424
Add strict=True to zip in sync find_paths for consistency
gkorland Mar 13, 2026
20a02d5
Address review: fix strict=True zip, revert serve_spa to sync, elimin…
gkorland Mar 13, 2026
24eb501
Add graph_exists check to repo_info endpoints, fix test cleanup asser…
gkorland Mar 13, 2026
0c64e8d
Merge pull request #611 from FalkorDB/async-endpoints
gkorland Mar 13, 2026
c46427e
docs: sync project docs with FastAPI implementation
gkorland Mar 13, 2026
976b77a
Merge branch 'staging' into async-endpoints
gkorland Mar 13, 2026
4f1a8c2
Delete ARCHITECTURE_ANALYSIS.md
gkorland Mar 13, 2026
e99d718
Delete QUICK_REFERENCE.txt
gkorland Mar 13, 2026
97b6113
Merge pull request #613 from FalkorDB/async-endpoints
gkorland Mar 14, 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
29 changes: 21 additions & 8 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,28 @@
FALKORDB_HOST=localhost
FALKORDB_PORT=6379

# OpenAI API key for LLM features
OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
# Optional FalkorDB authentication
FALKORDB_USERNAME=
FALKORDB_PASSWORD=

# Secret token for API authentication
# Token checked by authenticated endpoints. If left empty, the current
# implementation accepts requests without an Authorization header.
SECRET_TOKEN=<YOUR_SECRET_TOKEN>

# Flask server settings
FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=5000

# Set to 1 to enable public access for analyze_repo/switch_commit endpoints
# Set to 1 to make read-only endpoints public.
CODE_GRAPH_PUBLIC=0

# Limit /api/analyze_folder to this directory tree. Leave commented to use
# the repository root as the default allowed directory.
# ALLOWED_ANALYSIS_DIR=/absolute/path/to/projects

# LiteLLM model used by /api/chat
MODEL_NAME=gemini/gemini-flash-lite-latest

# Provider credential for the default Gemini model. Change this to the
# appropriate provider key if you change MODEL_NAME.
GEMINI_API_KEY=<YOUR_GEMINI_API_KEY>

# Optional Uvicorn bind settings used by start.sh / make run-*
HOST=0.0.0.0
PORT=5000
8 changes: 4 additions & 4 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,17 @@ jobs:
npx playwright install chromium firefox
npx playwright install-deps chromium firefox

- name: Start Flask server
- name: Start server
id: start-server
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SECRET_TOKEN: ${{ secrets.SECRET_TOKEN }}
CODE_GRAPH_PUBLIC: "1"
MODEL_NAME: "openai/gpt-4.1-mini"
run: |
uv run flask --app api/index.py run --host 0.0.0.0 --port 5000 &
uv run uvicorn api.index:app --host 0.0.0.0 --port 5000 &
echo "pid=$!" >> "$GITHUB_OUTPUT"
# Wait for Flask to be ready
# Wait for server to be ready
timeout 30 bash -c 'until curl -s http://localhost:5000/ > /dev/null 2>&1; do sleep 0.5; done'

- name: Run Playwright tests
Expand All @@ -102,7 +102,7 @@ jobs:
MODEL_NAME: "openai/gpt-4.1-mini"
run: npx playwright test --shard=${{ matrix.shard }}/2 --reporter=dot,list

- name: Stop Flask server
- name: Stop server
if: always()
run: kill ${{ steps.start-server.outputs.pid }} 2>/dev/null || true

Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ clean: ## Clean up build and test artifacts
find . -name "*.pyo" -delete

run-dev: build-dev ## Run development server (Python backend serving built frontend)
uv run flask --app api/index.py run --host $${HOST:-127.0.0.1} --port $${PORT:-5000} --debug
uv run uvicorn api.index:app --host $${HOST:-127.0.0.1} --port $${PORT:-5000} --reload

run-prod: build-prod ## Run production server
uv run flask --app api/index.py run --host $${HOST:-0.0.0.0} --port $${PORT:-5000}
uv run uvicorn api.index:app --host $${HOST:-0.0.0.0} --port $${PORT:-5000}

docker-falkordb: ## Start FalkorDB in Docker for testing
docker run -d --name falkordb-test -p 6379:6379 falkordb/falkordb:latest
Expand Down
Loading
Loading