# 星线云技术概览

星线云包含公开产品页面、资源配置与风险提示、本机演示控制台，以及接入 Account 的服务端登录适配层。登录会话与演示资源是两套独立状态：取得身份不代表已经购买、创建或接管真实云服务器。

## 入口与组件

公开入口为 [星线云](https://cloud.thestarline.cn/)。当前源代码由原生 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](https://document.thestarline.cn/pay/)，公开支持入口见 [支持中心](https://document.thestarline.cn/support/)。

## 源码依据

主要实现为 `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`。页面行为应以这些实现与实际验收结果共同确认。
