Files
knowledge-governance/compose.release-sim.yaml
T
姚章浩 6440e3f679 feat(release): 发布目标知识库可选(源库 → 目标库映射)
- 迁移 000044:production_kb_bindings + release_item_executions.target_knowledge_base_id
- 系统设置新增「生产知识库绑定(对内/对外)」:从生产 WeKnora 实际列表选库,
  保存时真校验(不存在拒收;生产端不可达只提示并如实回报),仅管理员可改
- 执行计划按绑定解析目标库并冻结进 release_item_executions;空目标直接拒收;
  已发布过的条目保留原目标(重试/回滚回到同一处)
- DocumentBundle.RemapKnowledgeBase:knowledges/chunks/knowledge_tags/wiki_pages/
  wiki_folders 的 knowledge_base_id 与 ES 文档字段改写为目标库,重算表/文档摘要并重新封装
- 契约比对改为「声明的映射对」(KnowledgeBaseMapping),其余字段继续 fail-closed
- 契约检查器 / 目标身份 / 验证器全部走映射后的目标库;对象通道无需改写
- Compose 拆分:数据面接线 compose.release-sim.yaml + 两道门禁 compose.release-gates.yaml
- 测试:RemapKnowledgeBase 全通道/无操作/fail-closed、映射契约、绑定接口、RBAC、真实 PG 集成
2026-10-08 15:41:13 +08:00

36 lines
1.5 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
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