Files
grimlock/backend/core/database.py
JA 9f094b7a5d Phase 1: Communications Module - Complete
Backend infrastructure:
- PostgreSQL models (users, channels, messages, DMs, files, artifacts)
- JWT authentication with password hashing
- Auth API (register, login, logout, get user)
- Channels API (create, list, join, leave)
- Messages API with @grimlock mention detection
- AI responds automatically when @mentioned
- Background task processing for AI responses

Database:
- SQLAlchemy ORM models
- Alembic ready for migrations
- PostgreSQL + Redis in docker-compose

Features working:
- User registration and login
- Create/join public channels
- Send messages in channels
- @grimlock triggers AI response with channel context
- Real-time ready (WebSocket next)

Next: WebSocket for real-time updates, frontend interface
2026-02-12 21:26:16 +00:00

36 lines
753 B
Python

"""
Database Configuration
"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.pool import StaticPool
import os
# Database URL from environment
DATABASE_URL = os.getenv(
"DATABASE_URL",
"postgresql://grimlock:grimlock@localhost:5432/grimlock"
)
# Create engine
engine = create_engine(
DATABASE_URL,
echo=os.getenv("DEBUG", "false").lower() == "true",
pool_pre_ping=True,
pool_size=10,
max_overflow=20
)
# Session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Dependency to get DB session
def get_db():
"""FastAPI dependency for database sessions"""
db = SessionLocal()
try:
yield db
finally:
db.close()