星线云技术概览
星线云包含公开产品页面、资源配置与风险提示、本机演示控制台,以及接入 Account 的服务端登录适配层。登录会话与演示资源是两套独立状态:取得身份不代表已经购买、创建或接管真实云服务器。
入口与组件
公开入口为 星线云。当前源代码由原生 HTML、CSS、JavaScript 和 Node.js 服务组成。
| 组件 | 实现职责 | 数据来源 |
|---|---|---|
| 产品与配置页 | 选择实例系列、地区、系统、资源与期限 | 静态模型和 URL 参数 |
| 控制台 | 实例列表、详情、订单、操作记录、帮助 | 浏览器本机演示状态 |
| 认证适配层 | 登录跳转、回调、会话、退出、管理能力检查 | Account OIDC |
| 静态服务 | 文件白名单、路径检查、响应头 | 公开站点文件 |
配置模型包含 family、region、os、vcpus、memory、storage、bandwidth、duration。系列为 general、compute、memory、performance;期限为 1、3、6、12 个月。模型允许的资源范围分别为 1–64 vCPU、1–256 GB 内存、20–2048 GB 存储和 1–1000 Mbps 带宽。这些是输入与展示规则,不能据此推断某地区的可售库存或交付承诺。
重复 URL 参数、非正整数和超界资源会进入校验或提示流程。性能等级按照所选资源计算;风险说明要求结合真实工作负载测试。等级与提示不构成跑分、实时监控或服务等级协议。
演示控制台的数据流
页面从 starline-cloud-console-demo-v1 读取本机状态,恢复失败时使用初始化状态。模型带 version: 1 和 mode: "demo",包含实例、订单、事件;演示实例的地址标记为“未分配(演示)”,订单金额可以为 null 并处于待确认价格状态。
开机、关机、重启和重命名先检查当前实例状态,再更新本机副本与事件记录。名称限制为 1–40 个字符,并拒绝控制字符。监控曲线来自固定样例序列。切换异常展示不会改变已存状态;浏览器禁止本机存储时,页面仍可操作,但修改仅在当前页面生命周期内保留。
因此刷新后的状态一致性只属于当前浏览器存储,不是跨设备账户同步。页面没有实现真实资源创建、远程终端、计费扣款或支付后自动开通链路;接入真实资源前,需要补齐服务端资源归属、幂等操作、审计和真实监控接口。
Account 登录契约
认证接口位于 /cloud/api/auth/,响应禁止缓存。浏览器只持有不透明会话 Cookie,上游访问令牌留在服务端内存。
| 路径 | 方法 | 行为 |
|---|---|---|
session |
GET | 返回配置状态、登录状态;已登录时含展示资料、CSRF 值与 ISO 时间格式的到期时间 |
login |
POST | 创建带 state、nonce、校验材料和 10 分钟期限的登录流程,返回授权 URL |
callback |
GET | 验证流程绑定、唯一参数、state 与 issuer,交换身份后跳回允许的控制台地址 |
logout |
POST | 删除本地会话,并尝试撤销上游令牌 |
management |
GET | 重新验证身份与 cloud.admin.read 管理能力 |
登录和退出要求精确匹配站点 Origin;已有会话的退出还校验 CSRF。next 只允许控制台路径与受限片段,不允许任意外站跳转。HTTPS Cookie 使用 Secure、HttpOnly、SameSite=Lax,并限定认证路径。流程与会话存于进程内 Map,进程重启会丢失;多进程部署需要另行设计共享存储或固定会话归属。
上游明确返回身份失效时会清除会话;临时不可用会返回错误,不能解释成用户主动退出。退出在本地立即生效,上游撤销失败不会阻止清除本地状态。管理能力接口的存在不代表资源管理 API 已实现。
失败、配置与验证边界
服务端只允许配置好的 Host,拒绝越界路径、隐藏路径、非白名单扩展和不支持的静态写入方法。认证未配置、流程过期、用户取消、上游异常、权限不足和流程容量达到上限分别进入对应错误或回调提示。客户端凭据及会话材料不能放入前端配置。
资料依据 2026-10-23 源码整理。模型和认证相关测试只能覆盖对应实现,实际部署仍需验证认证闭环、进程重启后的会话表现及上游故障处理;真实实例操作需要另行实现和验收。支付产品边界见 星线 Pay,公开支持入口见 支持中心。
源码依据
主要实现为 cloud/server.mjs、cloud/server/auth.mjs、cloud/server/oidc.mjs、cloud/server/management.mjs、cloud/purchase-model.js、cloud/console-model.js、cloud/dashboard.js 与 cloud/account.js。页面行为应以这些实现与实际验收结果共同确认。