4.5 KiB
4.5 KiB
业务附件受控入库 V1
Goal
在现有 OA 报销、采购、付款、合同/项目资料链路上建立统一的业务附件治理能力:允许授权人员上传必要原文附件,但附件必须依附具体业务对象,具备状态、敏感级别、附件类型、复核/归档口径和下载审计基础,避免把 OA 误用为网盘或全量资料库。
What I Already Know
- 上游规划任务已确认:OA 不做全量资料原件库,业务必要原文附件可以进入授权业务流程。
- 当前 V0 暂不接 COS,继续使用部署服务器本地存储;后端已有
STORAGE_DRIVER=local/s3存储抽象。 - 现有系统已有报销附件、采购附件、付款回单附件、票据池、合同台账、项目资料和审计日志基础。
- 当前主要缺口是:各业务附件字段不统一、状态/敏感级别/附件类型不足、下载控制和审计口径不一致、合同盖章归档和资料索引口径未统一。
- 脱敏不是一刀切要求;有权限人员可在 OA 业务流程内处理必要原文。脱敏主要用于普通协作、AI/Codex、企业微信消息、自动化报告、外发材料和低权限查看。
Scope
纳入本轮 V1:
- 为已有业务附件模型补齐统一治理字段:状态、敏感级别、附件类型、复核人/时间/意见、归档人/时间、下载原因策略和文件 hash。
- 覆盖已有附件链路的最小后台能力:报销附件、采购附件、付款回单附件。
- 增加通用业务附件常量、校验和状态转换工具,避免各模块散落字符串。
- 增加下载审计记录基础,至少覆盖服务端下载动作和用途/原因字段。
- 在现有详情页或附件组件上展示状态、敏感级别和附件类型;不做大规模视觉重构。
- 保持现有上传可用,不破坏报销/OCR/采购/付款现有流程。
Out Of Scope
暂不纳入本轮:
- 不做全站网盘、自由目录、批量下载、外链分享或对外公开链接。
- 不接 COS,不迁移已有附件文件,不改生产存储配置。
- 不做完整合同在线编辑、电子签章、复杂版本树、签出/签入。
- 不把 HR 高敏个人资料、工资社保、银行流水、源码密钥纳入普通附件区。
- 不部署、不写公网真实业务数据。
Requirements
- R1:定义统一附件状态:
draft、under_approval、pending_review、approved、archived、returned、rejected、quarantined。 - R2:定义统一敏感级别:
public、internal、confidential、restricted、index_only。 - R3:定义统一附件类型,至少覆盖合同稿/盖章件、发票、回单、报价、验收、交付物、制度/资料、其他。
- R4:已有报销、采购、付款回单附件可保存并返回状态、敏感级别和附件类型,旧数据有兼容默认值。
- R5:下载动作必须服务端鉴权,并写审计记录,记录操作者、业务对象、附件、动作、原因或用途。
- R6:业务详情展示附件治理字段,前端按钮显隐不替代后端鉴权。
- R7:不改变现有发票 OCR、报销提交、采购附件上传、付款回单上传的主流程。
- R8:文档、测试和报告不得输出真实敏感原文、完整路径、完整账号、Secret 或原始 payload。
Acceptance Criteria
- Prisma schema 和迁移包含业务附件治理字段或等效表结构,且
prisma validate通过。 - 报销附件、采购附件、付款回单附件 API 返回治理字段并兼容旧记录。
- 下载接口写入可查询的审计记录或复用现有审计日志记录附件下载动作。
- 前端详情页/附件列表能显示状态、敏感级别、附件类型。
- 新增或更新针对附件治理字段、下载审计和兼容默认值的后端测试。
- 前端 typecheck 和 build 通过。
- Trellis task validate、governance gate、
git diff --check通过。
Test Plan
cd server && npm run prisma:validate- 运行相关后端单测:报销附件、采购附件、付款回单/付款批次、审计相关测试。
cd client && npm run typecheck && npm run buildpython3 ./.trellis/scripts/task.py validate 05-28-business-attachment-governance-v1node scripts/qa/check-trellis-governance.mjsgit diff --check
Technical Notes
- 上游设计来源:
.trellis/tasks/05-28-company-docs-oa-ops-mapping/design.md - 本轮偏基础设施和现有流程增强,不做公网部署;面向用户可测前仍需另行批准部署和公网检查。