fix: --encrypt/--license 构建链修复(网关收集项、[license] 注入点、契约测试)
- config.toml:--encrypt 会先 PyArmor 混淆 main.py / server.py,PyInstaller 静态 分析跟不到里面的 `from chongming.app import app`,网关包整个漏收(打包"成功"、 产物启动即报 No module named 'chongming')—— 收集清单显式列出 chongming / chongming.app 等入口包,注释也从"静态分析可跟到"改准; - public/config.toml:补 [license] 段(public_key 留空),--license 的注入点, 缺了会在 prepare 阶段报"未找到 [license] 段的 public_key"; - README:补 --license 的公钥前置条件(keygen → license_public.key 或环境变量); - test_build_flags.py:4 条契约守卫 —— 真实模板/骨架可注入 [license]、收集清单含 网关入口包、加密包密钥写进包内且按运行端口径(get_key())可导入。此前用例都 自造 config.toml,这两类模板漂移测不出来。 实测(device-hub):修复前 --encrypt --license 产物启动报错;修复后网关启动、 授权校验通过、插件从加密 mbank 正常加载、HTTP 正常返回。
This commit is contained in:
@@ -331,6 +331,12 @@ exe 内的依赖来自三处,新增第三方包时对号入座:
|
||||
`--encrypt` / `--license` 默认**都关**(不加参数即内部调试产物:明文模块、不校验授权);
|
||||
对外分发必须同时加这两个开关。
|
||||
|
||||
`--license` 需要厂商授权公钥(未提供直接构建失败,避免打出名不副实的"授权版")。首次:
|
||||
`uv run chongming-license keygen -o license_private.pem` 生成密钥对(一次性;私钥离线保管,
|
||||
绝不进仓库/产物),把输出的公钥写入根目录 `license_public.key`,或用
|
||||
`CHONGMING_LICENSE_PUBKEY=<base64 公钥>` / `CHONGMING_LICENSE_PUBKEY_FILE=<文件路径>` 指定。
|
||||
构建会把公钥注入产物的 `[license] public_key` 并烘焙进代码(现场改配置/环境变量关不掉强制校验)。
|
||||
|
||||
### 进程插件打包与容器部署
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user