aios-app-invoke-proxy-service
v0.1.3
Published
MQTT service proxy for AIOS application invocation.
Maintainers
Readme
aios-app-invoke-proxy-service
aios-app-invoke-proxy-service 是面向 AIOS 应用调用的独立 MQTT 服务。它监听 aios-apps-invoke-cli 请求,通过 loopback HTTP 从同容器部署的 web 服务获取业务系统配置,执行 provider 调用,并把响应发布回 MQTT。
本服务不提供 HTTP Server。
职责边界
本包负责 MQTT app invoke 链路。web 项目不消费 AIOS_APP_INVOKE_* topic。
web:管理应用配置和调用日志aios-app-invoke-proxy-service:处理 MQTT 消费、发布和 provider 执行
安装
npm install -g aios-app-invoke-proxy-service运行
aios-app-invoke-proxy-service也可以使用:
aios-app-invoke-proxy-service serve查看解析后的配置:
aios-app-invoke-proxy-service status配置
CLI 从环境变量读取 MQTT 设置:
AIOS_MQTT_CHANNEL_BROKERAIOS_MQTT_CHANNEL_USERNAMEAIOS_MQTT_CHANNEL_PASSWORDAIOS_APP_INVOKE_INBOUND_TOPICAIOS_APP_INVOKE_OUTBOUND_TOPICAIOS_APP_INVOKE_PROXY_CLIENT_ID
默认值:
- 入站 topic:
aios/app-invoke/inbound - 出站 topic:
aios/app-invoke/outbound - web 基础地址:
http://127.0.0.1:3030
本服务不需要 Token。它始终在同一容器内通过 3030 端口以 loopback HTTP 调用 web。
Web API
本服务调用 web 的仅限 loopback 接口,用于:
- 将
provider + applicationName解析为业务系统配置 - 按 external
sessionId获取 provider Cookie - 每次请求结束后持久化调用日志
当前与 management-website 的对齐方式:
- 业务系统查询使用
GET /api/internal/app-invoke/system - Cookie 查询使用
GET /api/external/cookie - 调用日志写入使用
POST /api/external/invoke/logging
所有调用都预期来自 localhost,不发送 Bearer Token。
HZG Binding 支持
当前对齐 [email protected],支持:
GetTableDataWithOffsetGetComboBindingOptionsCalcBindingDataSource
CalcBindingDataSource 用于调用 [email protected] 生成的 DataSourceBindings。请求 body 可按 ontology 中的 page-name、cell-location、table-name、columns、query-params 生成;其中 columns[].display-name 会在 proxy 内兼容转换为 SDK 的 columns[].response-name。
部署
推荐拓扑:
web和aios-app-invoke-proxy-service放在同一个内部 Docker 容器docker-image-kernal放在 DMZ 容器- 两侧只通过 MQTT 通信
发布
npm run verify
npm publish --access public