4.8 KiB
4.8 KiB
InsightFlow Phase 8 Task 1 - 多租户 SaaS 架构
开发时间: 2026-02-25
状态: ✅ 已完成
概述
Phase 8 Task 1 实现了 InsightFlow 平台的多租户 SaaS 架构,为商业化运营奠定基础。该架构支持数据隔离、自定义域名、品牌白标和租户级权限管理。
核心功能
1. 租户管理
- 租户创建: 支持 Free/Pro/Enterprise 多层级订阅
- Slug 管理: 自动生成 URL 友好的唯一标识
- 状态管理: pending/active/suspended/trial/expired
- 资源限制: 按层级分配不同的资源配额
2. 自定义域名绑定 (CNAME)
- 域名添加: 支持自定义域名绑定
- 验证机制: DNS TXT 记录验证或文件验证
- SSL 支持: 预留 SSL 证书管理接口
- 主域名设置: 支持设置主域名
3. 品牌白标
- Logo/Favicon: 自定义品牌标识
- 主题色: 主色和次色自定义
- 自定义 CSS: 支持自定义样式
- 自定义 JS: 支持自定义脚本
- 登录页背景: 自定义登录页面
- 动态 CSS 生成: 自动生成品牌 CSS 变量
4. 租户级权限管理
- 角色系统: Owner/Admin/Member/Viewer
- 权限映射: 预定义角色权限
- 成员邀请: 邮件邀请机制
- 邀请接受: 用户接受邀请流程
- 权限检查: 细粒度权限验证
5. 资源使用统计
- 用量记录: 存储、转录、API 调用等
- 统计查询: 按时间范围查询使用量
- 限制检查: 实时检查资源是否超限
- 使用百分比: 计算各项资源使用比例
技术实现
数据库表结构
-- 租户主表
tenants:
- id, name, slug, description
- tier (free/pro/enterprise)
- status, owner_id
- settings, resource_limits, metadata
-- 租户域名表
tenant_domains:
- id, tenant_id, domain
- status, verification_token
- is_primary, ssl_enabled
-- 租户品牌配置表
tenant_branding:
- id, tenant_id
- logo_url, favicon_url
- primary_color, secondary_color
- custom_css, custom_js
-- 租户成员表
tenant_members:
- id, tenant_id, user_id, email
- role, permissions
- status (pending/active)
-- 租户资源使用统计表
tenant_usage:
- id, tenant_id, date
- storage_bytes, transcription_seconds
- api_calls, projects_count
API 端点
租户管理
POST /api/v1/tenants- 创建租户GET /api/v1/tenants- 列出租户GET /api/v1/tenants/{id}- 获取租户详情PUT /api/v1/tenants/{id}- 更新租户DELETE /api/v1/tenants/{id}- 删除租户
域名管理
POST /api/v1/tenants/{id}/domains- 添加域名GET /api/v1/tenants/{id}/domains- 列出域名POST /api/v1/tenants/{id}/domains/{id}/verify- 验证域名DELETE /api/v1/tenants/{id}/domains/{id}- 移除域名
品牌配置
GET /api/v1/tenants/{id}/branding- 获取品牌配置PUT /api/v1/tenants/{id}/branding- 更新品牌配置GET /api/v1/tenants/{id}/branding.css- 获取品牌 CSS(公开)
成员管理
POST /api/v1/tenants/{id}/members- 邀请成员GET /api/v1/tenants/{id}/members- 列出成员PUT /api/v1/tenants/{id}/members/{id}- 更新成员角色DELETE /api/v1/tenants/{id}/members/{id}- 移除成员
使用统计
GET /api/v1/tenants/{id}/usage- 获取使用统计GET /api/v1/tenants/{id}/limits/{type}- 检查资源限制
域名解析
GET /api/v1/resolve-tenant?domain={domain}- 通过域名解析租户
资源限制配置
Free 层级
- 最大项目数: 3
- 存储空间: 100MB
- 转录时长: 60分钟
- API 调用: 100次/天
- 团队成员: 2人
- 实体数: 100
Pro 层级
- 最大项目数: 20
- 存储空间: 1GB
- 转录时长: 600分钟
- API 调用: 10,000次/天
- 团队成员: 10人
- 实体数: 1,000
Enterprise 层级
- 所有资源无限制
测试
运行测试脚本:
cd backend
python3 test_phase8_task1.py
测试覆盖:
- ✅ 租户创建和管理
- ✅ 自定义域名绑定和验证
- ✅ 品牌白标配置
- ✅ 成员邀请和权限管理
- ✅ 资源使用统计
后续工作
- 前端界面: 租户管理面板、域名配置页面、品牌设置
- 域名验证: 实现真实的 DNS 查询和 HTTP 验证
- SSL 证书: 集成 Let's Encrypt 自动签发证书
- 邮件通知: 成员邀请邮件、用量告警邮件
- 订阅集成: 与支付系统对接,自动升级/降级
文件清单
backend/tenant_manager.py- 多租户管理模块 (51KB)backend/schema.sql- 数据库表结构更新backend/main.py- API 端点集成backend/test_phase8_task1.py- 测试脚本
总结
Phase 8 Task 1 成功实现了多租户 SaaS 架构的核心功能,为 InsightFlow 平台的商业化运营奠定了基础。租户隔离、自定义域名、品牌白标和权限管理等功能已完整实现并通过测试。