OceanWayOceanWay
平台与产品OceanWay Studio

oceanway-vozeb 收敛计划

将现有 oceanway-vozeb 收敛为 OceanWay Studio 代码基座的边界与阶段

从 oceanway-vozeb 收敛到 OceanWay Studio

正式决定

canvas.oceanway.tech 以当前 oceanway-vozeb 项目为代码基座继续演进。该项目的目标产品身份是 OceanWay Studio 通用创作平台;公开开发者内容迁往 ai.oceanway.tech,登录后 Developer 控制面迁往 console.oceanway.tech/ai,所有公共机器调用迁往 api.oceanway.tech/v1

这个决定同时约束页面、接口、领域对象、构建产物和运维责任,不能只把导航入口隐藏起来。

当前基线

当前代码已经包含创作首页、统一 Agent、Canvas、素材、作品、短剧能力,也包含开发者首页、模型目录、API Key、用量页面、/api/developer/*/v1/*

因此当前形态是一个通过 Host 和路由分流的模块化单体。它适合作为迁移起点,但不是最终产品边界。

目标边界

保留并演进

  • 统一创作 Agent、图片/视频/音频创作模式;
  • Canvas 文档库、无限画布编辑器、节点与连接;
  • 创作素材选择、作品管理和产品内资产视图;
  • Canvas 内的 Agent 协作、任务恢复与结果写回;
  • 调用共享 Identity、Tenant、Billing、Model、Run、Asset、MCP 服务的适配层;
  • OceanWay Studio 自己的页面、状态、模板与交互。

迁往开发者产品的三个 Surface

  • ai.oceanway.tech:公开模型、SDK、开发者文档、价格、状态、更新日志和 API 生命周期说明;它是 API 文档的 Canonical Surface;
  • console.oceanway.tech/ai:Developer App、Environment、Service Account、Credential、Playground、API 用量、请求日志、Webhook 与 API 限额;
  • Console Developer BFF:暴露 /api/developer/*,只负责页面鉴权、输入映射与命令转发;
  • Developer Access Domain:唯一执行命令并写入 Developer App → Environment → Service Account → DeveloperCredential 四层资源;
  • api.oceanway.tech/v1:接管面向客户程序的 Public API Edge。

不应因迁移而删除

  • web / api / internal Surface 契约;
  • Canvas 使用 web Offering 所需的公共模型客户端;
  • 通用 Run、计量、Reservation、Settlement 与资产登记契约;
  • 跨站 Customer Identity 和组织上下文;
  • 供 Console、AI、Canvas 共用的稳定领域接口。

这些能力目标上属于 OceanWay Core 或独立共享服务。若当前仍与 Canvas 位于同一代码库,应先封装边界再迁出,不能为了“删除开发者代码”让 Canvas 重新直连 Provider 或自建钱包。

路由迁移规则

类型迁移期目标态
公开开发者 GET 页面从 Studio Host 跳转到 ai.oceanway.tech 对应页面Studio 构建物中不存在页面实现
登录后开发者 GET 页面跳转到 console.oceanway.tech/ai 并使用可信返回地址只由 Console Developer 专业空间承载
开发者管理 APIConsole Developer BFF 接管暴露与转发后停止 Studio 写入;短期代理只透传Developer BFF 暴露并转发,Developer Access Domain 唯一执行命令和写入
公共 API POST不使用普通页面重定向迁移生产请求只由 api.oceanway.tech/v1 接收
模型目录Studio 只请求 web OfferingAI 展示公开 api Offering;Console /ai 叠加当前授权
用量入口Studio 展示本产品 Run 摘要Console /ai 展示 API-only 用量;Console 总览展示跨产品聚合

公共 API 的正式机器入口已确定为 api.oceanway.tech/v1。Studio Host 上的 /v1/* 只属于迁移期遗留,不得作为新客户端接入地址。

分阶段执行

C0:冻结所有权

  • 建立 Canvas 与 Developer 模块清单;
  • 标记页面、API、数据库对象、环境变量和后台配置的目标归属;
  • 禁止新增只能从 Studio Host 访问的开发者功能;
  • 为现有开发者入口建立路由和行为回归基线。

C1:先拆产品界面

  • 在 AI 公开中心与 Console Developer 专业空间建立各自等价入口;
  • 将开发者导航、页面和静态内容从 Canvas 构建产物移除;
  • Studio 的旧公开 GET 链接跳转到 AI,旧登录后管理链接跳转到 Console /ai,并保留安全的登录回跳;
  • Canvas 页面不再展示 API Key、API 模型目录和跨产品 API 用量。

C2:再拆开发者领域

  • 建立 Developer App → Environment → Service Account → DeveloperCredential 完整资源链;
  • API Key 不再直接归属个人用户;
  • Developer BFF 接管开发者管理接口的暴露与转发,所有四层资源写入仍只由 Developer Access Domain 执行;
  • 项目尚未正式上线,开发测试 Key 按新资源模型重新创建,不建设无必要的旧结构兼容层。

C3:隔离公共 API 与执行链

  • Public API Edge 只接受 DeveloperCredential 或 Console BFF 持有的短期 Playground Execution Grant;Grant 以 Customer User 为 actor 并绑定既有 Service Account,不创建独立 Playground Principal;
  • 创建稳定 OceanWay Run / Attempt,并绑定 Offering Revision、预算和 Gateway Task;
  • 补齐媒体异步创建、查询、结果读取和终态结算;
  • Studio Host 不再对外放行 /v1/*

C4:移除过渡代码

  • 删除开发者页面包装、旧路由和无调用的客户端状态;
  • 删除 Canvas 对 Developer Domain 私有表和服务的直接依赖;
  • 保留共享契约的正式客户端,不复制 Core 实现;
  • 用部署与路由测试证明两个产品可以独立发布和回滚。

验收门禁

  • canvas.oceanway.tech 不出现开发者导航、API Key、API 模型目录或 API 用量页;
  • Canvas 浏览器只获得 web Surface 允许的公开模型信息;
  • 访问旧公开开发者页面可以安全到达 AI;访问旧管理页面可以安全到达 Console /ai,且组织上下文和可信回跳有效;
  • Canvas 的登录、钱包摘要、资产、Run 和模型调用仍使用共享事实源;
  • Studio、AI 公开中心、Console 与 Public API Edge 可以独立构建或至少独立发布、回滚和隔离路由;
  • Public API 请求不会因为页面 Host 跳转而丢失 Body、幂等身份或认证信息;
  • Canvas 日志和错误中心不再承担 Developer API 产品支持职责。

仓库决策

仓库边界已执行:AI 公开中心、Console、Public API Edge 与 Studio 分别归入 oceanway-developer-centeroceanway-consoleoceanway-api-edgeoceanway-studiooceanway-vozeb 作为迁移来源保留完整历史;共享身份、钱包、Asset、Run、Agent、MCP 与 Model Control 迁往 oceanway-core,不在各产品仓复制实现。

仍待决策

  • 旧 API 地址的关闭方式与兼容窗口;
  • 规划中的通用文档 Host 的启用时间,以及它与 ai.oceanway.tech 这一 API 文档 Canonical Surface 的交叉导航;
  • 旧开发者页面的跳转保留期,以及未上线环境是否直接移除。

延伸阅读

On this page