Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StellCloud Web

StellCloud Web 是 StellHub 系列中间件的统一前端入口,面向大型企业内部的研发、SRE、平台工程和应用负责人,提供以应用为中心的服务治理、配置中心、日志平台、消息队列和 API 网关控制台。

中间件中台产品设计文档

1. 产品定位

StellCloud Web 不是单个中间件的后台页面,而是企业中间件中台的统一入口。它的核心价值是把分散在不同后端、不同 IP、不同团队维护的中间件能力,沉淀为一致的前端工作台。

产品定位如下:

  • 统一入口:用户从 StellCloud 进入所有中间件产品,不需要记忆多个后台地址。
  • 应用视角:所有页面围绕当前应用展开,而不是围绕机器、集群或某个后端服务展开。
  • 分域治理:服务治理、配置中心、日志平台、消息队列、API 网关保持独立 URI 和独立子模块。
  • 跨后端兼容:前端支持不同中间件后端运行在不同域名、端口、网段或网关路径下。
  • 企业级扩展:每个中间件子页面可以继续增长复杂业务逻辑,但入口层保持克制、清晰和稳定。

2. 目标用户

  • 应用研发:查看当前应用依赖的服务、配置、日志、Topic、网关路由和权限规则。
  • SRE/运维:排查链路异常、消费堆积、配置风险、实例健康和网关流量问题。
  • 平台工程师:维护中间件产品能力、治理规则、全局模板和平台集成。
  • 技术负责人:从应用维度观察中间件治理成熟度、风险分布和运行质量。

3. 信息架构

首页只承担企业门户和产品入口职责,不展示接口调参、后端地址、默认巡检状态等工程内部信息。

当前首页包含:

  • StellCloud 品牌与中台定位。
  • 当前应用视角。
  • 五个中间件产品入口。
  • 默认隐藏的左侧产品导航。

各中间件拥有独立页面和稳定 URI:

  • 服务治理:实例信息、实例空间、路由规则、熔断规则、限流规则、鉴权规则。
  • 配置中心:应用配置、通用配置。
  • 日志平台:日志检索、异常分析、Trace 关联、索引管理。
  • 消息队列:Topic 管理、消费组诊断、重放消息、死信队列。
  • API 网关:路由管理、证书管理、鉴权策略、流量策略、上游健康、审计日志。

4. 首页设计原则

首页需要简约、大气、稳定,像企业级平台入口,而不是调试工具页。

设计原则:

  • 不展示后端源站、代理路径、健康路径、Token、请求方法等接口调参内容。
  • 不在每个中间件卡片上默认展示工程占位状态。
  • 不把后端联通性作为首页第一信息层级。
  • 产品卡片只表达产品域、产品名称、核心能力和进入入口。
  • 健康检查、实例状态、后端联通性下沉到具体中间件页面。

5. 子页面状态设计

健康状态是运维动作,不是首页导航能力。它应当出现在用户已经进入某个中间件之后,用来判断当前产品后端或业务域是否可用。

子页面状态分层:

  • 未检查:页面尚未主动检查该中间件后端。
  • 运行正常:健康接口可达,产品后端处于可用状态。
  • 需要关注:健康接口可达但返回非理想状态,适合提示 SRE 进一步查看。
  • 连接异常:健康接口不可达或请求失败。

这种设计可以避免首页出现一排无业务含义的默认状态,同时保留必要的运维诊断入口。

6. 应用视角

StellCloud 的全局上下文是 appId,格式固定为五段式:

organization.businessDomain.capabilityDomain.application.role

默认值:

stellhub.core.middleware.stellcloud.admin

前端需要保证:

  • 路由跳转时通过 ?appId=... 保持应用上下文。
  • 请求后端时通过 X-Stell-App-Id 透传应用上下文。
  • 页面展示时突出应用名称和所属组织、业务域、能力域、角色。
  • 各中间件页面使用同一个 appId,避免用户在不同控制台之间重复选择应用。

