forked from wangziqi/gongxue-base
feat: add production readiness checks
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
|
||||
下一步优先级:
|
||||
|
||||
1. 先按 `docs/refactor/multitenant-auth-security-contract.md` 的 P0 清单补齐鉴权、生产配置和租户隔离测试。
|
||||
1. 先按 `docs/refactor/multitenant-auth-security-contract.md` 的 P0 清单补齐鉴权、生产配置和租户隔离测试,并在上云前运行 `npm run readiness:production` / `npm run readiness:production:db`。
|
||||
2. 新建 `apps/taro`,按 `docs/refactor/taro-frontend-integration.md` 优先接租户解析、首页、题库练习、背单词、知识手册、个人中心。
|
||||
3. 导出 PocketBase 真实数据到 `pb_export/*.json`,执行 `npm run pb:import:json` 和 `npm run pb:import:validate`。
|
||||
4. 为对象存储、分数线、视频、Excel/CSV 补齐 provider/导入能力,并复用 `content_import_jobs` 管线。
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
| RLS/租户隔离 | 可联调 | 表层普遍有 `tenant_id` 和 RLS 策略;API 已支持 `tk_` 迁移 session 与 Supabase Auth JWT 双入口,并覆盖跨租户/伪造身份集成测试;生产前继续补真实云端 JWT/RLS 回归 |
|
||||
| API 分层 | 可联调 | `apps/api/src/core` + `apps/api/src/features/*` |
|
||||
| Docker API | 可联调 | `docker-compose.api.yml` 和 `apps/api/Dockerfile` 可用 |
|
||||
| 测试 | 可联调 | `npm run check:refactor` 覆盖 TS 检查、导入校验、seed、API 集成测试;排行榜已覆盖四类指标、班级范围和跨租户拒绝 |
|
||||
| 测试 | 可联调 | `npm run check:refactor` 覆盖 TS 检查、导入校验、生产 readiness 脚本测试、seed、API 集成测试;排行榜已覆盖四类指标、班级范围和跨租户拒绝 |
|
||||
| 根 workspace | 可联调 | 根目录已清理为新技术栈 monorepo 编排层 |
|
||||
|
||||
## 租户与品牌
|
||||
@@ -178,6 +178,7 @@
|
||||
npx supabase db reset
|
||||
npm audit --audit-level=high
|
||||
npm run check:refactor
|
||||
npm run test:readiness
|
||||
npm run test:worker:imports
|
||||
npm run test:worker:crm
|
||||
npm run test:worker:commerce
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
- 生产鉴权:API 已支持 Supabase Auth JWT;继续做真实云端 Auth/JWKS 回归、RLS 深测,并在生产关闭 `x-user-id` 与 `x-platform-admin-key` 兼容入口。
|
||||
- 对象存储:上传/下载签名已接入阿里云 OSS、腾讯云 COS、Supabase Storage;上传确认、PDF/图片预览签名和 assets worker 复检已完成,继续补 PDF 渲染、视频播放防盗链、杀毒扫描和水印。
|
||||
- 真实数据 dry-run:导出 PocketBase 用户、题库、单词、知识手册、分数线、订单、权益,跑迁移和校验报告。
|
||||
- 生产环境配置:补 `.env` 模板、数据库迁移流程、备份恢复、日志、告警和 API 容器部署说明。
|
||||
- 生产环境配置:`.env.example` 和 `npm run readiness:production` / `npm run readiness:production:db` 已补;继续补数据库迁移流程、备份恢复、日志、告警和 API 容器部署说明。
|
||||
- Taro scaffold:建立 `apps/taro`,先完成租户解析、首页、题库、背单词、知识手册、个人中心主链路。
|
||||
|
||||
### P1:商用收费和运营能力
|
||||
@@ -113,4 +113,4 @@
|
||||
|
||||
- JWT/RLS、短信、登录、支付、对象存储、CRM webhook 都使用真实 provider 或生产可用 adapter。
|
||||
- 支付 webhook、导入任务、CRM 推送、资源签名都有幂等和审计。
|
||||
- 有生产环境变量模板、部署脚本、备份恢复方案、日志告警、错误追踪和基础压测报告。
|
||||
- 有生产环境变量模板、生产就绪检查脚本、部署脚本、备份恢复方案、日志告警、错误追踪和基础压测报告。
|
||||
|
||||
@@ -65,6 +65,7 @@ Supabase 官方允许前端用 Data API 访问数据,但前提是 RLS、最小
|
||||
- 禁止 `AUTH_SMS_PROVIDER=mock`。
|
||||
- 禁止 `ALLOW_LEGACY_AUTH_HEADERS=true`。
|
||||
- 禁止 `ALLOW_PLATFORM_ADMIN_KEY=true`。
|
||||
- 上云前必须运行 `npm run readiness:production`;连接生产数据库后再运行 `npm run readiness:production:db`。
|
||||
|
||||
5. 请求体大小限制
|
||||
- 普通 JSON API 必须有默认上限。
|
||||
@@ -172,6 +173,8 @@ provider event id 幂等
|
||||
|
||||
- `npm audit` 为 0 高危/严重漏洞。
|
||||
- `npm run check:refactor` 通过。
|
||||
- `npm run readiness:production` 没有 blocker。
|
||||
- `npm run readiness:production:db` 没有 blocker。
|
||||
- 生产环境启动时默认密钥 fail-fast 生效。
|
||||
- 跨租户学生读取题目/订单/资料返回拒绝。
|
||||
- 销售只能查看自己权限范围内客资。
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
- 对题目 JSON、单词、知识手册、分数线、视频走后端 preview/import API 做二次验证。
|
||||
|
||||
4. 部署配置
|
||||
- 整理生产 `.env` 模板。
|
||||
- 生产 `.env` 模板和 `npm run readiness:production` / `npm run readiness:production:db` 已补,后续上云必须作为验收 gate。
|
||||
- 确认数据库迁移流程、备份恢复、日志、告警。
|
||||
- 准备 API 容器部署和 Supabase 云端/自托管连接方案。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user