5 · 按需拉取插件
除了基座与业务插件模板,其余基础设施都是独立仓库。
原则只有一条:需要什么拉什么——用到哪个能力,才把对应仓库 clone 下来、各自
pnpm install + pnpm run build,
再在 patch 里加一行。
KTH 是「一切皆插件」的装配式底座:每个仓库只提供一种能力,通过 patch 装配进宿主。 用不到的能力(比如你的插件不连数据库)就不用拉,少一份依赖、少一处凭据、少一个构建目标。
四个基础仓库#
前缀统一为 http://123.60.59.128:8888/kunlun/harnessagentvm/。
1. 配置中心 infra-configmanagement#
配置台账 + 控制台。多数插件的硬依赖:消费方通过 ctx.infraConfig 读取台账,
没有它,业务插件不加载。配置生效顺序是「台账优先,代码缺省兜底」。
被所有业务插件依赖;它自己携带引导配置(自持连接池 + SM4 密钥),是整条链上唯一还写在 patch 里的凭据(缺项回退 KTH_CONFIGMANAGEMENT_* 环境变量)。
- id: kth-infra-configmanagement
name: ../../Infrastructure/infra-configmanagement/content/lib/index.js
config:
host: <DB_HOST> # 占位符,真实值放本地
port: 5432
database: <DB_NAME>
user: <DB_USER>
password: <DB_PASSWORD>
secretKey: <SM4_KEY>2. 数据存储 infra-database-postgresql#
PostgreSQL 连接池注册表 ctx.infraDatabase:它是按应用名建池的注册中心,
本身不带连接参数。
连接参数由消费方从配置台账取(见第 9 章)。因此它的 patch 行没有 config 段——先跑一次配置中心, 把库连接登记进台账,池按需建。
- id: infra-database-postgresql
name: ../../Infrastructure/infra-database-postgresql/content/lib/index.js3. 账号权限 base-permission#
账号 / 角色 / 菜单(权限模型)。提供登录与后台管理所需的用户体系,
infra-auth 与业务后台都读它的账号表。
依赖配置中心与数据库;被认证(infra-auth)依赖。
- id: kth-base-permission
name: ../../Infrastructure/base-permission/content/lib/index.js后台默认登录账号为 admin / Kunlun2026,
这是 DEMO 初始口令。生产环境必须改成强口令,并删除或禁用默认账号,切勿沿用出厂值。
4. 会话认证 infra-auth#
会话签发与服务端校验 ctx.auth:负责登录态的下发与验证。
读 base-permission 的账号表来核验身份。
依赖 base-permission(账号表)与配置中心;被需要登录态的业务插件依赖。
- id: kth-infra-auth
name: ../../Infrastructure/infra-auth/content/lib/index.js依赖关系#
base-permission --------+
+--> infra-auth 会话签发(读账号表)
configmanagement -------+
configmanagement -------+--> 所有业务插件 配置台账(缺它不加载)
+--> infra-database-postgresql 连接池(按应用名建池)
顺序:configmanagement -> database -> auth -> base-permission -> 业务插件对照表:我想用 X → 拉哪些仓库#
| 我想做的事 | 需要拉取的仓库 |
|---|---|
| 只跑一个业务插件页面 | 基座 + 业务插件模板 + infra-configmanagement + infra-database-postgresql |
| 读配置 / 用台账 | infra-configmanagement |
| 连 PostgreSQL | infra-configmanagement + infra-database-postgresql(连接参数登记进台账) |
| 账号 / 角色 / 菜单 | 上面三个 + base-permission |
| 登录态 / 会话校验 | 上面四个(含 base-permission + infra-auth) |
一次克隆四个仓库#
mkdir -p ~/kth && cd ~/kth
BASE=http://123.60.59.128:8888/kunlun/harnessagentvm/global-plugins
# 配置中心(台账,多数插件的硬依赖)
git clone ${BASE}/infra-configmanagement.git
# 数据库连接池注册表
git clone ${BASE}/infra-database/infra-database-postgresql.git
# 账号 / 角色 / 菜单
git clone ${BASE}/base-permission.git
# 会话认证
git clone ${BASE}/infra-auth.git每个仓库各自构建#
每个仓库各跑一次 pnpm install + pnpm run build,产物在各自的 content/lib/(业务插件是 lib/)。
for d in infra-configmanagement infra-database-postgresql base-permission infra-auth; do
echo "==> $d"
( cd ~/kth/$d && pnpm install && pnpm run build )
done宿主加载的是构建产物 lib/。改动任一插件源码后,必须在该仓库重跑
pnpm run build,然后重启宿主才会生效。
仓库拉齐了,接下来只需在 patch 里放「自己的项目 + 配置中心 + 数据存储」三行即可开工, 见 6 · 最小 patch 与访问。