mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
Complete implementation of enterprise-grade authentication middleware for email service: Features: - JWT token creation/validation with configurable expiration - Bearer token extraction and validation - Multi-tenant isolation enforced at middleware level - Role-based access control (RBAC) with user/admin roles - Row-level security (RLS) for resource access - Automatic request logging with user context and audit trail - CORS configuration for email client frontend - Rate limiting (50 req/min per user with Redis backend) - Comprehensive error handling with proper HTTP status codes Implementation: - Enhanced src/middleware/auth.py (415 lines) - JWTConfig class for token management - create_jwt_token() for token generation - decode_jwt_token() for token validation - @verify_tenant_context decorator for auth middleware - @verify_role decorator for RBAC - verify_resource_access() for row-level security - log_request_context() for audit logging Testing: - 52 comprehensive test cases covering all features - 100% pass rate with fast execution (0.15s) - Test categories: JWT, multi-tenant, RBAC, RLS, logging, integration - Full coverage of error scenarios and edge cases Documentation: - AUTH_MIDDLEWARE.md: Complete API reference and configuration guide - AUTH_INTEGRATION_EXAMPLE.py: Real-world usage examples for 5+ scenarios - PHASE_7_SUMMARY.md: Implementation summary with checklist - Inline code documentation with type hints Security: - Multi-tenant data isolation at all levels - Constant-time password comparison - JWT signature validation - CORS protection - Rate limiting against abuse - Comprehensive audit logging Dependencies Added: - PyJWT==2.8.1 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
63 lines
1.4 KiB
YAML
63 lines
1.4 KiB
YAML
# Docker Compose Development Override
|
|
# Usage: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
# Development Redis with debug settings
|
|
redis:
|
|
environment:
|
|
REDIS_PASSWORD: redis_development_password
|
|
REDIS_MAXMEMORY: 512mb
|
|
REDIS_MAXMEMORY_POLICY: allkeys-lru
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Development Email Service with debug logging
|
|
email-service:
|
|
environment:
|
|
FLASK_ENV: development
|
|
FLASK_DEBUG: '1'
|
|
LOG_LEVEL: DEBUG
|
|
# Disable eager task execution for debugging
|
|
CELERY_TASK_ALWAYS_EAGER: 'false'
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Development Postfix with debug
|
|
postfix:
|
|
environment:
|
|
# Additional development settings
|
|
POSTFIX_message_size_limit: 52428800 # 50MB
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Development Dovecot
|
|
dovecot:
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Development PostgreSQL
|
|
postgres:
|
|
environment:
|
|
POSTGRES_USER: emailclient
|
|
POSTGRES_PASSWORD: emailclient
|
|
POSTGRES_DB: emailclient
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|