在 preview.cdn.rrweb.com 上添加每个 PR 资产
作者: Juice10创建于 2026年9月4日更新于 2026年9月4日
□ 状态
PR [1926] (https://GitHub.com/rrweb-io/rrweb/pul/1926)通过"pkg.pr. new"执行npm相容预览,是目前的短期路径. 这个问题仍然开放给浏览器在`preview.cdn.rrweb.com'上的资产使用。 这些资产需要下列单独的来源、验证、缓存和清理控制。
□动机
审查者应能够在Pull Request合并前加载由任何Pull Request生产的浏览器捆绑. 这些建筑包含不信任的PR JavaScript,所以它们必须使用单独的出自. 在`cdn.rrweb.com'上发表这些文章,将使任意的PR代码继承消费者已经授予该产品CDN的CSP信任.
制作的CDN已经使用了不可改变的精确版本 URL 外加短寿命重定向别名. 预览 CDN 可以重用该模型每个PR.
□ 建议的设计
官方网站:
- 不可移动资产:
https://preview.cdn.rrweb.com/pr/123/<full-sha>/<asset>> - 不可更改清单:`https://preview.cdn.rrweb.com/pr/123//manifest.json'
- 可变别名:
https://preview.cdn.rrweb.com/pr/123/latest/<asset>',作为转而使用不可变的URL而实施
运单应记录寄存器,PR号码,完全承诺SHA,工作流程运行ID,构建时间戳,每个允许的文件路径,字节大小,以及SHA-256散列.
使用两个工作流程:
- 一个没有特权的`pill request ' 工作流程检查并构建没有秘密或写写权限的公关代码,然后上传只包含可允许分发文件和清单的动作文物。
- 一个可信赖的 " 工作流程 -- -- 运行 " 工作流程接收已完成的构建活动,并具有 " 收集请求:写作 " 加上仅预览的R2证书。 它验证源寄存器/工作流程,成功运行,运行ID,PR关联,头SHA,存档路径,允许列表,文件计数,大小限制,和散列. 它必须将每个被下载的文件视为惰性字节:永远不要来源,导入,评价,或者执行来自公关的文物或任何脚本. 在验证后,它上传到R2,并用承诺、显示、不可改变的URL和`最晚'URL更新一个粘性PR注释。
使用无法读取,写入,清洗或配置生产CDN存储的专用预览R2桶和证书. 仅服务于"preview.cdn.rrweb.com".
缓存 :
- 不可移动路径:`控制离心:公开,最大年龄=315.36000,不可移动'
最新'重定向和任何可变元数据:短命缓存,例如缓存控制:公开,最大-年龄=60'- 只有在每个不可改变的物体和清单上载和通过散列核查后,才能更新`最新 ' 。
在打开公关时保持构建 。 预定的清理应在关闭后30天删除PR前缀,R2生命周期规则应去掉90天以上的预览对象作为后置. 目标被删除时删除或失效可变别名.
□ 接受标准
- 每个公关,包括分叉公关,都可以产生预览资产,而不向公关代码暴露秘密.
- 一个可信任的上传器验证 . . . . . . .
内容来源: rrweb-io/rrweb