# ⑤.7 模板配置台(Template Console)内核引擎 > 父 EPIC:#9「⑤.7 模板配置台 Template Console」 > 子 issue:#62 / #63 / #64 / #65 / #66 / #67(同一 feature 分支 `feature/issue-62`,单 PR 关联全部 6 个 issue) 配置台是一个**无代码、配置驱动**的内核能力,让实施工程师(而非开发者)按现场调 模板:点位字典、模型超参、RAG、驾驶舱布局全部在配置台编排,预览确认后发布版本, 再把版本推送给内核(edge-gateway / rag-kb / model-framework)生效。本目录是配置台 的**纯标准库核心引擎**(不是 Web 前端——前端由 cockpit 渲染本引擎产出的结构化输出)。 ## 为什么放在 `core/`? 配置台是**跨模板通用的内核能力**(RBAC / 配置存储 / 版本 / 推送契约服务于所有行业 模板:氯化 ti-cl4、树脂 resin、…),与 `core/edge-gateway`、`core/rag-kb`、 `core/model-framework` 同级,而非属于某个具体模板,故置于 `core/template-console/`。 ## 6 个子任务映射 | issue | 模块 | 职责 | |-------|------|------| | #62 | `rbac.py` | 三级 RBAC(管理员 admin / 行业工程师 engineer / 只读 readonly),角色继承、`has_permission(resource, action)` 带理由判定、细粒度收窄 | | #63 | `point_importer.py` | 点位字典 CSV 导入 + 自动校验页面。**复用** `core/edge-gateway/point_dict` 校验器(量纲/数据类型/采样率/重复点号/协议),增加 OPC 节点格式校验、表头列序校验、模板级量纲收窄(resin/ti)、行级结果聚合 | | #64 | `config_store.py` | 配置项 CRUD(模型超参 / RAG / 布局三类),文件系统版本化 JSON 存储,list/get/upsert/delete + 按类别校验,原子写,快照 snapshot/restore | | #65 | `preview.py` | 预览渲染引擎:布局(widget 卡片 + 网格占用率/越界/重叠检测)/ 告警(规则渲染 + 模拟触发评估)/ NL 查询(模板 → 示例问句)。对齐 `iAOP-cockpit-layout-v1` widget 类型 | | #66 | `release.py` | 版本发布 + 回滚点。基于 `config_store` 快照的 Release,semver 单调递增校验,publish 固化快照、rollback 恢复快照(不删历史、回滚事件可追溯) | | #67 | `push_channel.py` | 配置台↔内核配置推送契约。PushManifest(版本/快照/SHA256 校验和),PushChannel 模拟推送(写 manifest 到内核 inbox)、幂等(同版本不重复推送)、retract 撤回、verify 完整性校验 | ## 设计原则(对齐 PRD「可解释可溯源」与既有内核范式) - **纯标准库零运行时依赖**:不 import pyyaml/numpy/pandas。需要哈希用 `hashlib`, JSON 用 `json`,CSV 用 `csv`。 - **dataclass + Enum + 类型注解 + 中文 docstring**,与 `core/data-bus`、 `core/edge-gateway` 风格一致。 - **可解释性**:关键决策都带 `meaning` / `reason` 字段(RBAC 判定理据、配置项修改 原因、发布 changelog、回滚事件、推送日志),便于审计与配置台展示。 - **复用而非重造**:#63 直接复用 `core/edge-gateway/point_dict`(schema/loader/validator), 只增加配置台专属校验维度,避免与内核点位字典机制漂移。 ## 目录结构 ``` core/template-console/ ├── __init__.py # 包入口(导出 RBAC 公共 API) ├── rbac.py # #62 三级 RBAC ├── point_importer.py # #63 点位字典 CSV 导入+校验 ├── config_store.py # #64 配置项 CRUD 存储 ├── preview.py # #65 预览渲染引擎 ├── release.py # #66 版本发布+回滚 ├── push_channel.py # #67 配置推送契约 ├── _sanity_check.py # 离线基本校验(跑全部测试 + 冒烟) ├── README.md # 本文件 └── tests/ ├── _bootstrap.py # 挂载 template_console 包 + 暴露 edge-gateway/point_dict ├── test_rbac.py ├── test_point_importer.py ├── test_config_store.py ├── test_preview.py ├── test_release.py └── test_push_channel.py ``` ## 运行测试 ```bash # 嵌入式 Python(无 pip/pyyaml) /c/gitea/python312/python.exe -m unittest discover \ -s core/template-console/tests -p "test_*.py" -v # 离线基本校验(跑全部测试 + 冒烟) /c/gitea/python312/python.exe core/template-console/_sanity_check.py ``` ## 数据流(配置台典型用例) ``` 实施工程师导入点位字典(#63) ─┐ 行业工程师调模型超参/RAG/布局(#64) ─┼─▶ 预览确认(#65) ─▶ 管理员发布版本(#66) │ │ │ ▼ └──────────────────── 配置推送内核(#67) ─▶ edge-gateway/rag-kb/... 全程受三级 RBAC(#62) 权限管控;每次变更可解释、可溯源、可回滚。 ```