Documentation
¶
Overview ¶
Package config 提供 Worker Node 的配置加载(worker.yml + 环境变量覆盖)。
配置真正落盘到 worker.yml 而非堆砌 JIANMANAGER_* 环境变量(FR-080,见 ADR-020); 所有项有合理默认,零配置即可启动开发环境。环境变量以 JIANMANAGER_ 前缀按路径覆盖 (如 Control Plane gRPC 地址 → JIANMANAGER_CONTROL_PLANE_GRPC),与 Control Plane 配置惯例一致。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindConfigFile ¶
FindConfigFile 在给定目录中按 .yml 优先、.yaml 兼容回退的顺序查找 <name>.<ext> 配置文件(FR-224)。 返回首个存在的文件路径;都不存在时返回空串(交回 viper 的名字搜索 + 默认值,零配置仍可启动)。
导出以供 worker 入口的「未配置自检」复用(FR-222,见 ADR-051):自检需判断工作目录是否已有 worker.yml/.yaml 配置文件。
func WorkerConfigExists ¶
func WorkerConfigExists() bool
WorkerConfigExists 报告工作目录、可执行文件所在目录或 configs/ 下是否存在 worker 配置文件 (.yml 优先、.yaml 回退)。供 worker 入口未配置自检使用(FR-222,见 ADR-051)。 纳入「exe 旁」搜索(FIX-3):Windows 服务/从别处启动时 cwd 可能非安装目录,配置随二进制仍可被发现。
Types ¶
type ArtifactCacheConfig ¶
type ArtifactCacheConfig struct {
// MaxBytes 缓存容量上限(字节,0=不限)。存入新项后若超限按 lastUsedAt 升序 LRU 淘汰。
// 可经 CP 端点 PUT /nodes/:id/artifact-cache/cap 运行时下发覆盖。
MaxBytes int64 `mapstructure:"max_bytes"`
}
ArtifactCacheConfig 节点本地制品缓存配置(FR-178)。
type Config ¶
type Config struct {
Name string `mapstructure:"name"`
ControlPlane string `mapstructure:"control_plane"`
NodeSecret string `mapstructure:"node_secret"`
WS WSConfig `mapstructure:"ws"`
// DataDir 是项目自包含数据根(默认 ./data,可经 JIANMANAGER_DATA_DIR 覆盖)。
// JDK、服务器工作目录等运行态数据统一收口到此根。参见 ADR-010。
DataDir string `mapstructure:"data_dir"`
// ServersDir 兼容旧配置:显式指定时覆盖数据根派生的 var/servers。
// 留空则由数据根派生为 <DataDir>/var/servers。
ServersDir string `mapstructure:"servers_dir"`
// Host 注册上报给 CP 的本机地址;留空则自动探测出口 IP(供 CP 反向连接)。
Host string `mapstructure:"host"`
// JWTSecret 历史兼容字段;WS 令牌密钥只接受 CP 注册/心跳下发值。
JWTSecret string `mapstructure:"jwt_secret"`
// EnrollToken 一次性 enrollment token 明文(FR-080,见 ADR-020)。
// 仅经环境变量/命令行传入、绝不写入 worker.yml(一次性凭据不留盘);
// 首次注册(无本地身份文件)时携带,注册成功后即作废。
EnrollToken string `mapstructure:"enroll_token"`
Log LogConfig `mapstructure:"log"`
Decompiler DecompilerConfig `mapstructure:"decompiler"`
// Search 全文搜索索引配置(FR-074,见 ADR-017)。
Search SearchConfig `mapstructure:"search"`
// ArtifactCache 节点本地制品缓存配置(FR-178):按 sha256 缓存下载过的核心 jar,建实例命中即秒拷。
ArtifactCache ArtifactCacheConfig `mapstructure:"artifact_cache"`
// Proxy 本节点出站代理配置(FR-174,见 ADR-037):所有出站下载(自更新/JDK/CFR)
// 经此代理。url 留空=直连(沿用环境变量代理)。各 Worker 在不同机器各配各的。
Proxy httpclient.Config `mapstructure:"proxy"`
Heartbeat time.Duration `mapstructure:"-"`
// MemoryGuard 启动内存闸(FR-317):可用内存不足以再塞下待启实例时拒绝启动,
// 防止把节点内存跑满至失去响应。零值即启用 + 默认保留水位 max(512MB, 总内存 10%)。
MemoryGuard MemoryGuardConfig `mapstructure:"memory_guard"`
}
Config Worker Node 配置。
type DecompilerConfig ¶
type DecompilerConfig struct {
// CFRPath 显式 CFR 反编译器 jar 路径(最高优先级,可空)。
// 运维离线放置时直接指定;空则回退内嵌/数据根缓存/按需下载。
CFRPath string `mapstructure:"cfr_path"`
// AllowDownload 是否允许从 Maven Central 按需下载 CFR jar(sha256 pin 校验后落数据根缓存)。
// 默认开启;离线环境可关并用 CFRPath/内嵌。
AllowDownload bool `mapstructure:"allow_download"`
}
DecompilerConfig 反编译能力配置(FR-075,见 ADR-018)。
type MemoryGuardConfig ¶
type MemoryGuardConfig struct {
// ReserveMB 保留水位(MB);0 = 默认策略 max(512MB, 总内存 10%)。
ReserveMB int64 `mapstructure:"reserve_mb"`
// Disabled 显式关闭守卫(应急逃生口,如误判阻塞关键启动时)。
Disabled bool `mapstructure:"disabled"`
}
MemoryGuardConfig 启动内存闸配置(FR-317)。
type SearchConfig ¶
type SearchConfig struct {
// Ignore 追加到内置默认忽略集的 glob 规则(相对实例工作目录,/ 分隔)。
// 形如 logs/(目录前缀)、*.bak(basename glob)、vendor(路径段)。默认集已覆盖常见
// 日志/缓存/二进制/归档/MC 世界数据,零配置即可用;此处仅做加性补充。
Ignore []string `mapstructure:"ignore"`
}
SearchConfig 全文搜索索引配置(FR-074,见 ADR-017)。
Directories
¶
| Path | Synopsis |
|---|---|
|
Package artifactcache 提供 Worker 节点本地的内容寻址制品缓存(FR-178)。
|
Package artifactcache 提供 Worker 节点本地的内容寻址制品缓存(FR-178)。 |
|
Package botdist 实现 bot-worker dist 的自愈下发(FR-308,见 ADR-072): Worker 启动后经既有 CP gRPC 通道拉取内嵌归档,物化到 <dataroot>/opt/bot-worker/。
|
Package botdist 实现 bot-worker dist 的自愈下发(FR-308,见 ADR-072): Worker 启动后经既有 CP gRPC 通道拉取内嵌归档,物化到 <dataroot>/opt/bot-worker/。 |
|
Package crashreport 组装并上报实例崩溃快照(FR-313): 进程非正常退出时把退出码/信号/时长 + 终端环形缓冲的尾部输出, 经与注册/心跳同信道的 gRPC ReportCrashSnapshot 上报 CP 持久化。
|
Package crashreport 组装并上报实例崩溃快照(FR-313): 进程非正常退出时把退出码/信号/时长 + 终端环形缓冲的尾部输出, 经与注册/心跳同信道的 gRPC ReportCrashSnapshot 上报 CP 持久化。 |
|
Package decompiler 提供 Worker 侧反编译能力:解析/缓存 CFR 反编译器 jar, 并经实例/系统 JDK 受控调起 CFR 把 class/jar 反编译为 Java 源码。
|
Package decompiler 提供 Worker 侧反编译能力:解析/缓存 CFR 反编译器 jar, 并经实例/系统 JDK 受控调起 CFR 把 class/jar 反编译为 Java 源码。 |
|
Package embed 内嵌 Worker 侧可选构建产物(CFR 反编译器 jar 等)。
|
Package embed 内嵌 Worker 侧可选构建产物(CFR 反编译器 jar 等)。 |
|
Package jdk 提供节点本地 JDK 探测、下载安装、删除与注册表管理。
|
Package jdk 提供节点本地 JDK 探测、下载安装、删除与注册表管理。 |
|
Package pkgmgr 管理节点包管理器偏好(npm/pnpm/yarn,经 corepack 激活)与多 registry 配置(FR-306)。
|
Package pkgmgr 管理节点包管理器偏好(npm/pnpm/yarn,经 corepack 激活)与多 registry 配置(FR-306)。 |
|
Package runtime 提供节点本地非 JDK 运行时(首批 Node.js)的下载安装与托管删除(FR-299)。
|
Package runtime 提供节点本地非 JDK 运行时(首批 Node.js)的下载安装与托管删除(FR-299)。 |
|
Package runtimescan 扫描节点常见安装路径发现运行时候选(FR-298 节点运行时库)。
|
Package runtimescan 扫描节点常见安装路径发现运行时候选(FR-298 节点运行时库)。 |
|
Package search 实现 Worker 本地持久全文索引(FR-074,见 ADR-017)。
|
Package search 实现 Worker 本地持久全文索引(FR-074,见 ADR-017)。 |
|
Package setup 实现 Worker「免配置自启 setup」(FR-222,见 ADR-051)。
|
Package setup 实现 Worker「免配置自启 setup」(FR-222,见 ADR-051)。 |
|
Package storage 提供备份远程存储后端的传输抽象(FR-057)。
|
Package storage 提供备份远程存储后端的传输抽象(FR-057)。 |
|
Package taskreg 提供 Worker 侧「运行中长任务内存登记表」(FR-183,见 ADR-040)。
|
Package taskreg 提供 Worker 侧「运行中长任务内存登记表」(FR-183,见 ADR-040)。 |
|
Package tunnel 维护 Worker→CP 的常驻 gRPC 反向隧道(FR-281,见 ADR-066)。
|
Package tunnel 维护 Worker→CP 的常驻 gRPC 反向隧道(FR-281,见 ADR-066)。 |