feat: add production readiness checks

This commit is contained in:
Codex
2026-06-29 10:34:12 +08:00
parent d89f77e9af
commit e587a0c955
10 changed files with 564 additions and 32 deletions

View File

@@ -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` 管线。

View File

@@ -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

View File

@@ -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 推送、资源签名都有幂等和审计。
- 有生产环境变量模板、部署脚本、备份恢复方案、日志告警、错误追踪和基础压测报告。
- 有生产环境变量模板、生产就绪检查脚本、部署脚本、备份恢复方案、日志告警、错误追踪和基础压测报告。

View File

@@ -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 生效。
- 跨租户学生读取题目/订单/资料返回拒绝。
- 销售只能查看自己权限范围内客资。

View File

@@ -56,7 +56,7 @@
- 对题目 JSON、单词、知识手册、分数线、视频走后端 preview/import API 做二次验证。
4. 部署配置
- 整理生产 `.env` 模板。
- 生产 `.env` 模板`npm run readiness:production` / `npm run readiness:production:db` 已补,后续上云必须作为验收 gate
- 确认数据库迁移流程、备份恢复、日志、告警。
- 准备 API 容器部署和 Supabase 云端/自托管连接方案。