epic-010-system-config-multi-tenant.md 4.8 KB

Epic 010 - 系统配置多租户模块 - Brownfield Enhancement

Epic Goal

在多租户核心包中创建系统配置多租户模块,为小程序登录、支付等场景提供租户隔离的系统配置管理,支持在管理后台进行配置,并通过Redis缓存提高访问性能。

Epic Description

Existing System Context

Current relevant functionality:

  • 文件模块已实现完整的CRUD路由、实体和Schema模式
  • 认证模块已实现小程序登录和手机号解密功能
  • 支付模块已实现微信小程序支付功能
  • 多租户认证模块已实现租户隔离的用户管理
  • Redis缓存已用于session_key存储

Technology stack:

  • TypeORM + PostgreSQL (数据库)
  • Hono + Zod OpenAPI (API框架)
  • Redis (缓存)
  • 微信小程序SDK (认证和支付)

Integration points:

  • 认证模块的MiniAuthService (小程序登录)
  • 支付模块的PaymentService (小程序支付)
  • 文件模块的CRUD模式 (系统配置实体)
  • Redis缓存工具 (配置缓存)

Enhancement Details

What's being added/changed:

  • 创建系统配置多租户模块包,包含实体、Schema、服务和路由
  • 实现基于租户ID的系统配置管理,支持key-value存储
  • 添加Redis缓存支持,提高配置访问性能
  • 创建系统配置UI包,集成到web admin管理后台
  • 修改认证和支付模块,使用系统配置获取租户相关参数

How it integrates:

  • 遵循文件模块的CRUD模式创建系统配置模块
  • 使用Redis缓存系统配置,减少数据库访问
  • 在认证和支付服务中通过租户ID获取配置
  • 在管理后台提供系统配置管理界面

Success criteria:

  • 系统配置模块支持多租户隔离
  • 配置访问通过Redis缓存优化
  • 认证和支付模块正确使用系统配置
  • 管理后台可以配置租户系统参数

Stories

  1. Story 1: 创建系统配置多租户模块包 - 实现系统配置实体、Schema、服务和基础CRUD路由
  2. Story 2: 实现系统配置Redis缓存和租户隔离 - 添加Redis缓存支持,实现租户ID隔离的配置管理
  3. Story 3: 集成系统配置到认证和支付模块 - 修改小程序登录和支付功能使用系统配置
  4. Story 4: 创建系统配置UI包并集成到管理后台 - 开发系统配置管理界面

Compatibility Requirements

  • 现有API保持不变
  • 数据库schema变化向后兼容
  • UI变化遵循现有模式
  • 性能影响最小化

Risk Mitigation

Primary Risk: 系统配置模块可能影响现有认证和支付功能的稳定性

Mitigation: 分阶段实施,先创建独立模块,再逐步集成到现有功能

Rollback Plan: 如果出现问题,可以回退到使用环境变量的方式,系统配置模块作为可选功能

Definition of Done

  • 所有故事完成且验收标准满足
  • 现有功能通过测试验证
  • 集成点正常工作
  • 文档适当更新
  • 现有功能无回归

Technical Implementation Details

系统配置实体设计

@Entity('system_config')
export class SystemConfig {
  @PrimaryGeneratedColumn()
  id!: number;

  @Column()
  tenantId!: number;

  @Column()
  configKey!: string;

  @Column('text')
  configValue!: string;

  @Column()
  description?: string;

  @Column()
  createdAt!: Date;

  @Column()
  updatedAt!: Date;
}

Redis缓存策略

  • 缓存键格式: system_config:{tenantId}:{configKey}
  • 默认TTL: 1小时
  • 配置更新时自动清除缓存

集成点修改

  • MiniAuthService: 从系统配置获取微信小程序AppID和Secret
  • PaymentService: 从系统配置获取微信支付商户配置
  • PhoneDecrypt: 使用租户特定的配置参数

管理后台界面

  • 基于现有UI模式创建系统配置管理页面
  • 支持按租户筛选和配置管理
  • 提供配置项的增删改查功能

Validation Checklist

Scope Validation

  • Epic可以在4个故事内完成
  • 不需要架构文档
  • 增强遵循现有模式
  • 集成复杂度可控

Risk Assessment

  • 对现有系统风险较低
  • 回滚计划可行
  • 测试方法覆盖现有功能
  • 团队对集成点有足够了解

Completeness Check

  • Epic目标清晰可实现
  • 故事范围适当
  • 成功标准可衡量
  • 依赖项已识别

Story Manager Handoff:

"请为这个棕地史诗开发详细的用户故事。关键考虑因素:

  • 这是对运行TypeORM + PostgreSQL + Hono + Redis的现有系统的增强
  • 集成点:认证模块的MiniAuthService、支付模块的PaymentService、Redis缓存
  • 要遵循的现有模式:文件模块的CRUD模式、多租户实体模式
  • 关键兼容性要求:现有API保持不变,数据库schema向后兼容
  • 每个故事必须包括验证现有功能保持完整的验证

该史诗应在保持系统完整性的同时交付多租户系统配置管理功能。"