mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 18:10:30 +08:00
ce49fe143c
Made-with: Cursor
70 lines
3.6 KiB
Markdown
70 lines
3.6 KiB
Markdown
# I6 收口执行包(UAT 门禁、冻结清单、运维)
|
||
|
||
> **定位**:在 [I5_I6_DESIGN.md](./I5_I6_DESIGN.md) **Part B** 规划基础上,把 **I6 周可执行项** 收束为检查表与环境矩阵。
|
||
> **前置**:I5 代码路径已合入 `develop`(Callback Inbox、内部投递、Webhook 转发、集成只读 API、前端路由)。
|
||
> **实现对照审核**:[I6_IMPLEMENTATION_REVIEW.md](./I6_IMPLEMENTATION_REVIEW.md)。
|
||
|
||
---
|
||
|
||
## 1. 架构师任务(I6 周入口)
|
||
|
||
| 次序 | 产出 | 责任 |
|
||
|------|------|------|
|
||
| 1 | 本文件 + Runbook §10 运维段落 | 架构 / Tech Lead |
|
||
| 2 | 后端:安全响应头、配置与观测无回归 | 后端 |
|
||
| 3 | 前端:`VITE_API_BASE`、首页 UAT 导航、构建说明 | 前端 |
|
||
| 4 | [I6_IMPLEMENTATION_REVIEW.md](./I6_IMPLEMENTATION_REVIEW.md) 关闭 I1–I6 偏差项 | 架构审核 |
|
||
|
||
---
|
||
|
||
## 2. UAT 门禁(P0 场景)
|
||
|
||
> 与 [轨道 B §2 I6](../tracks/02-frontend-platform-ui.md)「BP-01~06+11」一致;以下按 **本工作区已实现能力** 细化。
|
||
|
||
| # | 场景 | 预期 | 备注 |
|
||
|---|------|------|------|
|
||
| U1 | 登录 JWT | `admin/admin` 登录后访问受保护路由 | I1 |
|
||
| U2 | 客户 → 项目 | CRUD 与列表 | I2 |
|
||
| U3 | 合同 | 创建、行项、状态迁移合法/非法 | I3 |
|
||
| U4 | 交付批次 → 许可 SN | 创建、详情、状态 | I4 |
|
||
| U5 | Callback 全链 | Webhook 收据后转发 → 平台 Inbox 一行;UI 列表/详情、状态 PATCH、可选 link | I5;需配置内部 Token 与 base-url |
|
||
| U6 | 集成只读 | 环境/产品线列表与详情 | I5 |
|
||
| U7 | 重复幂等 | 同 `Idempotency-Key` / 同 `externalMessageId` 不重复插入;内部 API 返回 `duplicate: true` | I5 |
|
||
| U8 | 401 统一 | Token 失效回登录带 redirect | I1 |
|
||
|
||
**UAT 退出条件**:上表 **无 P0 缺陷**;已知 P1/P2 记入工单或 [I6_IMPLEMENTATION_REVIEW.md](./I6_IMPLEMENTATION_REVIEW.md) 「已知局限」。
|
||
|
||
---
|
||
|
||
## 3. 冻结清单(I6 末)
|
||
|
||
| 项 | 动作 |
|
||
|----|------|
|
||
| **OpenAPI** | `contracts/openapi/delivery-platform-api.json` 与 `OpenApiContractSnapshotTest` 一致;打 tag 可追溯 |
|
||
| **两枚 Fat JAR** | `delivery-platform-api`、`license-webhook-ingress` 版本与镜像标签写入发布说明 |
|
||
| **前端** | 生产构建使用明确 `VITE_API_BASE`(见 §4) |
|
||
| **SDK(本仓)** | 定版 tag、`CHANGELOG`、[轨道 C](../tracks/03-client-sdk.md) **兼容矩阵** 填齐;**I6 周内禁止 MAJOR Schema**(与设计一致) |
|
||
| **内部 Token** | 平台 `PLATFORM_INTERNAL_TOKEN` / `CRAFTLABS_PLATFORM_INTERNAL_TOKEN` 与 Webhook `craftlabs.platform.internal.token` **同值**;轮换走 [RUNBOOK §10](../../../services/RUNBOOK.md) |
|
||
| **依赖 / CVE** | PR 合并前 **`ci-security`** 通过:Trivy 扫描 `services/`、`java/`(`CRITICAL`+`HIGH`,仅已修复项见 workflow);`npm audit --audit-level=high`(`web/delivery-platform-ui`)。**Dependabot** 周度提 PR(`.github/dependabot.yml`)。 |
|
||
|
||
---
|
||
|
||
## 4. 前端 `VITE_API_BASE` 环境矩阵
|
||
|
||
| 环境 | 示例 `VITE_API_BASE` | 说明 |
|
||
|------|----------------------|------|
|
||
| 本地开发 | (不设) | Vite 代理 `/api` → `127.0.0.1:8080` |
|
||
| Staging | `https://platform-api.staging.example.com` | 无尾部斜杠;axios 请求 `/api/v1/...` |
|
||
| 生产 | `https://platform-api.example.com` | 同源反代时可设为空,由 Nginx 处理 `/api` |
|
||
|
||
构建:`VITE_API_BASE=https://… npm run build`。详见 `web/delivery-platform-ui/README.md`。
|
||
|
||
---
|
||
|
||
## 5. 修订记录
|
||
|
||
| 日期 | 说明 |
|
||
|------|------|
|
||
| 2026-04-06 | I6 收口执行包初版:UAT 表、冻结清单、VITE 矩阵。 |
|
||
| 2026-04-06 | 冻结清单补充 CI 依赖/CVE 与 Dependabot。 |
|