fix: 技术债务修复 - Domain层依赖优化 #49

Merged
xiaoxia merged 10 commits from fix/tech-debt-final into develop 2026-06-27 19:47:00 +08:00
10 changed files with 93 additions and 8 deletions
+85
View File
@@ -0,0 +1,85 @@
# =======================
# 生产环境配置
# =======================
APP_ENV=production
APP_NAME=xiaoxia-saas
APP_VERSION=0.1.0
DEBUG=false
# =======================
# API 服务配置
# =======================
API_HOST=0.0.0.0
API_PORT=8000
API_PREFIX=/api/v1
# =======================
# Web 前端配置
# =======================
WEB_PORT=3000
WEB_URL=https://xiaoxiajianji.com
# =======================
# 数据库配置
# =======================
DATABASE_URL=postgresql+psycopg://postgres:CHANGE_ME@postgres:5432/xiaoxia_saas_production
DATABASE_POOL_SIZE=50
DATABASE_MAX_OVERFLOW=100
DATABASE_POOL_TIMEOUT=30
DATABASE_POOL_RECYCLE=3600
# =======================
# Redis 配置
# =======================
REDIS_URL=redis://redis:6379/0
REDIS_MAX_CONNECTIONS=100
# =======================
# Celery Worker 配置
# =======================
CELERY_BROKER_URL=redis://redis:6379/0
CELERY_RESULT_BACKEND=redis://redis:6379/1
CELERY_WORKER_CONCURRENCY=8
CELERY_WORKER_MAX_TASKS_PER_CHILD=1000
# =======================
# MinIO 对象存储配置
# =======================
MINIO_ENDPOINT=47.98.113.167:9000
MINIO_ACCESS_KEY=CHANGE_ME_PRODUCTION
MINIO_SECRET_KEY=CHANGE_ME_PRODUCTION
MINIO_BUCKET=xiaoxia-assets
MINIO_SECURE=false
MINIO_PUBLIC_URL=http://47.98.113.167:9000
# =======================
# 日志配置
# =======================
LOG_LEVEL=INFO
LOG_FORMAT=json
LOG_FILE=/var/log/xiaoxia-saas/app.log
# =======================
# CORS 配置
# =======================
CORS_ORIGINS=https://xiaoxiajianji.com,https://api.xiaoxiajianji.com
CORS_ALLOW_CREDENTIALS=true
# =======================
# 文件上传限制
# =======================
MAX_UPLOAD_SIZE_MB=2000
ALLOWED_FILE_TYPES=video/mp4,video/quicktime,video/x-msvideo,audio/mpeg,audio/wav,image/jpeg,image/png,image/gif
# =======================
# 安全配置
# =======================
SECRET_KEY=CHANGE_ME_TO_RANDOM_STRING_AT_LEAST_32_CHARS_IN_PRODUCTION
ACCESS_TOKEN_EXPIRE_MINUTES=60
REFRESH_TOKEN_EXPIRE_DAYS=7
# =======================
# 监控与追踪(可选)
# =======================
# SENTRY_DSN=
# PROMETHEUS_PORT=9090
+2 -2
View File
@@ -11,7 +11,7 @@ import jwt as pyjwt
from packages.adapters.redis import get_session_store
from packages.adapters.redis.session_store import SessionStore
from packages.domain.auth import jwt_service, password_hasher
from packages.application.auth import jwt_service, password_hasher
LEGACY_SHA256_HEX_LENGTH = 64
@@ -170,7 +170,7 @@ class RefreshTokenUseCase:
self.user_repository = user_repository
self.session_store = session_store or get_session_store()
# Import jwt_service for token creation
from packages.domain.auth import jwt_service as jwt_svc_module
from packages.application.auth import jwt_service as jwt_svc_module
self.jwt_service = jwt_svc_module
self._jwt_secret_key = jwt_svc_module.config.SECRET_KEY
@@ -7,7 +7,7 @@ from datetime import datetime, timedelta, timezone
from typing import Optional
from packages.adapters.smtp import get_email_service
from packages.domain.auth import password_hasher, password_validator
from packages.application.auth import password_hasher, password_validator
class RequestPasswordResetRequest:
@@ -8,7 +8,7 @@ from typing import Optional
from uuid import uuid4
from packages.adapters.smtp import get_email_service
from packages.domain.auth import password_hasher, password_validator
from packages.application.auth import password_hasher, password_validator
from packages.domain.entities import User
+1 -1
View File
@@ -28,7 +28,7 @@ from app.config import settings
from packages.adapters.smtp import NoopEmailService
from packages.application.auth.login_use_case import LoginRequest, LoginUseCase
from packages.application.auth.register_user_use_case import RegisterUserRequest, RegisterUserUseCase
from packages.domain.auth import password_hasher
from packages.application.auth import password_hasher
from packages.domain.entities import User
+1 -1
View File
@@ -15,7 +15,7 @@ if str(API_ROOT) not in sys.path:
from app.config import settings
from app.middleware.auth import get_current_user, get_current_user_optional, require_workspace_access
from packages.domain.auth import password_hasher
from packages.application.auth import password_hasher
from packages.domain.entities import User
+1 -1
View File
@@ -13,7 +13,7 @@ from packages.application.auth import (
LogoutRequest,
LogoutUseCase,
)
from packages.domain.auth import password_hasher
from packages.application.auth import password_hasher
from packages.domain.entities import User
@@ -10,7 +10,7 @@ from packages.application.workspace.create_workspace_use_case import CreateWorks
from packages.application.workspace.invite_member_use_case import InviteMemberRequest, InviteMemberUseCase
from packages.application.workspace.list_members_use_case import ListMembersRequest, ListMembersUseCase
from packages.application.workspace.list_workspaces_use_case import ListWorkspacesRequest, ListWorkspacesUseCase
from packages.domain.auth import password_hasher
from packages.application.auth import password_hasher
from packages.domain.entities import User