Files
craftlabs-authorization-sdk/docs/engineering/iterations/I6_CLOSEOUT.md
T

3.3 KiB
Raw Blame History

I6 收口执行包(UAT 门禁、冻结清单、运维)

定位:在 I5_I6_DESIGN.md Part B 规划基础上,把 I6 周可执行项 收束为检查表与环境矩阵。
前置I5 代码路径已合入 developCallback Inbox、内部投递、Webhook 转发、集成只读 API、前端路由)。
实现对照审核I6_IMPLEMENTATION_REVIEW.md


1. 架构师任务(I6 周入口)

次序 产出 责任
1 本文件 + Runbook §10 运维段落 架构 / Tech Lead
2 后端:安全响应头、配置与观测无回归 后端
3 前端:VITE_API_BASE、首页 UAT 导航、构建说明 前端
4 I6_IMPLEMENTATION_REVIEW.md 关闭 I1I6 偏差项 架构审核

2. UAT 门禁(P0 场景)

轨道 B §2 I6「BP-0106+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 「已知局限」。


3. 冻结清单(I6 末)

动作
OpenAPI contracts/openapi/delivery-platform-api.jsonOpenApiContractSnapshotTest 一致;打 tag 可追溯
两枚 Fat JAR delivery-platform-apilicense-webhook-ingress 版本与镜像标签写入发布说明
前端 生产构建使用明确 VITE_API_BASE(见 §4
SDK(本仓) 定版 tag、CHANGELOG轨道 C 兼容矩阵 填齐;I6 周内禁止 MAJOR Schema(与设计一致)
内部 Token 平台 PLATFORM_INTERNAL_TOKEN / CRAFTLABS_PLATFORM_INTERNAL_TOKEN 与 Webhook craftlabs.platform.internal.token 同值;轮换走 RUNBOOK §10

4. 前端 VITE_API_BASE 环境矩阵

环境 示例 VITE_API_BASE 说明
本地开发 (不设) Vite 代理 /api127.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 矩阵。