- MSAL.js (PKCE) browser-side auth against Azure Entra ID - Bearer token interceptor on all API calls - Backend JWT validation middleware (python-jose + JWKS) - All API routes protected; /api/health stays public - vite base set to /gsb/, BrowserRouter basename=/gsb - docker-compose: remove frontend service, lock backend to 127.0.0.1:8002, remove dev volumes - backend: 2 workers, no --reload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20 lines
450 B
Bash
Executable file
20 lines
450 B
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
export PYTHONPATH=/app
|
|
|
|
echo "Initializing database..."
|
|
python -c "
|
|
from sqlalchemy import create_engine
|
|
from app.database import Base
|
|
from app.models import *
|
|
import os
|
|
|
|
engine = create_engine(os.environ['DATABASE_URL_SYNC'])
|
|
Base.metadata.create_all(bind=engine)
|
|
engine.dispose()
|
|
print('Database tables created successfully')
|
|
"
|
|
|
|
echo "Starting FastAPI server..."
|
|
exec uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 2
|