Updated claude big changes

This commit is contained in:
2026-01-29 08:43:59 -05:00
parent 529265ad6f
commit a8ab7a93b0
2 changed files with 28 additions and 5 deletions

View File

@@ -17,7 +17,13 @@ url = URL.create(
port=ApplicationConfig.POSTGRES_PORT port=ApplicationConfig.POSTGRES_PORT
) )
engine = create_engine(url) engine = create_engine(
url,
pool_pre_ping=True, # Verify connections before use
pool_size=5, # Maintain 5 connections in pool
max_overflow=10, # Allow 10 additional connections when busy
pool_recycle=3600, # Recycle connections after 1 hour
)
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = Session() session = Session()

View File

@@ -37,8 +37,9 @@ def setup_logging():
logger = setup_logging() logger = setup_logging()
import uuid
import requests import requests
from fastapi import FastAPI, HTTPException, status from fastapi import FastAPI, HTTPException, status, Request
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from starlette.middleware.base import BaseHTTPMiddleware from starlette.middleware.base import BaseHTTPMiddleware
from starlette.responses import JSONResponse from starlette.responses import JSONResponse
@@ -74,12 +75,24 @@ app = FastAPI(
version="1.0.0", version="1.0.0",
) )
# Request ID middleware for request tracking/correlation
class RequestIDMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
request_id = request.headers.get("X-Request-ID") or str(uuid.uuid4())[:8]
request.state.request_id = request_id
response = await call_next(request)
response.headers["X-Request-ID"] = request_id
return response
app.add_middleware(RequestIDMiddleware)
app.add_middleware( app.add_middleware(
CORSMiddleware, CORSMiddleware,
allow_origins=settings.origins, allow_origins=settings.origins,
allow_credentials=True, allow_credentials=True,
allow_methods=["*"], allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"],
allow_headers=["*"], allow_headers=["Authorization", "Content-Type", "Accept", "Origin", "X-Requested-With", "X-Request-ID"],
) )
@app.get("/", tags=["General"]) @app.get("/", tags=["General"])
@@ -226,7 +239,11 @@ async def startup_event():
logger.info("🤖🤖🤖🤖🤖 Mode: Development 🤖🤖🤖🤖🤖") logger.info("🤖🤖🤖🤖🤖 Mode: Development 🤖🤖🤖🤖🤖")
elif mode in ['PRODUCTION', 'PROD']: elif mode in ['PRODUCTION', 'PROD']:
logger.info("💀💀💀💀💀💀💀💀💀💀 ⚠️ WARNING PRODUCTION 💀💀💀💀💀💀💀💀💀💀") logger.info("💀💀💀💀💀💀💀💀💀💀 ⚠️ WARNING PRODUCTION 💀💀💀💀💀💀💀💀💀💀")
logger.info(f"DB: {settings.SQLALCHEMY_DATABASE_URI[:30]}...") # Sanitize DB URI to avoid logging credentials
db_uri = settings.SQLALCHEMY_DATABASE_URI
if '@' in db_uri:
db_uri = db_uri.split('@')[-1]
logger.info(f"DB: ...@{db_uri[:50]}")
logger.info(f"CORS: {len(settings.origins)} origins configured") logger.info(f"CORS: {len(settings.origins)} origins configured")
# Test database connection # Test database connection