文件
hyb-oa/.trellis/tasks/05-28-company-docs-oa-ops-mapping/design.md
T

19 KiB

公司电子资料与 OA 运营配合设计

设计结论

OA 不承载公司全量资料原件库职责,主要承载运营控制、流程状态、业务附件、台账索引、责任归属、签收、复核和审计证据。公司资料主库继续保存全量原件、高敏材料和历史证据;OA 只在具体业务流程中保存必要原文附件。

信息分工

对象 主事实源 OA 中保存 OA 中禁止
全量原件库 受控公司资料主库 不镜像全量原件,只记录必要索引和归档摘要 自由目录、全量资料包、历史资料镜像
授权业务附件 OA 业务模块 合同、发票、回单、报价、验收等业务必要原文附件 越权上传、越权查看、跨业务自由下载
电子资料索引 OA 资产 EA-DOC 编号、类别、敏感级别、hash、负责人、归档位置摘要 完整本地路径、账号凭据、Secret
制度发布 OA 公告签收 + 受控制度版本 标题、版本、适用范围、签收声明、签收时间 未评审草案无限制公开
业务流程 OA 审批和业务模块 状态、责任人、审批历史、附件清单、复核结论 越权附件、企业微信原生附件承载高敏材料
员工资料整理 OA 任务/项目/待办 授权等级、范围、交付物、复核人、未确认项 全量目录访问、无关副本下载

落地原则

  1. 先用现有 OA 能力做试点,不先开发完整文档库。
  2. 凡涉及制度、合同、采购、付款、项目外发、入离职和资料归档,必须有责任人和状态。
  3. 有权限人员可在 OA 业务流程内处理必要原文附件;普通员工协作、Codex/AI、外发、报告和企业微信消息只处理脱敏副本、低敏模板或摘要。
  4. 外发材料必须同时经过脱敏检查和正式文件质量检查;涉及合同、付款、知识产权或责任边界时再进入专业复核。
  5. 后续功能开发只承接经过试点证明的缺口。

阶段设计

阶段 目标 交付物
Phase 0 冻结资料安全边界 红线、授权等级、原文附件准入、索引-only 口径
Phase 1 用现有模块试点 制度签收样例、EA-DOC 样例、合同/项目/入职样例
Phase 2 制度和业务指导接入 员工签收、任务派发模板、资料整理 SOP
Phase 3 7 个制度联调场景回放 问题清单、风险等级、修订动作
Phase 4 最小开发 资料协作任务模板、外发复核工作流、制度台账轻量页

后续开发触发条件

  • 待办/项目任务不能清楚表达授权等级和禁止范围时,开发资料协作任务模板。
  • 外发复核频率上升且人工台账漏签漏审时,开发外发复核工作流。
  • 公告签收无法承载制度版本、适用范围、修订和执行检查时,开发制度台账轻量页。
  • 手工登记 EA-DOC 成本过高且脱敏索引格式稳定时,再做导入工具。

文件管理服务器决策

当前阶段不建议单独建设公网文件管理服务器,也不建议自研“上传/下载文件中心”。原因是资料治理的主要问题不是缺少上传下载能力,而是缺少分类分级、授权、复核、签收、外发审批、归档责任和审计闭环。

部署服务器磁盘不足时,也不建议把生产附件直接放到另一台普通电脑的共享目录。更合适的是把“计算层”和“附件对象存储层”拆开:OA 服务仍在部署服务器运行,附件写入受控对象存储或专用 NAS,OA 继续负责权限、复核、下载审计和索引。

若后续确实需要文件服务,应按“受控文件服务 + OA 控制层”设计:

层 职责
受控文件服务 保存允许线上保存的授权业务原文、低敏/中敏文件、脱敏副本、员工交付物和非涉密证明材料
OA 控制层 权限判断、审批状态、任务派发、下载审计、hash、归档位置摘要、外发复核
公司原件主库 保存全量原件、完整历史包、银行流水、工资社保、客户资料、源码密钥和历史证据

文件服务准入条件:

  1. 先完成资料分级和员工授权等级定义。
  2. 先完成 OA 中 EA-DOC 索引、公告签收和外发复核试点。
  3. 文件服务必须支持最小权限、下载审计、离职回收、备份恢复、加密存储和外链限制。
  4. 文件服务不得绕过 OA 直接给员工全量目录访问。
  5. 高敏原件默认不进通用文件服务;合同、发票、回单、报价、验收等业务必要原文只能进入 OA 授权业务附件链路。

附件存储后端建议

现有后端已经有存储抽象层,支持 STORAGE_DRIVER=local 和 STORAGE_DRIVER=s3,并且 storage_path 支持 s3: 前缀。因此附件存储后端优先级建议如下:

