- Add structured logging config with JSON/text format support
- Create docker-entrypoint.sh with dependency health checks
- Enhance /health endpoint with DB and Redis connectivity checks
- Add resource limits (CPU/memory) for all services
- Add network aliases for service discovery
- Add container hostnames for better identification
- Reduce health check timeout from 20s to 5s
- Add build metadata labels to Dockerfile
- Use ENTRYPOINT for dependency checking before app startup
- Log rotation: 50m per file, 5 files max
- Updated docker-compose.yml with port 8990:8000 mapping
- Fixed environment variables to match current .env configuration
- Added third PostgreSQL database (postgres_mirror) for mirror/sync data
- Added robust JSON file logging for all containers (10MB max, 3 files)
- Updated PostgreSQL credentials to use postgres/postgres
- Added health checks for all services
- Enhanced Dockerfile with logging environment variables
- Created .env.docker documentation file with deployment checklist
- Docker build verified successfully
- Add Alembic migration setup with async configuration
- Create 16 user data models (users, decks, cards, replays, etc.)
- Implement comprehensive API endpoints with JWT auth
- Add replay, card collection, group, network, preferences, and activity log routers
- Include API documentation and migration test plan
- Update Dockerfile to run migrations on startup
- Added MTG card ORM models (mtg_cards, mtg_sets tables)
- Created card_database service with search, get_by_name, get_by_set
- Added Redis client with caching layer (3600s TTL default)
- Created card router with caching on all endpoints:
- Search cards (5min cache)
- Get card by name (10min cache)
- Get cards by set (15min cache)
- Get card types/rarities (30min cache)
- Get sets (1hr cache)
- Get statistics (1hr cache)
- Updated settings.py:
- Added JWT_SECRET_KEY field
- Added DB_CONFIG and REDIS_CONFIG dictionaries
- Updated security.py to use JWT_SECRET_KEY with fallback
- Updated auth.py to use timezone-aware datetimes
- Updated refresh_mtg.py to use settings instead of os.environ
- Updated mtg_monitor.py to use settings for connections
- Added services package with __init__.py
All 20 tests passing.