Files
patbond-doc/docs/development/iterations/iteration-1/index.md
T
lixi 64521bf284 docs: CI 载体上线收官——功能清单/看板/迭代总结同步
- Gitea Actions runner 部署完成(域名注册 + docker.sock 挂载)
- 工作流零 GitHub 依赖(本实例手动克隆 + apt 装 JDK17),ci.yml #6 全绿 3m18s
- 第一迭代所有工程化项闭环
- 门禁:mkdocs build --strict 通过
2026-09-04 18:18:26 +08:00

5.7 KiB
Raw Blame History

第一迭代进展看板

目标:真实登录纵切(注册 → 登录 → 获取当前用户 → 退出),依据开发实施计划第 8 节。 更新日期:2026-09-04(第一迭代收官)。本页是团队共享的进度事实来源,每波工作交付后更新。

当前状态一览

状态 内容
第一迭代已完成 认证纵切两端(JWT + Flutter 登录)+ 真机联调 E2E + 埋点系统 + Docker Compose 编排 + Git 工作流 + ADR-001~008,后端 82 测试、前端 34 测试
🔜 下一步 M2 宠物健康档案(下一迭代主线);M1 完善项:sessionId 生命周期、页面浏览埋点
⚠️ 遗留 access token 无主动吊销(≤15 分钟窗口)、/internal 为静态密钥、auth_sessions 过期清理默认 30 天、埋点 7 项完善(报告 19 §3 已优先级排序)

已完成(附提交)

第一波:工程基线

  • 后端升级 Spring Boot 3.5.16 / JDK 17,移除 NacosADR-001/002),common 瘦身,Maven Wrapper,测试 0 → 21patbond-api@c7ddaec,报告 07)。
  • Flutter 迁移珊瑚橙主题(ADR-005),新增 5 个认证组件 + 6 个 widget 测试(patbond-flutter@af002ed,报告 08)。
  • ADR-001~005 入档(patbond-doc@ca8cb72,见技术决策记录)。

第二波:持久化纵切

  • Flyway V1 baselineidentity/media)、用户 UUIDv7 持久化到 PostgreSQL、统一异常与错误码透传,测试 21 → 37,全部经 Testcontainers 验证(patbond-api@bd20adc,报告 10)。
  • 独立复核确认第一波声明属实(报告 11);UI 设计 QA + 登录/注册/Splash 组装稿(报告 12);埋点工程规范(报告 13);mkdocs 门禁打通(报告 14);Git 工作流规范入档(patbond-doc@027876a,报告 15)。
  • ADR-006/007/008 入档:测试与交付容器化、部署形态、PostgreSQL 18 基线(Testcontainers 镜像切换 patbond-api@43ab6c5)。

第三波:认证纵切两端交付

  • 后端 T4 + T6apatbond-api@4dc3dcd 及后续 5 提交,报告 16):JWT RS25615m/30d)、refresh 轮换会话(auth_sessions 摘要 + token_family + 重用撤销全族)、多设备并行、登录锁定(42300)、/api/v1 前缀、/internal 共享密钥鉴权、Docker Compose 编排、Gitea CI 工作流、会话清理任务;测试 37 → 75。附带修复两个存量缺陷(Feign 错误解码 + HttpURLConnection 401 读取)。
  • Flutter 登录纵切(patbond-flutter@8d890c0 + da25804 + 845e92f,报告 17):dio 网络层(--dart-define=PATBOND_API_BASE_URL)、单飞 TokenRefresher、secure storage 会话、Splash/登录/注册三页、真实退出、UserProfile.phone 可空修复;测试 7 → 30;契约零偏差;FIX-1/FIX-2/m2 修复。
  • OpenAPI 契约正式化:docs/api/openapi.yaml,真机联调验证 100% 一致。

第四波:收官战(E2E + 埋点)

  • 真机联调 E2E(报告 18):compose 三容器(postgres:18 + auth + user)启动成功,烟囱测试 7/7 全绿(注册 → me → 刷新 → 退出 → 锁定),契约偏差 0 个,验收证据齐全(对照审计 M1),Flutter 门禁全绿。
  • 埋点系统落地(patbond-api@6d47c5a + patbond-flutter@60d67a3,报告 19):后端 /api/v1/events 批量端点 + Flyway V2 product_events 表(测试 75 → 82);前端 lib/analytics/ 模块 + 3 个挂接点(登录/注册/退出,测试 30 → 34);7 项完善留 M1/M2(报告 19 §3 已优先级排序)。

第一迭代交付总结

测试数演进

  • 后端:0 → 21 → 37 → 73 → 75 → 82
  • 前端:0 → 7 → 30 → 34

功能里程碑

  • 认证流程:注册 / 登录 / me / refresh 轮换 / 退出 / 多设备并行 / 登录锁定,全链路测试通过
  • 基础设施:Flyway 迁移(V1 identity/media + V2 product_events)、UUID 持久化、统一异常、Docker Compose 编排、Gitea Actions CI 已上线
  • 客户端:珊瑚橙主题、5 个认证组件、登录/注册/Splash 页、网络层与 token 管理、埋点模块(3 挂接点)
  • 契约与文档:OpenAPI 正式化(真机验证 100% 一致)、ADR-001~008、Git 工作流规范、功能清单、19 份过程报告

验收状态(对照审计 M1):

  • ✓ 后端集成测试 82 个(Testcontainers postgres:18
  • ✓ 前端 widget 测试 34 个
  • ✓ 真机 E2E 烟囱测试 7/7 通过
  • ✓ OpenAPI 契约冻结且验证一致
  • ✓ 数据库迁移可执行且可回滚

遗留与下一步

  • M1 完善项:埋点 sessionId 生命周期 / 页面浏览埋点 / Gitea CI runner 启用(已完成)
  • M2 主线:宠物健康档案(health_record_action 埋点挂接点、档案 CRUD、照片管理)
  • 后端长期项:access token 黑名单策略、/internal 改 mTLS、清理任务调优

环境与构建(新成员必读)

  • 后端构建:JAVA_HOME=/usr/lib/jvm/java-17-openjdk ./mvnw clean test(本机默认 JDK 版本过高,必须显式指 17;需 Docker 供 Testcontainers 起 postgres:18,见 ADR-008)。
  • Flutter 门禁:dart format --output=none --set-exit-if-changed lib test / flutter analyze / flutter test
  • 文档门禁:mkdocs build --strict
  • 测试数据库策略见 ADR-006:自动化测试一律 Testcontainers,个人手动联调用本机 PostgreSQL(环境变量注入连接信息)。

报告目录

01-06 为开工前六角色分析(任务分解/技术评估/现状核实/UI 规范/埋点规划/质量审计),07-08 第一波交付,09-15 第二波交付与复核。文件名编号即时间顺序,各报告首节均有摘要。