用途:把旧版 Dune 应用迁移到新的 Flows 应用托管基础设施(appsApi),按步骤依次处理,已处于正确状态的环节会跳过。
主要步骤与能力:
- 审计现状:读取 app.json、package.json、vite.config.ts 和 manifest.json(如存在),在改动前输出简要审计结论,标明待处理项。
- 更新 app.json:若 infra 已是 "appsApi" 则跳过;否则先修正旧部署键格式,将单数对象 "deployment" 改为复数数组 "deployments",再加入 "infra": "appsApi"。
- 设置 Flows 认证:运行 setup-flows-auth 技能,由其处理依赖安装、Vite 插件更新、入口文件修改以及 connectToHostApp 接线。
- 创建或更新 manifest.json:Flows 宿主通过仓库根目录的 manifest.json 实施内容安全策略。缺失时创建 {"manifestVersion": 1, "permissions": {"network": []}}。用 grep -rn "fetch|axios|new XMLHttpRequest" src/ --include=".ts" --include=".tsx" 扫描外部调用,按 sources/directives 结构填入 network,sources 用完整 origin,fetch/XMLHttpRequest 用 "connect-src",图片用 "img-src",字体用 "font-src";CDF 集群 URL 自动允许,无需列出;无外部调用则保持空数组;动态 URL 需用户手动确认。
- 更新部署脚本:把 package.json 中的 dune deploy 或 npx @cognite/dune 替换为 npx @cognite/cli@latest apps deploy --interactive,其余脚本保持不变。
- 最终检查:用 grep -rn "DuneAuthProvider|useDune|@cognite/dune" src/ vite.config.ts 2>/dev/null 列出残留项,再报告迁移结果并给出后续操作:运行 npm run dev、在 Fusion 中验证应用与 CDF 数据、确认后用部署命令发布。
适用场景:旧版 Dune 应用向 Flows 托管迁移。限制:资料未提供具体错误处理、回滚机制、非 Dune 应用支持情况或定价信息。