Spaces:
Sleeping
Sleeping
| import asyncio | |
| # Required for Playwright on Windows | |
| import platform | |
| if platform.system() == "Windows": | |
| asyncio.set_event_loop_policy( | |
| asyncio.WindowsProactorEventLoopPolicy() | |
| ) | |
| from fastapi import FastAPI | |
| from core.database import Base, engine | |
| # Import models before creating tables | |
| from models.user import User | |
| from models.workflow import Workflow | |
| from models.workflow_run import WorkflowRun | |
| from models.execution_log import ExecutionLog | |
| from models.workflow_schedule import WorkflowSchedule | |
| # Import API routes | |
| from api.workflow_routes import router as workflow_router | |
| from api.auth_routes import router as auth_router | |
| from api.execution_routes import ( | |
| router as execution_router | |
| ) | |
| from fastapi.middleware.cors import ( | |
| CORSMiddleware | |
| ) | |
| from middleware.request_timer import ( | |
| request_timer | |
| ) | |
| from scheduler.scheduler import start_scheduler | |
| # Create FastAPI application | |
| app = FastAPI( | |
| title="TaskWeaver", | |
| version="1.0.0" | |
| ) | |
| # Register request timing middleware | |
| app.middleware("http")( | |
| request_timer | |
| ) | |
| # Create database tables | |
| Base.metadata.create_all(bind=engine) | |
| # Register all API routes | |
| app.include_router(auth_router) | |
| app.include_router(workflow_router) | |
| app.include_router(execution_router) | |
| # Start scheduler when the server starts | |
| def startup_event(): | |
| start_scheduler() | |
| # Root endpoint | |
| def root(): | |
| return {"message": "TaskWeaver API Running"} | |
| # Health check endpoint | |
| def health(): | |
| return {"status": "healthy"} |