1fa35e9870
按生产级备份组合落地:
- internal/releasesnapshot:新增门禁包,要求 root 下存在覆盖目标库、未过期
(默认 24h)、含 wiki_pages.jsonl 与 sha256 的快照;本地文件再校验哈希。
7 条单测(过期/换库/篡改/缺页/未接线/半成品)。
- 发布器:写目标库之前(Publish/Delete/Rollback 三条路)先过门禁;映射目标
(源库→目标库,共享真实库)或 policy=always 时必须有快照;门禁未接线
同样拒绝(fail-closed)。新错误码 release_target_snapshot_missing(不可重试)
+ 页面中文提示。6 条发布器单测。
- worker 配置新增 target_snapshot{root,max_age_hours,policy},校验 policy/
max_age/绝对路径;compose.release-sim.yaml 只读挂载快照目录。
- scripts/target_kb_snapshot.sh:默认云内执行(与 DB 同 VPC,凭据取自 WeKnora
容器)+ 默认不导 chunks(44s 出 8 张表);修复 \copy 不能跨行/不能带 WITH、
ES 计数改用 knowledge_base_id.keyword。
- ES:注册 kb_backup 仓库(path.repo),首个快照 36s/4.7GB/0 分片失败,
SLM kb-hourly(3d)+kb-daily(7d) 已建并执行成功。
- OSS:目标桶开启版本控制(此前未开启)。
- 文档 P6 增补硬门禁与云内执行;真实快照目录上门禁实测:两个绑定库通过、
未覆盖库拒绝、未接线拒绝。
39 lines
1.7 KiB
YAML
39 lines
1.7 KiB
YAML
# 发布链路的「数据面接线」override(不含任何门禁开关)
|
|
# 用法:docker compose -f compose.yaml -f compose.release-sim.yaml up -d api release-worker
|
|
# 叠加顺序:compose.yaml → 本文件(接线)→ compose.release-gates.yaml(门禁,须人工授权)
|
|
# 作用:
|
|
# 1) api 拿到生产 WeKnora 凭据引用 →「生产知识库绑定」能读真实生产库列表
|
|
# 2) release-worker 拿到发布配置、目标端点别名、归档卷(执行门禁关闭时不加载配置)
|
|
services:
|
|
api:
|
|
environment:
|
|
# 凭据只引用 0600 文件(值不入库、不回显);appconfig 要求两者同时给出
|
|
PRODUCTION_WEKNORA_BASE_URL: https://weknora-test.dobot.cn
|
|
PRODUCTION_WEKNORA_API_KEY_FILE: /run/release-secrets/target_weknora_api_key
|
|
volumes:
|
|
- ./secrets/release-sim:/run/release-secrets:ro
|
|
|
|
release-worker:
|
|
environment:
|
|
RELEASE_CONFIG_FILE: /run/release-sim/release.sim.json
|
|
PRODUCTION_RELEASE_AUTHORIZER_REF: yaozhanghao
|
|
volumes:
|
|
# 发布前快照留档目录(只读):写目标库之前必须存在覆盖该库的新快照
|
|
- ./backups/target-kb-snapshots:/var/lib/knowledge-governance/target-kb-snapshots:ro
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
- "prod-pg:host-gateway"
|
|
- "prod-es:host-gateway"
|
|
- "prod-weknora:host-gateway"
|
|
networks:
|
|
- default
|
|
- weknora-local
|
|
volumes:
|
|
- ./secrets/release-sim:/run/release-secrets:ro
|
|
- ./config/release.sim.json:/run/release-sim/release.sim.json:ro
|
|
- release-bundles:/var/lib/knowledge-governance/release-bundles
|
|
read_only: false
|
|
|
|
volumes:
|
|
release-bundles:
|
|
name: knowledge-governance-release-bundles |