Files
patbond-doc/docs/development/iterations/iteration-3/14-wave1-closure.md
T
lixi f17e6f1215
CI / docs-build (push) Successful in 34s
docs: M3 第一波收口——报告 09~14 与契约草案入档挂导航
- 09 V5+community 骨架(191→206)、10 埋点队列三项(272→286)、
  11 契约草案(13 路径/19 操作)、12 防泄漏三仓落地、
  13 media MinIO 闭环 + auth 契约测试(→226,抓修 1 漂移)、14 收口总表
- backend-modules.md 更新五模块/六容器口径
- 媒体凭据形态已定型(契约冻结输入),剩余待定型点在 T3-04/05

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 17:13:49 +08:00

31 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 14 M3 第一波收口:地基、媒体闭环与防泄漏
**执行日期**:2026-09-08
**交付**:V5 迁移 + community 骨架、MinIO 媒体最小闭环、埋点队列加固、契约草案、凭证防泄漏三仓、auth 契约测试补齐
---
## 0. 概要
| 工单 | 交付 | 提交 | 测试 |
|------|------|------|------|
| T3-01 V5 迁移 | community 8 表 + pg_trgm,剪 2 条跨 schema FKM4/M5 补回) | api dev@a97814a | 191→199 |
| T3-02 community 骨架 | :8084 五容器、骨架期即接 RS256 校验 | api dev@3c671fc | →206 |
| T3-03 media 闭环 | MinIO 适配层 + 两步上传 + 私有桶签名读(ADR-016/017 | api dev@10a43f8 | →218 |
| T3-19 auth 契约测试 | 6 操作 19 单元格全矩阵,抓修 1 真实漂移(reason NON_NULL | api dev@263cd88 | →226 |
| T3-19 队列三项 | 30s 定时冲刷 + 指数退避 + anonymousId 持久化 | flutter dev@4d40c38 | 272→286 |
| T3-10 起草态 | community/media 契约草案 13 路径/19 操作 + 4 待定型点 | 草案在 iteration-3/ | — |
| ADR-021 防泄漏 | 9 规则两层检查三仓落地,零误报 + 拦截自测全命中 | api@8330885 flutter@66f983d doc@8e1fe2f | CI 全绿 |
**波末状态**:patbond-api 226 测试 / patbond-flutter 286 测试全绿;compose 六容器(postgres+minio+auth+user+pet+community)实测健康;三仓 CI 绿。
## 1. 契约冻结输入已定型(T3-03 部分)
媒体凭据形态:创建上传返回 `{assetId, uploadUrl(预签名 PUT), method, requiredHeaders, expiresAt(10min)}`;读取一律私有桶预签名 GET1h TTL);purpose=post_image、mime 白名单 jpeg/png/webp、单文件 10 MiB。与草案偏差 7 项见 13 号报告 §4。剩余待定型:Feed 卡片字段与公开资料形态(T3-05)、权限/错误语义(T3-04)。
## 2. 遗留与下波
- uploading 超时清理:方案已记录(13 号报告),定时任务另排。
- 401 去 Authorization 重试、429 Retry-After 精细分支:待后端限流(10 号报告记录)。
- **第二波**:T3-04 帖子生命周期 → T3-05 Feed → T3-06/07 评论互动 → 契约冻结闸门;D3-9 方案 B 的 /internal 批量公开资料接口随 T3-05 落地。