7. 跨后端兼容设计

StellCloud Web 使用后端目录管理每个中间件产品的连接方式。每个产品可以独立配置:

  • baseUrl:直接访问后端源站,例如 http://10.0.1.12:18080
  • proxyPath:同源代理路径,例如 /api/stellorbit
  • healthPath:子页面健康检查使用的后端健康端点。
  • modedirect-corssame-origin-proxy
  • credentials:浏览器凭据策略,默认 omit

浏览器 CORS 不能由前端代码绕过。对于企业内网多后端场景,推荐生产环境通过 API Gateway、Nginx 或 BFF 做同源聚合,前端只维护稳定的产品级访问契约。

当前开发代理:

  • /api/stellorbit -> http://localhost:18080
  • /api/stellcloud/control-plane -> http://localhost:18080
  • /api/stellspec -> http://localhost:18280
  • /api/stellflow -> http://localhost:18380
  • /api/stellgate -> http://localhost:18480

8. 前端分包策略

每个中间件平台和子模块都必须独立演进,避免把未来的大量业务代码堆在单个入口文件里。

当前代码组织:

  • src/app/platforms.ts:产品路由注册表。
  • src/app/app.ts:应用壳层、全局导航、应用视角、路由渲染。
  • src/app/backendDirectory.ts:中间件后端目录。
  • src/app/httpClient.ts:跨后端请求封装。
  • src/features/*:各中间件子模块页面。
  • src/shared/*:共享类型、HTML 转义和模块页面渲染基础。

子模块通过动态导入加载,构建后会形成独立 chunk,后续可以逐步替换为更完整的组件、OpenAPI Client、状态管理和权限控制。

9. 当前路由

  • /platform/service-governance/instances
  • /platform/service-governance/spaces
  • /platform/service-governance/routes
  • /platform/service-governance/circuit-breakers
  • /platform/service-governance/rate-limits
  • /platform/service-governance/auth-rules
  • /platform/configuration/app-config
  • /platform/configuration/shared-config
  • /platform/observability/log-search
  • /platform/observability/exceptions
  • /platform/observability/trace-link
  • /platform/observability/indexes
  • /platform/messaging/topics
  • /platform/messaging/consumer-groups
  • /platform/messaging/replay
  • /platform/messaging/dead-letter
  • /platform/api-gateway/routes
  • /platform/api-gateway/certificates
  • /platform/api-gateway/auth
  • /platform/api-gateway/traffic
  • /platform/api-gateway/upstreams
  • /platform/api-gateway/audit

10. 视觉方向

整体视觉采用星际、宇宙、控制舱风格,但不牺牲企业系统的清晰度。

设计要求:

  • 首页简洁,突出品牌、应用视角和产品入口。
  • 左上角仅展示当前登录用户名称,不放置品牌、菜单文案或运行状态。
  • 左侧菜单默认隐藏,避免入口页被导航压迫。
  • 左侧导航与右侧工作区保持颜色层级区分。
  • 子页面进入时有轻量页面动效,形成“进入新控制台”的体验。
  • 不使用大面积营销式说明,不把调试信息当作主要内容。

11. 后续演进

建议按以下顺序演进:

  • 接入真实 OpenAPI Client,替换当前 demo 数据。
  • 引入统一权限模型,按 appId、角色、产品域控制可见能力。
  • 建立产品级错误码、空状态、加载态和审计事件规范。
  • 将健康检查扩展为产品子页面内的运行态诊断面板。
  • 增加应用选择器、收藏视图和最近访问模块。
  • 引入统一可观测埋点,追踪页面访问、操作触发和失败路径。

Development

Install dependencies:

npm install

Start the development server:

npm run dev

The local Vite port is 5180.

Build for production:

npm run build

About

TypeScript frontend entry point for StellCloud, unifying web access to Stell middleware products and cloud platform workflows.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages