新增代理注册申请管理
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m41s

This commit is contained in:
2026-09-21 16:51:37 +08:00
parent b063617153
commit 4a16eb0b1e
22 changed files with 927 additions and 179 deletions

View File

@@ -0,0 +1,32 @@
# `add-agent-registration-management` 集成验证阻塞证据
日期2026-09-21
## 部署可达性
- 当前工作分支:`Iteration/8-11`;本地 `HEAD=b0636171530df2cbd468c0f6e25091049ad9aeb1`
- `git ls-remote origin refs/heads/Iteration/8-11` 返回同一 SHA说明当前未提交 Change 工作区没有进入远端分支。
- `.gitea/workflows/deploy.yaml` 仅由 `push``Iteration/8-11` 触发;本次按用户要求不提交、不推送。
- 对 Gitea API `POST https://git.boss160.cn/api/v1/repos/csxj2026/junhong_cmp_fiber/actions/workflows/deploy.yaml/dispatches` 的未认证探测返回 `HTTP/2 401``{"message":"token is required","url":"https://git.boss160.cn/api/swagger"}`。环境未提供 Gitea token不绕过既有工作流。
- `cmp-test` SSH 别名可达(`cmp-test -> qycard001@47.111.166.169:52022`),允许读取状态/日志。容器实际为:
- API`registry.boss160.cn/junhong/cmp-fiber-api:b0636171530df2cbd468c0f6e25091049ad9aeb1`health=`healthy`
- Worker`registry.boss160.cn/junhong/cmp-fiber-worker:b0636171530df2cbd468c0f6e25091049ad9aeb1`running=`true`
- 容器环境确认 PostgreSQL `junhong_cmp_test``cxd.whcxd.cn:16159`)和 Redis DB 6`cxd.whcxd.cn:16299`)。
- 测试 API 在 `cmp-test` 容器内 `curl http://127.0.0.1:3000/health` 返回 `HTTP/1.1 200 OK`;外部未提供测试 API 地址,未冒充本地/外部 API 可达。
- 当前部署 SHA 为 `b063617...`,等于远端基线 SHA未包含本地未提交的注册管理 Change因此目标路由验证返回 `HTTP/1.1 404 Not Found`
## 受控 fixture
- 使用临时 GORM 工具 `cmd/agent_registration_fixture_tmp/main.go`,只连接显式 `DB_*``junhong_cmp_test`,未使用 psqldbhub MCP 仅做只读诊断。
- 唯一前缀:`ARM260921`。创建了 5 个店铺、6 个账号、6 条注册记录、6 个审批实例和 6 个企微上下文;包含直属、深层、其他店铺、停用上级、终态与提交异常状态。
- 首次 setup 因测试 fingerprint 超过 `char(64)` 约束回滚,未留下记录;修正为 `arm260921fixture-fingerprint` 后创建成功IDs 记录在 `/tmp/ARM260921-setup.txt`
- 已执行受控 cleanup仅按 `ARM260921` 的注册/店铺/账号及关联审批实例/企微上下文删除;未重置数据库,未操作其他记录。清理输出:`cleanup complete for ARM260921`
## API 尝试边界
- 在部署基线容器上以 fixture 账号尝试登录:`ARM260921-super` 返回 `code=1040 用户名或密码错误`(该账号由本地 Change fixture 创建,但容器运行的是基线代码;数据库账号密码本身可由部署 API 按登录查询)。
- 直接访问目标路由无 token 返回 `401 code=1002`;带从成功登录获得的现有 fixture token 访问目标路由返回 `404 code=1006 资源未找到`,证明当前部署未装载目标 Change 路由,而非权限断言。
## 结论
工作流可访问但不可触发Gitea API 需要未提供的 token按用户要求不能提交/推送,故无法把当前 Change 部署到 `cmp-test`。当前已部署版本健康可达但不包含 Change。5.15.4 未勾选、未把基线 404/fixture DB 事实冒充端到端验证。

View File

@@ -4085,6 +4085,33 @@
],
"classification": "behavior"
},
{
"entry_type": "http",
"entry": "GET /api/admin/agent-distribution-registrations",
"capability": "agent-distribution-withdrawal",
"requirements": [
"agent-distribution-withdrawal::代理注册申请后台可查询"
],
"classification": "behavior"
},
{
"entry_type": "http",
"entry": "GET /api/admin/agent-distribution-registrations/{id}",
"capability": "agent-distribution-withdrawal",
"requirements": [
"agent-distribution-withdrawal::代理注册申请后台可查询"
],
"classification": "behavior"
},
{
"entry_type": "http",
"entry": "POST /api/admin/agent-distribution-registrations/{id}/recover-approval",
"capability": "agent-distribution-withdrawal",
"requirements": [
"agent-distribution-withdrawal::代理注册原审批可受控恢复"
],
"classification": "behavior"
},
{
"entry_type": "http",
"entry": "POST /api/admin/shops/{shop_id}/withdrawal-qualifications",

View File

@@ -3145,6 +3145,55 @@
"exit_status": 0
}
},
{
"capability": "agent-distribution-withdrawal",
"requirement": "代理注册申请后台可查询",
"spec": "openspec/specs/agent-distribution-withdrawal/spec.md",
"entries": [
"GET /api/admin/agent-distribution-registrations",
"GET /api/admin/agent-distribution-registrations/{id}"
],
"handler_consumer_job": [
"internal/routes/agent_distribution_registration.go",
"internal/handler/admin/agent_distribution_registration.go"
],
"application_service_query": [
"internal/query/distributionwithdrawal/query.go"
],
"domain_state_amount": [],
"store_migration_config": [],
"verification": {
"command": "grep -n 'agent-distribution-registrations' docs/admin-openapi.yaml",
"literal_output": [
"OpenAPI contains registration list and detail endpoints"
],
"exit_status": 0
}
},
{
"capability": "agent-distribution-withdrawal",
"requirement": "代理注册原审批可受控恢复",
"spec": "openspec/specs/agent-distribution-withdrawal/spec.md",
"entries": [
"POST /api/admin/agent-distribution-registrations/{id}/recover-approval"
],
"handler_consumer_job": [
"internal/routes/agent_distribution_registration.go",
"internal/handler/admin/agent_distribution_registration.go"
],
"application_service_query": [
"internal/application/distributionwithdrawal/registration.go"
],
"domain_state_amount": [],
"store_migration_config": [],
"verification": {
"command": "grep -n 'recover-approval' docs/admin-openapi.yaml",
"literal_output": [
"OpenAPI contains registration approval recovery endpoint"
],
"exit_status": 0
}
},
{
"capability": "agent-distribution-withdrawal",
"requirement": "提现资料资格",