预览和发布
为什么每次变更都必须先生成预览,再进入生产环境。
Showly 坚持一条核心原则:未经过预览的内容不能进入生产环境。 本页解释这样设计的原因和完整发布流程。
什么是预览
预览由不可变构件和可访问 URL 组成,并记录:
- 应用补丁的提交 SHA
- 与当前生产构件的差异
- 构建日志
- 检查结果(lints、类型检查、自定义 CI 挂钩)
- 创建它的智能体或用户
登录后工作区中的预览运行在隔离命名空间中,通过 X-Robots-Tag: noindex 阻止搜索引擎收录,并且不会过期,也不会与生产环境共享密钥。未登录创建且 尚未认领的公开试用属于独立流程;如果不认领,仍会在约 1 小时后过期。
如何触发预览
生成构建的方式有以下三种:
- 智能体创建。 Claude Code、Codex 等智能体完成修改后,通过 MCP
调用 create_preview。
- 从已连接的 GitHub 仓库构建。 Web 和 MCP 可以解析已连接分支并
创建受密码保护的私有预览;支持组织访问策略的工作区也可限制为成员 访问。推送自动部署默认关闭;明确启用后也只会创建私有预览,不会 自动创建线上版本。无人值守自动部署只在对应权限和静态构建目标都 可用时执行;不支持的运行时会跳过并发送应用内通知。源码使用短时、 带作用域的 GitHub App 令牌克隆,该令牌不会进入构建环境。
- 重试或重建。 可通过仪表盘的重建按钮或
retry_deployment MCP 工具重建失败或取消的部署。Showly 会保留源包, 因此无需重新上传。
三条路径都会生成同样的构件和预览 URL。预览部署免费;成功的生产 部署消耗 15 积分,失败的生产部署不扣积分。构建失败时,部署会记录 失败阶段、错误码、消息和构建日志尾部,方便重试前定位原因。
对于密码访问,Showly 生成一个简短的 XXX-XXX 共享代码,并删除了不明确的字符。您可以选择任意 6-128 个字符的密码。仅当预览创建或密码轮换时才会显示明文;使用 复制 URL + 密码 复制准备转发的凭证块。现有密码在您轮换之前仍然有效。对于敏感的内部审查,首选 Pro 组织访问权限或选择更长的密码。
什么是发布
发布会把_现有预览构件_提升到生产路由,不会重新构建。你批准的构件 就是最终上线的构件。因此回滚只需把路由指针切回旧构件,无需重新运行 构建。
预览版和实时版是不同的地址。预览版保持私密状态,永远不会变成公共 URL;发布为站点的实时地址创建生产部署。源预览会一直保留到被明确删除,不受套餐过期时间限制。
什么是审批
审批是有权限的工作区成员对发布请求作出的持久决定。角色包括 owner、admin、developer、deployer、viewer;由 MCP 创建的 发布请求需要 owner 或 admin 批准。即使审批人之后离开工作区, 审计记录仍会保留其对对应版本的决定。请求者不能批准自己的请求, 拒绝后该请求不能再次批准。
审批工作流由 approvalWorkflows 权限控制。未启用时,请求者可以在 浏览器中明确确认发布,或使用智能体的两步 publish_site 确认。 该流程不要求预先注册 OTP/MFA,所有绕过第二位审批人的发布都会记录 在审计日志中。
什么是回滚
编辑器中的回滚按钮会把线上路由指针切换到旧构件。回滚是独立的 高风险操作,必须单独确认。被替换的构件仍会保留;如果回滚选择有误, 可再次把原版本提升为线上版本。
为什么发布循环很重要
典型的 Showly 发布如下:
- 智能体调用
create_change_plan→ 人工检查计划。 - 智能体调用
apply_site_patch+create_preview→ 生成预览 URL。 - 人工访问预览,贯穿关键流程。
- 可选:
run_checks运行工作区的自定义校验矩阵。 - 智能体调用
request_publish→ 创建待审批请求,并返回包含
webApprovalUrl 的响应。
- 工作区成员打开
webApprovalUrl,批准或拒绝请求。 - 用户在 Web UI 中点击发布;无需预先设置 OTP。Showly 将已批准
的预览提升到生产环境,并把 sourceDeploymentId 设置为源预览 ID。
request_publish 返回:
{
"approvalId": "apr_...",
"deploymentId": "dep_...",
"state": "pending",
"expiresAt": "2026-05-31T10:00:00.000Z",
"reused": false,
"webApprovalUrl": "https://showly.ai/app/deployments/dep_.../publish"
}
当返回同一部署的现有待批准而不是新批准时,state 是 pending、approved、denied 或 expired 之一,reused 是 true。 publish_site 也可通过 MCP 作为两步、部署绑定的人工确认流程使用。
每一步都有审计记录;任一环节失败都会阻止内容进入生产环境。
修补程序怎么样?
紧急修复也必须先生成私有预览,不存在绕过流程的紧急通道。发布仍需 一个 ready 预览、明确的发布确认,以及工作区策略要求的审批;无需 预先注册 OTP。