feat: link formal launch materials to file center

This commit is contained in:
2026-05-13 22:24:19 +08:00
parent 1da8acf9a4
commit 2fb0fcc650
15 changed files with 409 additions and 7 deletions
@@ -969,3 +969,52 @@
- `review_rules` 仍缺 publish / unpublish / rollback
- `knowledge_bases` 仍缺 publish / unpublish / rollback
- 正式生产放行层面仍然继续阻塞在真实人工复核和最终批准签署
## 2026-05-13 GOV-INT-003 正式生产资料包与文件中心基础打通
### 本轮完成项
- 已补强文件中心底座:
- `FileRepository` 新增按 `file_hash + file_name + file_type` 复用文件资产的能力
- `FileService` 新增 `ensure_file_record_from_path(...)`,可把仓库内现有资料文件按路径纳入文件中心,而不是每次导入都重复创建
- `uploaded_by` 现在在系统导入场景下支持从 `id / username / display_name / system` 回退,避免 formal-launch 脚本导入时出现 `files.uploaded_by` 为空
- 已把 formal-launch 的生产资料导入链打通到文件中心:
- `production_material` 资产导入时会为 `file_path` 创建/复用文件资产,并把 `source_file_id` 写入治理资产 `metadata`
- `material_signoff` 的本地 evidence 文件会尝试写入文件中心,并把 `file_id` 写入治理证据
- 已补强 reviewer 分配脚本:
- `scripts/apply-formal-launch-reviewer-assignment-matrix.ps1 -Apply` 现在会自动补齐 7 份 `project-docs/formal-launch-ops/signoff/evidence/*.md` 生产资料签收证据模板
- 这些模板会预填 `signer_name` 和 `planned_due_date`,但继续保持 `EVIDENCE_STATUS: TEMPLATE`
- 已补强治理资产详情页:
- `production_material` 资产现在可直接跳到文件中心查看 `source_file_id`
- 证据记录如已绑定 `file_id`,也可直接从治理资产页跳到 `/files?highlight=...`
### 本轮验证
- 后端测试:
- `python -m unittest tests.test_governance_service tests.test_governance_api tests.test_files_api`
- 结果:`22 tests OK`
- 后端编译:
- `python -m py_compile backend/app/services/governance_service.py backend/app/services/file_service.py backend/app/repositories/file_repository.py`
- 结果:通过
- 前端检查:
- `npm --prefix frontend run lint`
- 结果:通过
- `npm --prefix frontend run build`
- 结果:通过
- 远程真相源验收(通过 SSH 隧道连接远程 PostgreSQL + MinIO):
- `FORMAL_LAUNCH_GOVERNANCE_DB_IMPORT_PASS`
- 产物:`project-docs/qa-artifacts/formal-launch-governance-db-import/2026-05-13T22-20-20-293/`
- 验证结果:
- `production_material / MAT-USER-AGREEMENT-001` 已存在 `source_file_id`
- 其最新本地 signoff evidence 已存在带 `file_id` 的 `template` 证据记录
### 当前状态更新
- `GOV-INT-003` 已从 `PLANNED` 推进到 `IN_PROGRESS`
- 正式生产资料不再只是 docs 文件路径:
- 至少生产资料主文件已可进入文件中心并绑定治理资产
- 生产资料签收证据模板也已具备文件中心绑定能力
- 当前本机仍无法直连 `192.168.3.90:9000`,但通过 SSH 隧道可以完成远程验收;这更像本机到对象存储端口的网络可达性问题,不是生产 MinIO 不可用
### 当前阻塞项
- `GOV-INT-003` 仍未完全结束:
- 文件中心里的“版本视角”仍较基础,后续还可继续增强生产资料版本链可见性
- 真实 reviewer 仍需把这些生产资料证据从 `TEMPLATE` 改成 `READY`
- 正式生产放行继续阻塞在真人复核和最终批准签署
@@ -20,5 +20,5 @@ batch,priority,area,task_id,title,current_gap,target_deliverable,depends_on,acce
5C,P1,frontend,GOV-WEB-005,新增台账导入与同步页,当前 CSV 导入完全依赖脚本,新增导入中心页面支持预览导入差异和执行导入,GOV-API-006,管理员可在Web端完成台账同步,COMPLETED
5D,P0,integration,GOV-INT-001,实现现有 formal-launch 台账到数据库的首轮回填,当前历史台账和协作包仍是仓库真相源,编写一次性 backfill 脚本和映射规则,GOV-API-006,数据库中出现与当前 CSV 对齐的治理资产和复核任务,IMPLEMENTED_VALIDATED
5D,P0,integration,GOV-INT-002,门禁脚本增加数据库读模式,当前上线门禁只读 project-docs CSV 和 md,为 run-formal-launch-approval-gate.ps1 增加优先读数据库的模式,GOV-DB-005;GOV-API-005;GOV-INT-001,门禁可同时校验系统内治理状态和历史兼容输入,IMPLEMENTED_VALIDATED
5D,P1,integration,GOV-INT-003,正式上线资料包与文件中心打通,当前用户协议隐私政策免责声明等资料只存在 docs,将生产资料包纳入系统文件中心并绑定治理资产,GOV-DB-001;GOV-API-004,资料包可在系统内查看版本和签署状态,PLANNED
5D,P1,integration,GOV-INT-003,正式上线资料包与文件中心打通,当前用户协议隐私政策免责声明等资料只存在 docs,将生产资料包纳入系统文件中心并绑定治理资产,GOV-DB-001;GOV-API-004,资料包可在系统内查看版本和签署状态,IN_PROGRESS
5D,P1,integration,GOV-INT-004,权限与审计补齐,当前治理动作权限模型不完整,为治理域增加权限点和审计事件定义,GOV-API-002;GOV-API-003;GOV-API-004;GOV-API-005,所有治理关键动作都可审计可追责,PLANNED
1 batch priority area task_id title current_gap target_deliverable depends_on acceptance status
20 5C P1 frontend GOV-WEB-005 新增台账导入与同步页 当前 CSV 导入完全依赖脚本 新增导入中心页面支持预览导入差异和执行导入 GOV-API-006 管理员可在Web端完成台账同步 COMPLETED
21 5D P0 integration GOV-INT-001 实现现有 formal-launch 台账到数据库的首轮回填 当前历史台账和协作包仍是仓库真相源 编写一次性 backfill 脚本和映射规则 GOV-API-006 数据库中出现与当前 CSV 对齐的治理资产和复核任务 IMPLEMENTED_VALIDATED
22 5D P0 integration GOV-INT-002 门禁脚本增加数据库读模式 当前上线门禁只读 project-docs CSV 和 md 为 run-formal-launch-approval-gate.ps1 增加优先读数据库的模式 GOV-DB-005;GOV-API-005;GOV-INT-001 门禁可同时校验系统内治理状态和历史兼容输入 IMPLEMENTED_VALIDATED
23 5D P1 integration GOV-INT-003 正式上线资料包与文件中心打通 当前用户协议隐私政策免责声明等资料只存在 docs 将生产资料包纳入系统文件中心并绑定治理资产 GOV-DB-001;GOV-API-004 资料包可在系统内查看版本和签署状态 PLANNED IN_PROGRESS
24 5D P1 integration GOV-INT-004 权限与审计补齐 当前治理动作权限模型不完整 为治理域增加权限点和审计事件定义 GOV-API-002;GOV-API-003;GOV-API-004;GOV-API-005 所有治理关键动作都可审计可追责 PLANNED
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-ADMIN-RUNBOOK-001
- material_name: 管理员上线操作手册
- signer_name: 诗融
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-AI-DISCLAIMER-001
- material_name: AI输出免责声明
- signer_name: 陈钰麒
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-CUSTOMER-ONBOARDING-001
- material_name: 客户上线核对表
- signer_name: 诗融
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-LEGAL-REVIEW-SOP-001
- material_name: 法务复核SOP
- signer_name: 陈钰麒
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-PRIVACY-POLICY-001
- material_name: 隐私政策草案
- signer_name: 陈钰麒
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-SUPPORT-SOP-001
- material_name: 客服与故障响应SOP
- signer_name: 诗融
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.
@@ -0,0 +1,22 @@
# Formal Launch Material Signoff Evidence
EVIDENCE_STATUS: TEMPLATE
- material_id: MAT-USER-AGREEMENT-001
- material_name: 用户协议草案
- signer_name: 陈钰麒
- planned_due_date: 20271221
- signoff_date: TODO_YYYY-MM-DD
- signoff_result: TODO_APPROVED_OR_REJECTED
## Review Basis
TODO_REAL_REVIEWER: record the business, legal, or operations basis for signing off this material.
## Required Changes
TODO_REAL_REVIEWER: list required changes, or write none.
## Final Decision
TODO_REAL_REVIEWER: replace EVIDENCE_STATUS with READY only after the real signer confirms this material.