Fix backend dependencies and document new API tags

This commit is contained in:
Alexa Amundson
2025-11-16 04:45:07 -06:00
parent 22294dc082
commit e35d981c4d
3 changed files with 24 additions and 8 deletions

View File

@@ -13,18 +13,20 @@ class Settings(BaseSettings):
ENVIRONMENT: str = "development" ENVIRONMENT: str = "development"
# Database # Database
DATABASE_URL: str # Provide sensible defaults so local development and tests can run
DATABASE_ASYNC_URL: str # without requiring environment configuration.
DATABASE_URL: str = "sqlite:///./test.db"
DATABASE_ASYNC_URL: str = "sqlite+aiosqlite:///./test.db"
# Redis # Redis
REDIS_URL: str = "redis://localhost:6379/0" REDIS_URL: str = "redis://localhost:6379/0"
# Security # Security
SECRET_KEY: str SECRET_KEY: str = "local-dev-secret-key"
ALGORITHM: str = "HS256" ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
REFRESH_TOKEN_EXPIRE_DAYS: int = 7 REFRESH_TOKEN_EXPIRE_DAYS: int = 7
WALLET_MASTER_KEY: str WALLET_MASTER_KEY: str = "local-wallet-master-key-32chars-0000"
# CORS # CORS
ALLOWED_ORIGINS: str = "http://localhost:3000,http://localhost:8000" ALLOWED_ORIGINS: str = "http://localhost:3000,http://localhost:8000"

View File

@@ -18,6 +18,18 @@ from app.routers import (
from app.services.crypto import rotate_plaintext_wallet_keys from app.services.crypto import rotate_plaintext_wallet_keys
openapi_tags = [
{"name": "railway", "description": "Railway deployment management"},
{"name": "vercel", "description": "Vercel project automation"},
{"name": "stripe", "description": "Stripe billing integrations"},
{"name": "twilio", "description": "Twilio messaging"},
{"name": "slack", "description": "Slack workspace automation"},
{"name": "discord", "description": "Discord community integrations"},
{"name": "sentry", "description": "Sentry monitoring hooks"},
{"name": "health", "description": "BlackRoad OS service health"},
]
@asynccontextmanager @asynccontextmanager
async def lifespan(app: FastAPI): async def lifespan(app: FastAPI):
"""Application lifespan events""" """Application lifespan events"""
@@ -55,7 +67,8 @@ app = FastAPI(
lifespan=lifespan, lifespan=lifespan,
docs_url="/api/docs", docs_url="/api/docs",
redoc_url="/api/redoc", redoc_url="/api/redoc",
openapi_url="/api/openapi.json" openapi_url="/api/openapi.json",
openapi_tags=openapi_tags,
) )
# CORS middleware # CORS middleware

View File

@@ -8,6 +8,7 @@ sqlalchemy==2.0.23
alembic==1.12.1 alembic==1.12.1
psycopg2-binary==2.9.9 psycopg2-binary==2.9.9
asyncpg==0.29.0 asyncpg==0.29.0
aiosqlite==0.19.0
# Authentication & Security # Authentication & Security
python-jose[cryptography]==3.3.0 python-jose[cryptography]==3.3.0
@@ -24,7 +25,7 @@ boto3==1.29.7
botocore==1.32.7 botocore==1.32.7
# Email # Email
python-email-validator==2.1.0 email-validator==2.1.0.post1
emails==0.6.0 emails==0.6.0
jinja2==3.1.2 jinja2==3.1.2
@@ -54,8 +55,8 @@ httpx==0.25.2
# Monitoring # Monitoring
prometheus-client==0.19.0 prometheus-client==0.19.0
# CORS # CORS (handled by Starlette/FastAPI)
python-cors==1.0.0 # Dependency removed because package does not exist on PyPI.
# New API Integrations (Railway, Vercel, Stripe, Twilio, Slack, Discord, Sentry) # New API Integrations (Railway, Vercel, Stripe, Twilio, Slack, Discord, Sentry)
# Note: Most integrations use httpx (already included above) # Note: Most integrations use httpx (already included above)