Module Console UI
为精确 Module Release 发布回执绑定的 console_ui_esm 制品。
Module 可以把运维 UI 作为不可变 console_ui_esm 制品交付。UI 属于 Module
Release,不属于 Console 仓库;只有 Console 校验已连接 System Receipt 和全部
制品 Binding 后才会加载。
合约形态
ModuleManifest.console 包含 ConsoleSurface 声明。每个源码声明持有
name、label、route、presentation、可选 icon、所需 Capability 与可选
Navigation。可执行 UI 通过 ConsoleSurfacePresentation::Esm { entry } 指定 ESM
Entry;这个源码形态没有 area 字段。
Framework 从这些可执行声明生成制品中的
ConsoleModuleManifest.surfaces 列表。每个生成的 ConsoleModuleSurface 使用
id、path、label、由 Route 推导的 ConsoleModuleSurface.area、所需
Capability、可选 Icon 与可选 Navigation。不要把生成的 Presentation 字段反向
写入 ModuleManifest.console。
ModuleManifest.console_slots 与 ModuleManifest.console_contributions 是独立的
Extension 声明;它们不是 ConsoleSurface 内的 Context 字段,也不是生成的
ConsoleModuleSurface 成员。
同一 Module Release 携带一个 ConsoleUiArtifact,其中包含:
console_ui_esm格式;- 制品 Locator 与 SHA-256 摘要;
- 生成的
lenso.console-module.v1Presentation Manifest; - 相互独立的
hostApi与consoleUi兼容范围; - 具名 ESM Entry 与可选 Style Asset,全部绑定摘要;
- 与所属 Module Release 一致的不可变 Provenance。
Entry 缺失、摘要不匹配、协议范围不兼容、Surface 未声明,或制品属于其他 Module Release 时,Console 会拒绝加载。
运行时 API
Entry 使用 @lenso/console-module-api 的 framework-neutral Manifest 与强类型
Host Operation。React Surface 使用 @lenso/console-ui 的 Adapter、Surface
Root、共享组件与强类型 StyleX Slot。Console 注入不可变 Slot Context;Module
UI 不导入 Console 内部实现。
Host API 提供导航、Locale、当前 Actor、System Context 与同源 Surface Gateway 调用。Surface 必须能呈现四种对象状态:
connected:正常操作可用;unavailable:显示服务端原因和重试入口;incompatible:指出合约或制品不匹配;unmanaged:说明没有 Management Binding 覆盖该对象。
Business API 调用
从 Module 已提交的 OpenAPI 合约生成 Client。Surface 通过 Surface Gateway 调用该 Client;不得自行构造 Service Base URL,也不得附加 Service 凭据。
每个请求都受已连接应用的 Surface Grant 限制:
- Console Actor 与可选 Tenant;
- Module 身份和 Module Release 摘要;
- UI 制品摘要;
- Business API Contract 摘要;
- 精确允许的 Operation ID。
任一 Binding 变化时 Gateway 都会 fail closed。浏览器直连 Service 不属于支持 模型。
打包循环
- 构建 ESM Bundle 与生成的 Presentation Manifest。
- 计算 JavaScript 和每个 Style Asset 的摘要。
- 把制品附加到同一不可变 Module Release。
- 运行所属仓库的 Module Release 与 Console 制品检查。
- 组合选择该精确 Release 的新
lenso.app.json修订。 - 连接该精确拓扑,并在真实浏览器中校验 Surface。
操作设计参见 Business API 与 Console Surface;System Binding 与浏览器权限参见 Lenso Console。