阶段性落地口径:COS 和额外文件服务先暂缓。当前 V0 继续使用部署服务器本地存储承载授权业务附件,同时用 OA 保存资料索引、复核记录和归档位置摘要;全量原件库、历史包和不适合线上保存的高敏原件仍保留在受控离线资料主库,需要时由负责人按权限调取。

方案 建议 适用条件
云对象存储 OSS/COS/S3 推荐 正式公网 OA、附件增长、部署服务器磁盘紧张
部署服务器新增数据盘 可作为短期方案 文件量较小、需要最快止血、能做备份和监控
公司受控 NAS/MinIO 可选 有专门设备、固定网络、UPS、备份、权限和运维负责人
普通办公电脑共享目录 不推荐 只可做离线原件主库或临时人工中转,不做生产附件后端

选型建议:

  1. 当前 V0 先不接腾讯云 COS,避免在附件复核和资料分级未跑稳前增加存储迁移工作。
  2. 正式主选仍保留腾讯云 COS:国内访问、企业微信/腾讯 OCR 生态和小团队运维便利性更匹配;后端可按 S3 兼容接入做验证。
  3. 如果当前部署服务器、域名、账号和账单已经主要在阿里云,则改选阿里云 OSS,避免多云账号和发票管理成本。
  4. Cloudflare R2 适合低风险试点或临时验证免费额度,不作为国内 OA 生产附件首选。
  5. 自建 MinIO 只在有专人运维和可靠硬件时考虑,不为了省几十元/月引入新单点。

家用群晖 NAS 判断

用户已有家用群晖 NAS。该 NAS 可以纳入公司资料治理,但不建议直接作为正式公网 OA 附件主存储,除非它被改造成受控存储节点。

推荐定位:

用法 建议 原因
离线原件主库/冷归档 推荐 适合保存受控原件、历史资料、备份副本
OA 附件备份目标 推荐 可作为服务器附件备份或对象存储备份的二级留存
低风险试点存储 可选 可用 VPN + MinIO 验证 S3 链路和受控入库流程
正式 OA 主附件库 暂不推荐 家宽、电力、动态 IP、上行带宽和家庭网络稳定性不足

若一定要用群晖承载 OA 附件,必须满足:

  1. 部署服务器通过 VPN/Tailscale/WireGuard 等私有网络访问 NAS,不开放公网 MinIO/SMB/NFS。
  2. NAS 上运行 MinIO 或等效 S3 兼容服务,OA 使用 STORAGE_DRIVER=s3 接入。
  3. 只允许 OA 服务账户读写 bucket,员工不能直接访问 NAS 共享目录。
  4. NAS 有 UPS、磁盘健康监控、容量告警、快照或版本保留。
  5. NAS 资料还要再备份到外部介质或云端;RAID 不等于备份。
  6. 家庭网络中断时,OA 附件上传/预览/下载会受影响,必须有暂停和恢复预案。

结论:群晖 NAS 适合做“受控原件库 + 备份/冷归档 + 低风险试点 MinIO”,不适合作为当前正式 OA 附件主存储的第一选择。正式附件主存储仍优先腾讯云 COS;若坚持零云存储成本,则先用群晖做非关键试点,再评估稳定性。

选择对象存储时的硬要求:

  1. Bucket 私有,不开放公网匿名访问。
  2. OA 服务端统一代理上传、预览和下载;前端不直接拿永久密钥。
  3. 下载链接短有效期,并绑定操作者和附件。
  4. 开启服务端加密或等效加密措施。
  5. 配置生命周期和容量告警,避免无限增长。
  6. 定期备份或跨区域/异地备份,至少保留关键业务附件恢复方案。
  7. 迁移前先做 dry-run:上传、预览、下载、审计、备份恢复都通过后再切换生产。

如果必须临时使用“另一台电脑”,它必须被当作受控 NAS/MinIO 节点管理,而不是个人电脑共享盘:固定内网/VPN、独立账号、磁盘加密、UPS、自动备份、容量监控、禁止员工直接访问、只允许 OA 服务账户读写。

业务附件受控入库 V1

用户补充的真实需求不是“做网盘”,而是让员工或授权人员在 OA 的具体业务流程中上传必要附件。附件是否需要脱敏,取决于业务对象、角色权限、附件类型、流程状态和用途,不能一刀切。

