summaryrefslogtreecommitdiff
path: root/backend/app/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/app/main.py')
-rw-r--r--backend/app/main.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/backend/app/main.py b/backend/app/main.py
index a5f16af..902d693 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -1,13 +1,15 @@
import asyncio
import tempfile
import time
-from fastapi import FastAPI, HTTPException
+from fastapi import FastAPI, HTTPException, Depends
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse, FileResponse
from fastapi import UploadFile, File, Form
from pydantic import BaseModel
from app.schemas import NodeRunRequest, NodeRunResponse, MergeStrategy, Role, Message, Context, LLMConfig, ModelProvider, ReasoningEffort
from app.services.llm import llm_streamer, generate_title, get_openai_client
+from app.auth import auth_router, get_current_user, init_db, User, get_db
+from app.auth.utils import get_password_hash
from dotenv import load_dotenv
import os
import json
@@ -15,11 +17,15 @@ import shutil
from typing import List, Literal, Optional
from uuid import uuid4
from google import genai
+from sqlalchemy.orm import Session
load_dotenv()
app = FastAPI(title="ContextFlow Backend")
+# Include authentication router
+app.include_router(auth_router)
+
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
@@ -28,6 +34,31 @@ app.add_middleware(
allow_headers=["*"],
)
+# Initialize database on startup
+@app.on_event("startup")
+async def startup_event():
+ """Initialize database and create default test user if not exists"""
+ init_db()
+
+ # Create test user if not exists
+ from app.auth.models import SessionLocal
+ db = SessionLocal()
+ try:
+ existing = db.query(User).filter(User.username == "test").first()
+ if not existing:
+ test_user = User(
+ username="test",
+ email="test@contextflow.local",
+ hashed_password=get_password_hash("114514")
+ )
+ db.add(test_user)
+ db.commit()
+ print("[startup] Created default test user (test/114514)")
+ else:
+ print("[startup] Test user already exists")
+ finally:
+ db.close()
+
# --------- Project / Blueprint storage ---------
DATA_ROOT = os.path.abspath(os.getenv("DATA_ROOT", os.path.join(os.getcwd(), "data")))
DEFAULT_USER = "test"