mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +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>
49 lines
968 B
Python
49 lines
968 B
Python
"""
|
|
Email Service Celery Tasks Module
|
|
|
|
Initialization for Celery task queue with email operations.
|
|
|
|
Usage:
|
|
from tasks.celery_app import sync_emails, send_email
|
|
|
|
# Dispatch async task
|
|
task = sync_emails.delay(
|
|
email_client_id='client-123',
|
|
tenant_id='tenant-456',
|
|
user_id='user-789'
|
|
)
|
|
|
|
# Get task status
|
|
task.status # 'PENDING', 'STARTED', 'SUCCESS', 'FAILURE', 'RETRY'
|
|
task.result # Task result dict
|
|
"""
|
|
|
|
from .celery_app import (
|
|
celery_app,
|
|
sync_emails,
|
|
send_email,
|
|
delete_emails,
|
|
check_spam,
|
|
periodic_sync,
|
|
cleanup_stale_results,
|
|
get_task_status,
|
|
revoke_task,
|
|
get_active_tasks,
|
|
get_queue_stats,
|
|
)
|
|
|
|
__version__ = '1.0.0'
|
|
__all__ = [
|
|
'celery_app',
|
|
'sync_emails',
|
|
'send_email',
|
|
'delete_emails',
|
|
'check_spam',
|
|
'periodic_sync',
|
|
'cleanup_stale_results',
|
|
'get_task_status',
|
|
'revoke_task',
|
|
'get_active_tasks',
|
|
'get_queue_stats',
|
|
]
|