feat: 实现管理后台 A3 注册群消息概览与 metrics 门禁
This commit is contained in:
+48
-3
@@ -645,9 +645,54 @@
|
||||
- 备选方案:扩展 locks 接口。
|
||||
- 影响:仅 IP 档锁定时列表可能仍显示未锁定,但 unlock 可解除。
|
||||
|
||||
4. **仍未挂载到 `cmd/nixmsg`**
|
||||
- 同 A1:可挂载 Handler;接线与 `KickEndpoint` 注入留给总控/后续。
|
||||
- 影响:集成测试需自行挂载 Handler。
|
||||
4. **A2 时未挂载到 `cmd/nixmsg`;L-WIRE / A3 已接线**
|
||||
- A2 当时:可挂载 Handler;接线与 `KickEndpoint` 注入留给总控。
|
||||
- 现状:`serve` 已挂载 Admin Handler;A3 起注入 `Groups`/`Config`/`Version`/`KickEndpoint`。
|
||||
- 影响:无。
|
||||
|
||||
### A3 2026-09-30
|
||||
|
||||
1. **概览增加 `endpoints_self`(自助注册数)**
|
||||
- 原条款:PRD F17「端数量(其中自助注册的数量)」;`admin-api.md` 示例未列该字段。
|
||||
- 实际做法:`GET /api/admin/overview` 同时返回契约字段与 `endpoints_self`(`source='self'` 计数)。
|
||||
- 原因:以 PRD / 本任务说明为准补齐。
|
||||
- 备选方案:只返回 api 文档字段,自助数由前端筛端列表。
|
||||
- 影响:W 线可选用该字段;旧 mock 类型可增补。
|
||||
|
||||
2. **群列表/详情直接读库;变更走 `group.Service`**
|
||||
- 原条款:群操作调用 `internal/app/group` 已有方法。
|
||||
- 实际做法:创建/加人用 `AdminCreate`/`AdminAddMembers`;改名/解散/移除/转让先查群主再以群主为 actor 调 `Rename`/`Dissolve`/`Remove`/`Transfer`。列表与详情(含 `joined_at_ms`)因 `List`/`Get` 按成员可见且 Get 无 joined_at,改为管理侧 SQL。
|
||||
- 原因:端协议 API 按成员视角,后台需全局列表。
|
||||
- 备选方案:在 group 包增加 AdminList/AdminGet。
|
||||
- 影响:列表不依赖 Groups 注入;写操作未注入 Groups 时返回 `503 busy`。
|
||||
|
||||
3. **后台建群不接受自定义 `id`**
|
||||
- 原条款:admin-api「id 留空则生成」。
|
||||
- 实际做法:`AdminCreate` 无自定义 id 参数;请求带非空 id 返回 `400`。
|
||||
- 原因:不改身份线接口签名。
|
||||
- 备选方案:扩展 `AdminCreate` 接受可选 id。
|
||||
- 影响:后台只能服务器生成群编号。
|
||||
|
||||
4. **`/metrics` 门禁抽到 `internal/httpx.MetricsGate`**
|
||||
- 原条款:A 线负责 metrics 访问规则(DEVELOPMENT 4.3)。
|
||||
- 实际做法:规则实现放 `httpx.MetricsGate`;`listener.NewMux` RoleShared 调用之(N 目录一行替换)。单独后台监听仍直接挂 Handler 不鉴权。
|
||||
- 原因:A 负责目录是 `admin`+`httpx`;listener 仅接线。
|
||||
- 备选方案:门禁留在 listener。
|
||||
- 影响:`serve` 已传 `MetricsToken`;共用端口无令牌 404、错令牌 401。
|
||||
|
||||
5. **注册安全码写入审计不含明文**
|
||||
- 原条款:安全码明文返回已登录管理员,不写日志。
|
||||
- 实际做法:GET/PUT 响应含 `code`;`admin_audit` 的 object 为空,不记安全码。存库键 `registration_enabled`=`1`/`0`,与 I1 一致。
|
||||
- 原因:D14 / DEVELOPMENT 12 节。
|
||||
- 备选:无。
|
||||
- 影响:无。
|
||||
|
||||
6. **消息查询不碰 `message_bodies`**
|
||||
- 原条款:只读 messages 与 deliveries;响应无正文。
|
||||
- 实际做法:SELECT 不含 `body`/`body_enc` 以外的正文列(messages 仍有 `body_enc` 列但查询不选它);不 JOIN `message_bodies`。
|
||||
- 原因:任务硬性要求。
|
||||
- 备选:无。
|
||||
- 影响:无。
|
||||
|
||||
## 后台网页 W
|
||||
|
||||
|
||||
Reference in New Issue
Block a user