Files
knowledge-governance/docs/SOURCE_CATALOG_LIVE_ROUTING_ACCEPTANCE.md
姚章浩 e53b98f37d fix(alist): 网关鉴权头改为 X-Gateway-Token
- 依据 2026-09-28 实测:旧头对新网关 4/4 源返回 401,X-Gateway-Token 返回 200
- 取件通道 scripts/artifact_fetch.py 两处头名同步;镜像内生效需重建 worker
- 修正过期结论:下载直链 /p/<path>?sign=… 为签名鉴权,请求头不影响(无头亦 206)
- 同步文档与回归断言表述(重定向隔离测试仍 PASS)
2026-09-30 10:54:07 +08:00

3.9 KiB
Raw Permalink Blame History

来源目录实时刷新与分流验收

页面功能

  • 进入子目录后显示“返回上一级”;顶部来源/目录标签仍可逐级返回。
  • 右下角显示当前来源最近一次快照检查/激活时间。
  • 每个文件显示不选择/对内/对外;有安全本地制品的文件可单条标注并立即进入对应本地WeKnora解析队列。
  • 当前页支持勾选、全选可入队文件、批量标注对内/对外。零选择按钮显式灰色禁用。
  • 目录元数据存在但没有可验证文件制品时,分流控件禁用并显示“只有目录元数据,尚无可上传文件”;不会假装入队。
  • 分流结果显示标注数、新入队、已在队列及暂不可入队数量。

本地WeKnora目标

新增并读回验证两个隔离本地知识库:

  • governance-internal-local:对内解析队列。
  • governance-external-local:对外解析队列。

API只返回两个范围是否启用,不把目标知识库ID交给浏览器。文件路由在单个PostgreSQL事务中写人工范围覆盖和审计、创建目标Publication及test.upload Job。重复标注同一文件/目标返回already_queued,不重复上传。

从PP公开Manifest选择最小的626字节TXT,按Manifest字节数和SHA-256复核后复制到治理Spool,并补齐一个content_object的受控spool引用。该文件分别通过对外和对内队列真实上传到本地WeKnora,两个Knowledge均达到parse_status=completed。测试对象保留,未调用删除API。

实时快照

点击“实时刷新目录”创建持久source.catalog.refresh Job。普通Worker运行只读扫描器,Job payload只保存来源治理ID、类型、名称、阶段、进度和计数,不保存URL、Token、Cookie或捕获请求。网页轮询Job,可以切换页面;完成后自动读取当前快照。

阶段:等待后台刷新→验证登录→扫描目录→校验父子关系和数量→写不可变快照/切换当前指针→完成。失败不会切换当前快照。

真实验收:

  • 钉钉公司级技术支持知识库:浏览器捕获会话有效;扫描1080个文件夹;新快照4524节点、1079目录、3444文件;原快照3468文件,证明读取的是实时来源变化;新快照原子激活,旧快照保留。
  • PP:当前凭据文件可读取且网络可达,但登录返回无Token;网页显示“PP登录失败,请在来源链接更新凭据;旧快照仍然保留”。
  • AList直连:保留各来源原地址,仅向POST /api/fs/list添加X-Gateway-Token(2026-09-28 网关鉴权头由x-api-token改名,旧头已401失效;下载直链/p/<path>?sign=…为签名鉴权,不受请求头影响);拒绝所有重定向,不依赖钉钉SSO Cookie。2026-09-10 实测四个来源均完成只读全量快照并原子激活:国内工业1718目录/4942文件、海外工业1486目录/4463文件、国内教育3566目录/9067文件、海外教育1742目录/5015文件。

Worker只读挂载源脚本和来源目录;DingTalk/PP/AList凭据副本位于治理secrets/、权限0600,仅普通Worker挂载,API/Web/Release Worker不挂载。AList直连令牌从secrets/alist_api_token读取,不进入来源地址表、任务载荷、数据库或日志。

验证证据

  • Python测试12项、Web 77项、Go全项目测试和相关vet通过。
  • 独立PostgreSQL验证:文件标注、人工范围审计、目标Publication、Job入队、重复幂等和未映射阻断。
  • 浏览器:返回、快照时间、实时任务完成卡、单条选择、当前页批量、幂等结果、灰态、1440/1024/768无页面级横向溢出。
  • tmp/catalog-routing-refresh-acceptance.json
  • tmp/CATALOG_ROUTING_REFRESH_FIREFOX.png
  • tmp/backups/pre-live-refresh-routing-20260909T170939.dump(3607159字节、0600、pg_restore目录检查通过)

生产发布请求和Release Worker保持关闭;未连接或写入生产WeKnora、生产数据库或OSS。