# 中台引擎(L2 · :8088) 城轨智能中台四层架构中的 **L2 中台层**,Express API 服务,**仅绑定 127.0.0.1 本机回环**(`src/main.js:20`)。中台只解决"接入"与"安全",业务能力在各子系统内部实现——本目录不含任何业务子系统代码。 ## 架构位置 ``` L1 AI 客户端(:8090) ↓ L2 中台引擎 = 本目录(:8088,仅 127.0.0.1) ↓ MCP 路由 L3 子系统 MCP Server(:7777 排班 / :7778 画像,见 scripts/mcp-server-sdk.js) ↓ dispatcher L4 业务工具层(子系统内部,2496 个既有业务函数,零侵入) ``` ## 核心模块 | 模块 | 位置 | 说明 | | --- | --- | --- | | 服务入口 | `src/main.js` | 127.0.0.1 监听、路由装配 | | JWT Ed25519 鉴权 | `src/auth/` | `signEdDsa`/`verifyEdDsa`(jwt-ed25519.js),密钥强制 ed25519(jwt-keys.js) | | 审计·链式哈希 | `src/audit/` | 每条日志承接上一条 SHA-256,篡改任一条整链断裂(audit.js:45,58,90-94) | | RBAC 权限 | `src/rbac/` | 角色权限缓存与校验 | | 数据导入 | `src/import/` `src/upload/` | 月度材料/月考/人员名册导入;batch_uuid 防重、同月重复上传即覆盖(§5.1 幂等) | | 预计算 | `src/precompute/` | 乘务指标预计算——AI 不算账,业务系统算好 | | 导出 | `src/export/` | 报表导出工作队列 | | 公共包 | `../packages/shared/` | 模块注册表、常量、备份表定义 | ## 运行 ```bash cp .env.example .env # 按需修改(开发占位值,生产密钥走本地密钥目录) npm install npm start # node src/main.js ``` ## 密钥说明 JWT Ed25519 密钥对由 `scripts/generate-jwt-keys.js` 在本地生成,存放于本地密钥目录(`keys/` 已被 .gitignore 排除,**任何情况下不入库**);PII 字段加密密钥(DATA_ENC_KEY / DATA_HMAC_KEY)同理,生产环境由密钥目录管理。