docs: archive Sense package environment loading (#46)
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
<!-- gitea-wiki-mirror:start -->
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Task-46-Sense-Windows包内配置加载
|
||||
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-46-Sense-Windows%E5%8C%85%E5%86%85%E9%85%8D%E7%BD%AE%E5%8A%A0%E8%BD%BD.-
|
||||
wiki_revision: eab38da7cae8089d9cf7ed38e48d3e52962b68b4
|
||||
synchronized_at: 2026-08-13T02:42:05Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 46 Sense Windows包内配置加载
|
||||
|
||||
- 类型:缺陷
|
||||
- 所属 Epic:#7
|
||||
- 所属 MVP / 版本:#8
|
||||
- 状态:待验收
|
||||
- 日期:2026-08-13
|
||||
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/46
|
||||
- Wiki 页面:Task-46-Sense-Windows包内配置加载
|
||||
- Wiki revision:见本地镜像头
|
||||
|
||||
## 背景与目标
|
||||
|
||||
Windows 打包目录已有 `config\sense.env`,但旧版 `start-sense.bat` 只读取进程环境,导致生产启动误报缺少 `SENSE_DATABASE_URL`。本工单让启动入口安全读取包内配置,同时确保真实配置不进入 Git 或交付 ZIP。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- `start-sense.bat` 保持现场入口,委托同目录 `start-sense.ps1` 加载配置并启动服务。
|
||||
- 加载器只接受 `SENSE_*` 键,忽略空行和 `#` 注释;不执行配置内容、不输出配置值,外部非空进程环境变量优先。
|
||||
- 默认生产模式强制 PostgreSQL,验证数据库连接、身份签名、初始化令牌和凭据加密四个必填配置;`check` 模式只验证配置,不连接数据库、不启动服务。
|
||||
- `demo` 仍强制内存模式;UI 路径固定为包内 `ui`。
|
||||
- 重打包会安全暂存并恢复已有部署目录的 `config\sense.env`;交付 ZIP 只包含 `sense.env.example`,不包含真实配置。
|
||||
|
||||
## 修改文件
|
||||
|
||||
- `Sense/scripts/runtime/start-sense.bat`:委托 PowerShell 启动器并传递退出码。
|
||||
- `Sense/scripts/runtime/start-sense.ps1`:加载、校验配置并处理 production、demo、check 模式。
|
||||
- `Sense/scripts/runtime/README-WINDOWS.md`:补充包内配置、优先级和检查命令。
|
||||
- `Sense/scripts/package-windows.bat`:复制 PowerShell 启动器,重打包时保留本机配置且从 ZIP 排除。
|
||||
- `docs/04-local-development-and-verification.md`、`docs/06-troubleshooting.md`、`docs/delivery/README.md`:由 Gitea Wiki 同步生成的长期说明。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 包内已有 `config\sense.env` 时无需手工 `set` 即可通过生产配置检查 | 通过 |
|
||||
| `check` 不连接数据库、不启动服务且不输出配置值 | 通过 |
|
||||
| 外部非空进程环境优先,加载器只接受 `SENSE_*` 且不执行配置内容 | 通过(代码检查) |
|
||||
| demo 强制内存模式,production 强制 PostgreSQL 和包内 UI | 通过(代码检查) |
|
||||
| 重打包后原配置不变 | 通过;重建前后 SHA-256 一致 |
|
||||
| ZIP 含 BAT、PowerShell 启动器、示例与说明,不含真实 `sense.env` | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行命令:`cmd /c Sense\scripts\package-windows.bat`
|
||||
- 结果:前后端打包成功,生成 Windows amd64 目录和 ZIP。
|
||||
- 执行命令:`cmd /c Sense\dist\sense-windows-amd64\start-sense.bat check`
|
||||
- 结果:输出 `Sense production configuration check passed.`,退出码 0。
|
||||
- 执行命令:检查 ZIP 条目和 SHA-256。
|
||||
- 结果:`start-sense.ps1` 与 `sense.env.example` 存在,真实 `config/sense.env` 不存在;ZIP SHA-256 为 `6311B29F1899691AF793A4758CD59096C5388D3C85214209B9EAFBCAD232BA8A`。
|
||||
- 执行命令:`python dev_scripts/sync_wiki_docs.py --check`
|
||||
- 结果:Wiki 镜像检查通过。
|
||||
- 执行命令:`python dev_scripts/check_harness.py --strict`
|
||||
- 结果:未通过;被基线中工单 #44 归档缺少“最终方案”章节阻塞,与本工单修改无关。
|
||||
- **未验证部分**:未连接用户 PostgreSQL 启动生产服务;未使用真实摄像机或 MediaMTX;因本工单不修改业务服务逻辑,这些留待部署验收。
|
||||
|
||||
## 遗留问题
|
||||
|
||||
- 基线工单 #44 的任务归档需在其自身验收闭环中补齐“最终方案”章节,之后再运行严格 Harness。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `5a17898` 修复 Windows 包内配置加载。
|
||||
- `6bbaa07` 更新 Wiki 镜像中的启动、排错和交付说明。
|
||||
@@ -127,6 +127,10 @@
|
||||
{
|
||||
"page": "Task-44-Sense管理员侧栏模块为空修复",
|
||||
"path": "docs/task/44-Sense管理员侧栏模块为空修复.md"
|
||||
},
|
||||
{
|
||||
"page": "Task-46-Sense-Windows包内配置加载",
|
||||
"path": "docs/task/46-Sense-Windows包内配置加载.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user