DEV-STUDIO-07-001 平台对接
Studio 接入统一身份、资金与运营权威,同时保留本产品使用和运营入口
本期共享原件接入按ADR-0023及DEV-STUDIO-07-002统一交付新引用Writer、资产/候选映射、读取和持久解绑,不承担旧对象协议或旧测试数据兼容。下文具名日期的早期接线内容保留原时点,不能据此代验当前引用合同;实际分项与未验边界见PROC-02-006。
Studio 现在自带账号、积分、支付、渠道和模型路由。接入平台后,这些能力的权威实现由平台提供,Studio 对应代码逐项退出或改为调用平台。2026-10-08用户明确:Platform应能查看用户在OceanWay各产品的使用、生成、消费、金额、订阅、套餐购买和活动;各子站保留本产品的用户情况、套餐和专属活动运营入口。本页按该决定调整2026-10-01初步清单,规则唯一源见统一运营与产品运营,关联PL-021 / T-13 / AC-16;以下是目标接入要求,不代表已迁移或验收。
当前安排(2026-10-12):Platform 已调通且上线,恢复 Studio 改造准备与分批接入。 按用户最新说明登记 D-STUDIO-RESUME,替代此前暂停 Studio 的安排。复用默认关闭的只读接入桥、显式绑定和业务 outbox,先做身份/对象隔离,再完成单次文本与本域记录闭环;媒体、购买和运营按对应接口分别交接。平台剩余范围仍在开发任务清单追踪,不作为全部 Studio 工作的统一开工前置。本次恢复准备未修改运行代码或部署开关,不表示已完成产品权威切换。
首批改造范围与交接点
首批关联 T-04 / T-13.5、PL-002.R02 / PL-021.R01/R06/R07、AC-02 / AC-16.A01/A05/A06/A07;沿用现有 /create、会话、Run、历史和素材模块。
| 顺序 | 具体改造与现有入口 | 交接及验收 |
|---|---|---|
| 1. 固定实际接入配置 | 复核部署版本、API Origin、产品 Host/Origin、Cookie 契约和产品动作;复用 web/src/shared/platform/{config,client,identity}.ts | 当前部署证据是独立 host-only __Host-oceanway-platform-staging Cookie,Studio 客户端识别 oceanway_session。先交接共享域或正式身份交接方案、受控登录返回和退出/切号;Console 登录通过不代验 Studio SSO。服务凭据留在服务端 |
| 2. 创作身份与资料 | 梳理 lib/auth/session.ts、api/auth/session、page-access.ts、用户 layout/store 及 database/schema.ts,将创作主体与本地余额/套餐/admin字段解耦 | 保留稳定创作资料 ID 和显式账号关联,不按邮箱/用户名合并。已有绑定可用于受控联调;正式接纳新平台用户前交付幂等最小 profile 创建,解决当前 users 密码/套餐约束和创作外键,不能伪造本地账户字段补齐身份 |
| 3. 可信产品对象隔离 | 在首批会话、消息、Run、任务、引用和结果的类型、repository、查询与幂等身份中保存服务端确定的产品和平台用户关联 | 同一用户跨产品访问仍核产品归属;surface 与摘要 businessProduct 不充当对象授权。长连接每批释放数据前复核原主体/SID。全局身份切换前盘点未迁移项目、画布、素材和后台入口并明确访问边界 |
| 4. 显式单次文本 | 复用 /create、api/agent/runs、agent-run-store 与 agent-run-executor,提交时确定纯文本模式;共享客户端接当前用户授权的产品模型委托 | 当前真实模型 gpt-5.5 已验的是 /v1/responses 本人 Key 路径,现有产品新调用只有 /api/platform/v1/relay/chat/completions。交接同协议的产品入口,或另验实际开放 Chat 组合后再切换;不借开发者 Key 代替产品授权。首批不通过先规划再判意图隐式扩成媒体/多步调用 |
| 5. 原请求与结果恢复 | 任务先持久保存业务请求、指纹、幂等身份及授权关联,保存原 operation;执行、资金和产品保存状态分别维护,Worker 只查询/保存原结果 | 原 operation 尚未收到或持久化时的正式受限定位仍须补齐。最新本地原结果实现已有多协议及完整流式回执支持,需同步 OpenAPI/DTO并验正式产品 HTTP 与实际部署版本;UNKNOWN 不重发,平台成功后产品解析/落盘失败不触发本地退款 |
| 6. 本域记录与首次联验 | 接固定只读 BFF,真实 operation 关联进入既有事务 outbox;Studio 读本域,Console 读本人全域 | 隔离 PG/TLS 与本地上游夹具覆盖登录返回→一次文本→原结果保存→两端同任务/费用;另验重复提交、响应丢失、重启、保存失败、退出/撤权和跨用户/产品拒绝。一次发送、一次原账务,业务摘要不重复计数或记账 |
当前可推进代码依赖梳理、身份/资料与对象边界设计、只读入口接线准备及本地契约夹具。文本执行切换依赖上表中的产品协议、原请求定位和当前身份交接;媒体、适用资源、活动与经营聚合留给对应后续切片,已有商业/事件分项证据复用。首次对外切换须禁止同一切片继续走旧账户/收费路径;未迁移能力明确标识并限制,不能自动退回本地钱包。首批通过只登记身份/文本/摘要分项,不关闭全部 T-13 / AC-16。
退出本地权威实现
| 能力 | Studio 中的位置(初步) | 平台中的对应 |
|---|---|---|
| 注册、登录、找回密码、邀请注册 | src/app/register、login、forgot-password、invite,src/app/api/auth,src/lib/auth | 全局登录 |
| 积分、账单、积分流水 | src/app/api/credits、billing、points | 平台唯一钱包与账务;Studio保留本产品消费视图,余额读平台 |
| 套餐、活动和奖励的规则、订单、履约与核销 | billing/products、billing/promotions、check-in、referrals、cdk、billing/coupons等 | 平台统一规则、发布、购买订单、支付和权益;产品界面通过受限平台接口运营本产品对象,具体活动类型按确认范围实施 |
| API Key 页面 | 用户端 (user)/keys | Console 的 API Keys |
| 用量和生成汇总数据来源 | 用户端 (user)/usage及生成记录关联 | Studio保留本产品使用与消费页;平台使用事实加产品业务摘要,Console提供全域视图 |
| 渠道、协议、模型路由 | src/lib/channel-protocol-registry.ts、model-routing-config.ts 及相关管理接口 | 平台模型目录;供应由 uumi 和媒体网关负责 |
| 全局账号、支付、账务、标准模型价和员工授权 | src/app/api/admin 下相关users、billing、pricing、models等写入实现 | Admin;产品保留本域用户运营和套餐/活动入口,不能直接改平台用户或账务,见管理功能 |
退出的是产品自建账号、资金、支付和商业规则的独立写入路径。用户端的本产品用量、消费、订阅、活动与管理端的本域运营页面按下列要求改接,不因数据权威在平台就删除这些入口。
改造
- 登录态。 页面和接口改为读取主域名共享 Cookie,向平台确认身份;未登录跳转平台登录页。用户资料以平台为准,Studio 只保存创作相关的数据。
- 模型调用。 Agent、画布等所有生成请求,从直连渠道改为调用平台的模型 API。生成任务进程同样通过平台提交和查询任务。
- 非模型收费。 如有不对应模型调用的收费项(如 FFmpeg 合成),改调平台的预留、结算、释放接口。
- 资源与补量。 生成前读取平台适用资源与预检结果,区分权益覆盖和用户授权的钱包后备支出;不能用Studio本地余额判断拒绝有适用权益的用户。资源不足时保留原创作上下文,提供通用充值或已发布的补量商品入口,购买后重新预检;续期不等于立即补满本期。
- 本域记录。 使用、生成和消费按可信Studio作用域查询,包含原业务任务与一个或多个平台操作的关联。Agent规划、优化及最终生成各自保留真实调用事实,用户可查看业务任务汇总和费用明细;业务生成次数不等于模型请求数。
- 套餐与活动。 Studio展示获准入口可售商品、本产品适用权益、活动规则与本人状态;创建购买或领取请求由平台校验规则、资格和原快照,统一支付及履约。普通余额、共享用量订阅、专项资源和功能访问权分别呈现,订阅展示当前与待生效覆盖段,同档续购和下期换档遵循商业整体方案。产品不创建第二订单、余额或权益核销服务;功能会员仅在真实功能及服务端访问控制验收后销售。
- 来源与适用范围。 商品/活动的
owner_product表示运营归属,sales_surface表示实际购买或参与入口,权益范围表示可用产品/模型/规格,operation.product表示真实使用来源。用户从Console购买Studio套餐时归属仍为Studio,入口记录为Console;不能把购买入口当作权益范围。按2026-10-10已确认方向,通用用量订阅由API和获准创作产品共同消费同一份有限额度,Studio显示“本产品可用,跨产品共享”;产品专项商品/活动默认本产品,跨产品范围须明确发布。具体已购范围遵循平台原快照,不能在Studio复制一份库存或自动扩大到新产品。 - 后台授权。 服务端由已登记Host选择产品作用域及对应服务凭据;用户会话和员工当前产品动作权限由平台核验。浏览器提交的产品名、账户ID或筛选条件不授予跨产品读取或写入权限。产品后台Worker只恢复原已授权操作。
- 全域业务摘要。 业务任务、结果保存和作品等需要纳入平台全域记录的事实,通过持久业务事件交付平台摘要投影;金额、权益和支付继续读平台原始事实,不由产品事件再次记账。项目正文、原始提示词和长期素材保留在产品,敏感内容仅通过重新授权的产品详情或媒体入口访问。
公共能力下沉
为了让 Commerce 等后续产品复用,以下能力在已交接并验证的产品切片中逐步整理到 web/src/shared/,产品规则放入 web/src/products/*;按完整切片验收,再退出对应旧权威:
- 任务运行与生成进程
- 对象存储、上传、媒体代理
- 画布、提示词库、素材库
- 平台接入代码
web/src/shared/platform/,服务凭据与会话校验仅在服务端使用
分批执行顺序
业务事件当前实现覆盖generation task、Agent Run各独立尝试及素材上传/导入/保存;PostgreSQL同事务,File同业务文件原子封装,Agent消息/事件与任务一起提交。/profile?section=security由双方真实会话显式绑定本地身份与平台身份;本地会话Cookie使用 oceanway_studio_session,平台Cookie仍为 oceanway_session。配置业务摘要接入后,新业务在提交前取得平台摘要授权;后台从已存授权恢复投递,Cookie或产品Key不落事件。worker补发只重投原事件。事件协议分别表达产品task/run/attempt编号与真实Platform operation_id;当前未迁移的本地创作没有真实平台收费操作,operationIds保持空,不能用本地预留编号代替。首批文本Run仍需持久保存原平台调用关联。配置与运行方式以Studio当前实现说明为准,具名测试与限制见平台product-business-events专项。
本节是按 D-STUDIO-RESUME 恢复的 Studio 侧实施拆分,关联T-13.2~5、PL-021.R01~12及AC-16;商业规则仍维护在平台唯一源。当前Studio已接业务事件授权、可靠outbox、显式身份绑定及共享Commerce BFF;现有创作模型执行、账号、积分、支付和渠道权威尚未全面切换,业务事件接线不表示这些路径已退出。平台工作树已有产品文本委托、本域记录、业务事件接收及产品订阅路由,代码存在与完整联调通过分别判断。
2026-10-12按当前源码核查:产品订阅商业动作、产品商业路由和可信产品媒体消费预检已经存在;完整产品媒体委托、本产品适用的跨产品来源资源投影、专属活动和经营聚合按后续切片交接。首批直接依赖的是当前部署身份/外部受控返回、产品文本协议以及原 operation 丢失后的定位,上表具名跟踪。后台摘要恢复仍引用原 operation 或非模型业务授权锚点,不能为上传/保存伪造收费操作。Platform 本地商业联合验收与产品真实创作闭环分别判断。
已完成的接入准备(2026-10-10)
Studio 新增 web/src/shared/platform/ 和固定只读 BFF,OCEANWAY_PLATFORM_INTEGRATION_MODE 默认 disabled。显式启用后,服务端按已登记 Host、对应 Origin 和产品凭据解析当前平台用户;共享 Cookie 必须唯一,复用已有显式绑定反查本地创作资料,不自动合并同名账号。该上下文不输出本地余额、套餐或管理员权限,也不授予新调用权限;现有 /api/auth/session 与创作执行仍为本地权威。已有业务 outbox 按 Platform Origin 与对应产品 Key 独立启用,关闭 Bridge 不等于停止全部平台业务摘要同步;本次顺序调整不改变其配置语义。
/api/platform/connection、catalog、records、subscriptions、wallet、resources、activities 只输出列明字段并禁止缓存,读取后复核用户及 SID。目录目前是本人获准的已发布文本共享目录,不代表图片/视频就绪或产品调用许可。本域记录采用产品查询;模板按可售入口读取,订阅按运营归属读取,共享钱包为本人全域余额,金额和资源数量保留精确字符串。适用资源、功能会员与专属活动返回明确未支持状态,不能将缺契约误报为无权益。创作数据仍需补可信产品字段及逐对象隔离校验,现有全局身份绑定不能代替产品隔离。
Platform 同批补充 GET /api/platform/v1/operations/:id/relay/result 与 POST /api/platform/v1/operations/:id/relay/result/reconcile。前者要求原操作本人当前会话及产品 operation:read;后者仅供无会话后台持原操作号、业务任务号和原幂等标识读取,要求 operation:result,拒绝用户选择字段。2026-10-10原分项只验已保存、成功且结算的非流式 OpenAI Chat JSON;UNKNOWN 未就绪。两个接口均不派发、结算、释放或退款,产品凭据撤销后拒绝读取。该时点隔离 PostgreSQL 与正式 TLS 路由的 8 项顶层测试通过,14 张财务、资源与调用相关表及派发计数保持不变;证据为平台 .local/platform-original-text-result/verification-20261010-03/。当前源码已扩多协议完整原生结果及流式回执;平台 docs/verification/T-06/text-recovery-stream-20261012/stream-postgres-results.json 的本地 2 顶层/20 子项分项不自动代验新产品 HTTP 契约或已部署版本。
当前仅完成接入桥和原结果读取分项,完整身份/文本/摘要闭环仍待实施与验收。切换文本执行前须持久保存原调用关联、明确首次用户授权、处理原操作号丢失及原结果保存失败;不能把未知请求重新 POST,也不能让平台成功调用继续触发本地扣费或解析失败退款。本批检查、可测试入口与限制见 Studio docs/verification/platform-bridge-20261010/report.md。
| 顺序 | Studio交付 | 平台接口与产品验收 |
|---|---|---|
| 1. 身份与接入边界 | 建立共享平台客户端、受控Host映射、请求用户/产品上下文;本地用户只保留创作资料与平台用户引用。项目、会话、画布、作品、素材和任务均校验用户及产品归属 | 当前会话、产品凭据与可信Origin联合校验;切号/注销/撤权立即拒绝,未知Host和客户端伪造产品不得越权。先验AC-02、AC-16.A01/A05 |
| 2. 文本最小闭环 | 先接单次文本生成;任务持久保存业务ID、幂等标识及原operation关联,原文本结果进入现有会话/历史。规划与优化随后接同一客户端,每次真实调用独立关联 | 复用按首批协议交接的产品文本委托及原operation查询/恢复;当前正式产品新调用为/api/platform/v1/relay/chat/completions,Responses需另补产品委托。平台负责预留和结算,Studio不再次扣费。新调用在有效用户授权下提交;后台仅凭产品凭据不能替任意用户新建调用。后台多步Agent后续新调用的授权契约需明确后再启用 |
| 3. 本域记录与可靠摘要 | Studio本域记录联接业务任务和平台原消费;业务事务同时写持久outbox,后台取得平台回执后确认交付,按对象版本补发和恢复 | 使用受限/product/records与/activity-events、原摘要恢复接口;Console全域和Studio本域回读同一关联。父Run、模型调用和实际产出分别计数,重投/乱序不增数、不回退状态、不写第二笔账;验AC-16.A01/A06/A07 |
| 4. 图片/视频与持久结果 | 改接媒体提交、查询、授权结果及Worker恢复,保留原租约/持久任务和素材模块;结果保存失败只读取并保存原结果。音频及其他能力按已验供给分别接入 | 使用平台已验收的产品媒体委托与受限资源预检;持久保存原媒体任务/operation,执行、账务、保存分态。以本地夹具验证产品关闭页面/重启/UNKNOWN/部分成功与授权读取,真实供给依T-06/G-07逐项开放 |
| 5. 资源、购买与产品运营 | 接“我的资源”、套餐比较/原订单、订阅覆盖段、活动及本域后台;内容审核、提示词/Skill、作品和生成运维继续由Studio管理 | 使用平台已验收的商业动作、适用资源及产品活动契约;产品商品发布、支付/履约、共享额度竞争、活动去重及员工撤权按AC-16.A02~05/A08~12联验。Studio运营的商品与中央Admin为同一对象/版本,通用资金权限另验 |
| 6. 退出旧权威并复用 | 对已验收切片停用本地登录、钱包、支付、商品规则和渠道写入;保留本域页面并改接平台。随后将已稳定任务/媒体能力提取给Commerce等后续产品 | 旧入口不能绕过新权威,新旧路径不得双扣/双履约;桌面/手机创作回归与跨产品对象、任务、素材、查询隔离通过。复用按T-13.6逐产品验收,不以同仓作为共享授权 |
上述六步恢复为当前分批实施顺序,首批范围以上表为准。各切片所需平台契约和原请求恢复先交接并验证,对外权威切换必须关闭对应旧入口并通过该切片完整产品闭环;不等待全部后续媒体/运营任务才开展身份和对象隔离准备。真实购买、领取或生成仍按各能力已验范围开放。
后续文本最小闭环选择/create中的纯文本回复,复用/api/agent/runs、Run/会话持久层和agent-run-executor的intent=conversation分支。现有意图在规划调用后才确定,接入前须明确单次纯文本入口及其授权范围,不能将媒体或多步任务混入首批。修改入口是web/src/lib/auth/session.ts、web/src/app/api/auth/session/route.ts、web/src/lib/server/text-planning-runtime.ts、任务类型/持久仓库及对应Route Handlers,通过共享平台客户端替换权威依赖;通用文本任务随后在text-task-runtime.ts接同一客户端。原调用须在当前真实平台用户授权下发起,再把原operation交给后台恢复,不能沿用Worker的本地用户上下文发起新扣费。
任务补充可信产品、平台用户引用和原operation关联,业务事件补充事务outbox。现有/create、画布、会话、Run、素材与历史先保持创作职责;本地users被创作数据外键引用,先收敛为最小产品资料/用户映射,再逐项退出认证和资金字段。现有文本规划解析失败会走本地积分退款,迁移后模型已成功但业务解析失败的补偿须按平台原操作规则处理,不能继续本地退款。
首批闭环验收使用隔离PostgreSQL和本地TCP非流式文本夹具:平台登录回Studio → 一次文本生成 → 保存原结果 → Studio查看本域记录 → Console查看同一任务及费用。重复提交、请求连接或响应中断、Worker重启、撤权、事件重投和保存失败均复用原身份与事实,确认只有一次执行和一次原账务结果;未知费用不填零。流式/其他协议产品恢复按当前契约及相同部署版本另验,不把本地 parser/PG 分项代为完整交接。届时仅完成身份/文本/摘要分项,不宣称媒体、支付、活动或完整T-13已通过。
做完的标准
同一个用户在Studio生成视频、在API调用文本模型,使用同一个钱包;Console能查看两处使用、生成与消费关联,Studio只能展示本产品范围。Studio运营人员在本域创建并发布获授权的套餐或活动后,中央Admin能看到同一对象及版本;用户从任一获准入口购买或领取,平台只创建一份权威订单/参与事实并履约,Studio与Console均可回读本人状态。
还需验证跨产品越权拒绝、业务事件重复/乱序/中断恢复、Agent多调用汇总不重复计数、生成成功但产品保存失败时保留原费用与可恢复状态,以及敏感内容授权。完整场景由AC-16和平台集成验证追踪;当前接入桥和原文本结果分项证据不代表完整创作、购买或运营目标已通过。