SaaS 落地进度
按公开 SaaS 标准分步实施,完成后在 [ ] 打 x。
阶段 A — 基础设施与安全(进行中)
- [x] A1 生产环境
PRODUCTION=1时强制 PostgreSQL,禁止静默内存会话 - [x] A2
/api/health返回database状态,生产且 DB 不可用时 HTTP 503 - [x] A3 启动时校验
JWT_SECRET/AUTH_REQUIRED(生产) - [x] A4
CORS_ORIGINS环境变量 - [x] A5 登录/注册/聊天基础限流(单实例内存)
- [x] A6 上传存储抽象
blob_storage(本地实现,S3 预留) - [ ] A7 对象存储 S3/OSS 真实实现 + 迁移脚本
- [ ] A8 多实例限流改 Redis
阶段 B — 产品收口
- [x] B1 正式入口
/family-tree,旧/familytree-test307 重定向 - [x] B2 侧栏与文案「家族树测试」→「家族树」
- [ ] B3 主页家族树录入与
/family-tree流程合并引导 - [ ] B4 塔状树只保留一套实现并写清规则
- [ ] B5 用户 onboarding(首次创建家族)
阶段 C — 合规与运营
- [x] C1 隐私政策、用户协议页面(
/privacy、/terms,注册须勾选同意) - [x] C2 账号数据导出 / 注销删除 API(
GET /api/auth/export、POST /api/auth/delete-account,页面/account) - [ ] C3 落地页 + 定价(若收费)
- [ ] C4 Sentry / 日志 / 告警
阶段 D — 质量
- [ ] D1 CI 集成测试(auth、conversation、familytree)
- [ ] D2 李氏样例流水线回归测试
- [ ] D3 Staging 环境自动部署
云端 .env 推荐(Render / Railway)
PRODUCTION=1
REQUIRE_DATABASE=1
AUTH_REQUIRED=1
JWT_SECRET=<至少32字符随机>
CORS_ORIGINS=https://你的域名.com
DATABASE_URL=<托管PostgreSQL>
HOST=0.0.0.0
# PORT 由平台注入
STORAGE_BACKEND=local
# 待 A7 完成后改为 s3 并配置 bucket
部署后执行一次:
python scripts/init_database.py
本次已完成文件
| 文件 | 说明 |
|---|---|
backend/startup_checks.py |
生产校验、CORS、DB 必连 |
backend/middleware/rate_limit.py |
API 限流 |
backend/services/blob_storage.py |
存储抽象 |
backend/main.py |
lifespan、health、路由 |
backend/memory/session_memory.py |
禁止生产内存回退 |
backend/services/account_data.py |
用户数据导出与账号注销 |
backend/routes/auth.py |
/api/auth/export、/api/auth/delete-account |
frontend/account.html |
账号与数据管理页 |