08_归档04_VOZEB任务卡
OceanWay 三站点架构
OceanWay 使用同一个 Next.js 服务承载三个产品入口,通过请求 Host 在服务端分流。三者共享数据库和父域 Session,但页面职责、导航和模型发布范围相互独立。
| 站点 | 职责 | 外部路径 |
|---|---|---|
oceanway.tech | 公共宣传、作品展示与产品入口 | / |
canvas.oceanway.tech | 当前创作工作区、Canvas、短剧与用户中心 | /、/canvas、/drama 等 |
ai.oceanway.tech | 开发者门户、模型目录、API Key、用量与 /v1 API | /、/models、/keys、/usage、/v1/* |
生产环境配置:
NEXT_PUBLIC_SITE_URL=https://oceanway.tech
NEXT_PUBLIC_MARKETING_ORIGIN=https://oceanway.tech
NEXT_PUBLIC_CANVAS_ORIGIN=https://canvas.oceanway.tech
NEXT_PUBLIC_DEVELOPER_ORIGIN=https://ai.oceanway.tech
OCEANWAY_COOKIE_DOMAIN=oceanway.tech
OCEANWAY_COOKIE_SECURE=trueNEXT_PUBLIC_* 变量需要在构建 Web 镜像时可用。反向代理必须把三个 Host 原样转发给同一个应用,并按实际代理层数配置 VOZEB_PRO_TRUSTED_PROXY_HOPS。
会话与请求边界
- 登录 Cookie 使用
Domain=oceanway.tech、HttpOnly、Secure、SameSite=Lax,三个子站可以识别同一登录状态。 - 浏览器仍然只调用当前站点的同源
/api/*,不使用跨域 Cookie 请求,因此无需放宽 CORS。 - 非 GET API 请求继续校验精确
Origin/Referer,共享登录不等于允许跨站写入。 - 登录页只接受三个配置站点或本地相对路径作为回跳目标。
模型发布边界
逻辑模型通过显式 surfaces 控制用途,不根据模型名称猜测:
web:可进入 Canvas、Agent 与网页模型选择。api:可进入开发者模型目录和/v1路由;同时必须存在 API 费率。internal:只供审核、规划等内部服务使用。- 空数组:已经建立渠道路由,但尚未发布到任何产品面。
新同步的上游模型默认不发布。管理员确认能力后再选择发布范围;API 模型还可以设置公开“模型系列”,大量文本模型先按能力、再按系列组织。一个模型可以明确勾选多个范围,但任何范围都不会被自动推导。