核心口径:

  1. 内部授权业务流可以保存必要原文附件。例如合同审批中的待审合同、盖章后扫描件,报销中的发票,付款中的银行回单,采购中的报价/验收材料。
  2. “不用脱敏”只适用于有权限人员在 OA 业务流程内处理原文,不适用于企业微信消息、AI/Codex 处理、自动化报告、外发材料、低权限协作或普通员工下载。
  3. 原文附件必须依附具体业务对象,不提供自由目录浏览、跨业务搜索下载或员工网盘式共享。
  4. 高敏附件必须有状态、责任人、访问角色、下载审计和归档去向;不允许绕过 OA 直接共享服务器目录。
  5. 源码、密钥、Secret、完整配置、完整账号凭据和完整本地路径仍禁止进入 OA 附件库。

同类系统抽象

参考成熟文档协作系统后,本项目不照搬完整文档库,而吸收其中与小团队 OA 匹配的治理能力:

成熟系统能力 对 hyb-oa 的启发 是否纳入 V1
文件审批 文件或附件可进入正式审批,审批人可通过、拒绝或反馈 纳入,做附件复核
审批中锁定 审批期间防止被随意修改,修改后应重新复核 纳入,复核中附件不可直接替换正式件
版本和签出 正式版本与草稿/待审版本分离,变更有历史 简化纳入,V1 记录替换历史和复核意见
待审批可见性 待审批文件默认只让上传人和管理/复核人员可见 纳入,待复核附件不对普通业务成员开放
规则化访问控制 按用户组、标签、文件状态和上下文限制访问 纳入,按角色、业务关系、状态、敏感级别判断
在线预览优先 业务处理需要看内容,但不一定需要下载副本 纳入,默认预览,下载收紧
外链/短链接 临时分享需要时效和操作者绑定 后置,只保留短期下载链接原则

因此,适合 hyb-oa 的需求不是“文件中心”,而是“业务附件治理层”:附件必须依附业务对象,跟随审批、复核、归档和审计,不提供自由目录浏览。

跨业务附件矩阵

业务流程 典型附件 谁可上传 原文/脱敏规则 归档节点 下载边界
合同审批/用印 待审合同、修订稿、审批版、盖章扫描件、归档证明 合同负责人、管理层、被授权经办人 授权人员可上传原文合同;外发稿、AI 初审、低权限协作必须使用脱敏副本或摘要 审批通过、盖章扫描件上传后生成合同归档记录或 EA-DOC 索引 合同负责人/审批人/管理层可预览;下载需原因和审计;普通员工只看摘要
报销/票据 发票 PDF/图片、行程单、消费凭证、补充说明 报销人、财务、被授权代填人 发票和凭证是业务原文,可进入 OA;自动化报告只输出发票摘要和脱敏编号 报销提交、财务复核、付款完成后状态锁定 报销人看本人材料;审批人和财务按职责查看;归档后下载收紧
采购/费用申请 报价单、采购申请附件、供应商资料、验收单、交付证明 申请人、采购/项目负责人、财务 业务处理需要时可上传原文;敏感报价和供应商资料限制可见范围 验收通过、付款关联、资产登记后归档 申请人/审批人/采购/财务按业务关系查看;供应商敏感资料禁止普通下载
付款/AP 付款申请依据、银行回单、付款批次附件、代账交接材料 财务、出纳、管理层授权人员 回单和代账资料可作为财务原文附件,但仅财务线可见 付款完成、AP 导出或月结归档后锁定 财务和管理层查看下载;其他角色只看付款状态和脱敏摘要
项目交付/外发 交付物、验收单、客户确认、外发稿、会议纪要 项目负责人、交付负责人、管理层授权人员 内部交付材料可原文保存;客户原始资料、报价、账号截图外发前必须脱敏复核 验收通过、回款节点、项目归档 项目成员按职责预览;客户敏感材料下载需用途记录
制度/资料管理 制度发布版、签收附件、资料索引、员工交付物 管理员、负责人、被授权整理人 发布版可进入 OA;草案历史、员工整理过程材料按敏感级别控制;AI/Codex 只处理脱敏副本 制度发布、签收完成、资料复核入库 员工看适用制度;资料原件默认只看摘要或索引
人事/员工资料 劳动合同、身份证明、入离职交接、培训证书 HR/管理层授权人员 高敏个人资料默认不进普通 OA 附件区;若后续必须线上化,应作为 HR 受限域单独治理 入职完成、续签、离职归档 普通员工不可见;HR/管理层最小权限访问

原文、脱敏和索引-only 分类

