Files
Agent-System/.doc/archive/ops/2026-09-17-kb-host-auth-fix.md
T

2.0 KiB
Raw Blame History

title, status, created, updated, owner, branch, worktree, mutex
title status created updated owner branch worktree mutex
修复 KB 宿主机错误口令与静默离线降级 done 2026-09-17 2026-09-17 Cursor fix/kb-host-auth-layered-load - infra

修复 KB 宿主机错误口令与静默离线降级

目标

消除 config.Load("") 只读 configs/.env.dev、忽略根 .env 的 KB_DB_PASSWORD 导致的错误默认口令与静默离线;E2E/nightly 默认 fail-closed。

范围

  • internal/config 分层加载 + 宿主机 DNS 归一化 + 空默认口令
  • internal/kb 脱敏日志、Online()、KB_REQUIRE_ONLINE / KB_ALLOW_OFFLINE
  • /health 增加 kb_ready
  • PI E2E helper 与 scripts/run-nightly-real-pi.sh 预检
  • env 模板与验收报告

非目标

  • 不改 KB 数据内容 / 法规迁移
  • 不把真实口令写入 git 跟踪的 configs/.env.*
  • 不把容器内 DNS 改成 localhost

步骤

  1. 分层 Load + 默认口令清空
  2. NormalizeKBHostForRuntime
  3. kb 客户端脱敏 + RequireOnline(EnsureOnline;不 Fatalf)
  4. health kb_ready + E2E/nightly 门禁
  5. 合入 dev 冒烟(rebuild + /health kb_ready=true)

验收标准

  • config.Load("") 分层合并后口令来自根 .env(单测临时文件 + live 布尔校验)
  • 宿主机 shuimu-kb-shared → 127.0.0.1;容器内保留 compose DNS
  • 错口令/空口令离线且日志无明文密码;KB_ALLOW_OFFLINE=1 可降级
  • 合 dev 后 short 测 PASS;dev rebuild 后 kb_ready=true,日志 online=true dsn=...:***@shuimu-kb-shared...,无 shared_kb_secret_pass

相关链接

  • Test report: .doc/test-reports/2026-09-17-kb-host-auth-layered-load-test-report.md
  • Plan: 修复 KB 连接降级

证据 / 备注

根因:Load 优先单文件 configs/.env.dev(故意省略 KB_DB_PASSWORD),保留错误默认 shared_kb_secret_pass;Compose 本已分层,宿主机 go test 未对齐。 合入后容器日志:[kb] online=true dsn=postgres://regkb:***@shuimu-kb-shared:5432/regulations?sslmode=disable;health kb_ready=true。