分类 定义 处理
授权原文附件 业务办理必须查看的合同、发票、回单、报价、验收、交付材料 可进入 OA,但必须绑定业务对象、角色、状态、审计和归档节点
脱敏协作附件 给普通员工整理、AI 初审、外发复核、格式检查用的副本 可进入 OA 协作区;不得反推完整客户、金额、账号、证件或合同敏感条款
索引-only 资料 不适合线上保存原文,但需要 OA 记录责任和位置的资料 OA 只保存编号、摘要、hash、负责人、归档位置摘要、复核状态
禁止入库资料 源码、密钥、Secret、完整配置、完整账号凭据、完整本地路径 不进入 OA 附件库,不进入聊天、报告或企业微信消息

状态模型

状态 含义 允许动作
draft 草稿 上传人或授权经办人已上传,业务尚未提交 上传人可替换/删除;未进入正式业务证据
pending_review 待复核 附件已随业务提交,尚未确认是否合规、归类正确或可作为依据 上传人可补充说明;复核人可预览、通过、退回、标记线下归档
under_approval 审批中 附件是当前审批依据,不能随意替换 审批人可预览;替换必须产生新版本并重新进入复核/审批
returned 已退回 附件缺材料、错类、涉敏或说明不足 上传人补充说明或重新上传;保留退回原因
approved 已通过 复核通过,可作为当前业务单据附件使用 按业务权限预览;下载按下载策略控制
archived 已归档 附件已进入正式归档或生成 EA-DOC 索引 核心信息锁定;下载需权限和审计
quarantined 已隔离 疑似误传高敏原件、账号密钥、敏感报价等 仅管理员/负责人处理;普通员工不可见不可下载
rejected 已拒绝 不应入库或不属于本业务 不作为业务证据;保留审计摘要

权限原则

角色 待复核附件 已通过附件 已归档附件
上传人 可查看自己上传的文件名、状态、退回原因;不默认下载归档件 可查看当前业务需要的附件摘要 非责任人时只看摘要或不可见
业务负责人/审批人 可在待办内预览复核所需附件 可预览处理所需附件 按业务权限预览,下载需记录原因
财务/合同/项目复核人 可预览本职责范围内附件 可按职责查看和下载,下载留审计 可按职责查看和下载,下载留审计
管理员 可处理隔离、误传、权限修正 不自动获得业务审批权 技术排障最小化授权并留痕

前端按钮显隐只做体验优化;服务端必须判断附件状态、业务权限、下载策略和审计要求。

下载策略

  1. 默认优先提供在线预览,不默认提供下载。
  2. 下载必须服务端鉴权,并写审计日志:操作者、时间、业务对象、附件 ID、动作、原因或用途。
  3. 敏感级别较高的附件下载需填写原因;必要时需二次确认或负责人批准。
  4. 普通员工不得批量下载业务附件;归档附件默认只显示摘要。
  5. 临时下载链接必须短有效期、绑定操作者和附件,不能被转发后长期可用。
  6. 企业微信消息不携带附件,只提供 OA deeplink。

入库规则

复核通过不等于所有文件都进 OA 原文库;是否保存原文按业务必要性和授权边界判断:

附件类型 处理
合同审批材料、盖章扫描件、报销发票、付款回单、采购报价、验收单等业务必要原文 可进入 OA 业务附件库,但只对业务相关授权人员开放
项目外发稿、制度发布版、员工交付物 可进入 OA 附件或 EA-DOC 索引,视敏感级别决定原文、脱敏副本或索引-only
工资社保个税、身份证银行卡、客户原始高敏资料、银行流水、涉密合同包 默认索引-only 或进入后续专门受限域;普通业务附件区不保存原文
源码、密钥、Secret、完整配置、完整账号凭据、完整路径 禁止入库

实现建议

现有系统已有报销附件、采购附件、付款回单附件和下载审计基础。后续实现不应另建独立文件服务器,而应优先增强现有附件模型:

  1. 增加附件复核状态、敏感级别、附件类型、复核人、复核时间、复核意见、下载策略。
  2. 业务提交前为 draft;提交后按流程进入 under_approval 或 pending_review,不直接进入正式附件清单。
  3. 业务详情页区分“草稿/待复核/审批中附件”和“已通过/已归档附件”。
  4. 下载接口按附件状态和下载策略二次校验。
  5. 复核通过后可关联业务单据、归档记录或 EA-DOC 资料索引。
  6. 对误传高敏资料提供隔离和下架动作,不能让普通用户继续查看。

V1 不做:

  • 不做全站网盘目录。
  • 不做员工自由建文件夹和共享空间。
  • 不做全量原件迁移。
  • 不做复杂文档协同编辑、签出锁定和版本树。
  • 不做对外分享链接。
  • 不做企业微信附件承载。

验证方式

本任务只验证规划材料自身:Trellis task validate、Trellis governance gate、git diff --check。实际 OA 业务试点和公网检查需要后续实施任务承接。