特权,预先明确说明
在您创建令牌之前,我们会告知您它需要具备哪些功能以及原因。不会因为更容易申请而设置宽泛的权限范围,也不会在事后才发现我们要的比工作所需的更多。
连接是您交给其他人的一种凭据。我们的系统会在您建立连接之前说明所需的内容,在存储之前验证其能够正常运行,并且可以从任意一端将其撤回。
在您创建令牌之前,我们会告知您它需要具备哪些功能以及原因。不会因为更容易申请而设置宽泛的权限范围,也不会在事后才发现我们要的比工作所需的更多。
在存储您的令牌之前,我们会使用它调用提供商自己的 API。错误、过期或作用域不正确的令牌会在表单处被拒绝,而不是被接受、显示为正常状态,却在第一次实际部署时失败。
不在我们的代码中,不在环境文件中,不在日志中,也不在命令行中。在使用它的瞬间由使用它的工作负载解析。
连接一个个人账户和一个组织账户,或两个组织账户。每个站点可选择从哪一个账户进行部署,因此客户的代码仓库与您自己的代码仓库绝不会共用凭据。
八个受管边缘主机以及我们自己的设备集群。目的地是网站的属性,而非连接的属性,因此同一个代码仓库可以将一个分支发布到 Pages 主机,而另一个网站可以在我们的硬件上运行。
无限制带宽,允许商业用途,且可在通常托管您 DNS 区域的同一提供商处处理顶端域名(apex domain)。正是出于这些原因,它是我们的首选目的地。
Cloudflare Pages 托管 →直接从代码现有的代码库中发布。在 Footprint-Free 行中进行了标记,因为共享的 github.io 基础架构本身就是一种痕迹。
GitHub Pages 托管 →GitLab Pages、Netlify、Vercel、Render、Azure Static Web Apps 和 AWS Amplify 都是您可以将站点指向的目的地,并且具有相同的连接和相同的部署历史记录。
静态网站托管 →一个完整的应用程序,而非构建好的包——WordPress、PHP、Node。这是获得双向同步的目标位置,使服务器与分支上的文件保持一致。
托管型主机 →发布到非我们所有的主机上的网站仍然会消耗配额,并且仍会与您运行的其他所有内容一起,显示在其仪表板中,包含其部署、正常运行时间和 SEO 数据。
外部站点配额 →浏览器内编辑器所处理的文件与双向同步推送的文件相同,因此从仪表板进行的快速修复会成为您分支上的提交,而不会变成日后无人能找到的更改。
网页编辑器 →双向同步
开启此功能后,网站自身的文件将被提交回您的分支,而该分支上的提交也会同步回网站。它适用于我们托管的每个网站以及每条产线——唯一的要求是底层机器能够针对其文件运行 Git,这是直接向服务器查询确认的,而非根据套餐方案推断。
您可以选择同步哪个目录,因为 WordPress 客户希望跟踪的是其主题,而不是四万个核心文件。在您开启之前,它一直处于关闭状态:启用同步是对他人仓库所做的决定,迁移绝不能替您做出该决定。
共有两种模式,区别在于构建运行的位置。两者最终殊途同归:我们提取并发布一个引用,同时将提交记录在相应的部署中。
GitHub 或 GitLab,位于“连接”下。权限会在您生成令牌之前列出,并在存储之前与提供商进行核对。
所有者、代码库、分支,以及我们是发布目录还是获取您的 CI 构建的内容。在此过程中,我们会注册推送 Webhook。
推送到指定分支将启动部署,或者您也可以从站点的“部署”标签页按需进行部署。构建将在后台运行。
部署历史记录会显示发布的内容和时间。开启双向同步后,您在此处所做的编辑将作为提交返回到您的分支中。
出现问题时
一个看似正常却接收不到任何内容的代码仓库连接是典型的静默故障——权限范围错误的令牌、在服务商处被拦截的推送,或是被人为移除的 Webhook。这在其他任何界面上都是不可见的,因此代码仓库卡片直接呈现了此信息:服务商最近一次向我们推送的时间,以及返回的具体内容。
在对其进行处理之前,交付内容会经过签名检查,使用的是每个提供商自有的机制,而非我们预想中适用于所有提供商的通用方案。未通过验证的交付将被拒绝并予以记录,而不会被悄无声息地忽略。
身份
除了电子邮件地址和密码之外,您还可以使用 GitHub、GitLab、Google 或 Microsoft 登录您的 Zinn Digital® 账户。身份验证层负责握手流程;我们绝不会看到您的第三方提供商密码,而且将社交账户关联到现有的 Zinn® 账户仍须通过电子邮件进行确认。
使用 GitHub 登录与关联 GitHub 进行部署是独立的决定,也是不同的凭据。执行其中一项不会执行另一项,移除其中一项也不会移除另一项。
GitHub 和 GitLab。连接您已在使用的账户,我们即可从其代码库进行部署、为其注册推送 Webhook,并且 — 如果您需要 — 还可以将您网站的文件反向同步回去。两者均通过相同的关联账户接口运行,因此以下内容对两者皆适用。
是的,也可以使用 Google 或 Microsoft。除了电子邮件地址和密码之外,您还可以使用这四种方式中的任何一种登录您的 Zinn Digital® 帐户。身份层负责处理握手,我们绝不会看到您的提供商密码。使用 GitHub 登录与连接 GitHub 进行部署是两回事——您可以选择其中之一、两者都选,或两者都不选。
部署至 Cloudflare Pages、GitHub Pages、GitLab Pages、Netlify、Vercel、Render、Azure Static Web Apps 或 AWS Amplify 以构建静态或已构建的网站 — 亦可部署至我们自有的托管服务,代码仓库与网站文件将在双向保持同步。由您选择网站的目标平台;无论哪种方式,代码仓库的连接都是相同的。
两者皆可。在发布模式下,我们直接采用该分支并发布您指定的目录。在 CI 模式下,您的提供商自带的流水线会运行您的构建命令,并将输出提交到一个单独的发布分支,随后我们会像提取任何其他 ref 一样提取该分支。第二种方式将您的构建保留在您自己的 CI 中,您的机密信息和缓存也已妥善保存于此。
默认情况下是的——我们在代码仓库中注册一个网络钩子(webhook),向您指定分支的推送会启动一次部署。您可以关闭该功能但保留网络钩子,这比听起来更有用:发送记录仍会被记录下来,因此您可以在允许我们对其采取行动之前观察推送的到达情况。
在我们硬件上所做的修改将成为您分支上的提交,而您分支上的提交会同步回网站。在您将其开启之前,该功能始终处于关闭状态,因为开启它属于涉及他人代码库的决定,我们不会替您做主。您可以选择同步哪个目录——通常是主题或插件,而不是四万个 WordPress 核心文件。
没有任何内容会被覆盖,也没有任何内容会被推送。同步会停止,通知您该分支已推进并超过了我们所基于的提交,并询问您希望保留哪一边——保留代码仓库,还是保留网站。一个从未同步过且指向已有提交的分支的网站也是一种独立的状态,系统会主动询问,而不是去猜测哪一边才是正确的事实。
我们会在您创建连接之前向您显示该连接所需的权限,在输入时根据提供商自有的 API 检查令牌 — 因此无效或权限范围错误的令牌绝不会被存储 — 然后才会将其写入 Vault。它绝不会接触我们的代码、日志、环境文件或命令行。您可以随时在提供商处撤销它,或在此处移除连接。
代码库卡片会显示提供商上次向我们传送的时间及其内容。“从未传送”是该屏幕上最有用的单项诊断信息,因为“已连接但从未传送”正是作用域错误的令牌或被阻止的传送所呈现的状态——且在其他任何地方都不可见。在根据传送内容采取行动之前,每次传送均会经过签名检查。
该功能已被提供且已被标记。GitHub Pages 和 GitLab Pages 共享提供商的基础设施以及公共的 github.io 和 gitlab.io 主机名,而这构成了足迹(footprint)——这正是该产品线所要规避的问题。为了建立零足迹网络,请改用隔离的主机进行部署。在其他所有场景下,Pages 都是一流的选择。
因为其免费套餐仅授权用于非商业用途。在安全的情况下,我们会根据您已关联的账户推断目标位置,而 Vercel 被特意排除在此推断之外——关联账户绝不能悄悄地将商业网站放置在其许可不允许的地方。选择它,它的工作方式与其他服务完全相同。
是的。每次部署都会记录其发布的提交、运行时间以及完成情况,站点的“部署”选项卡会在其实时网址旁显示历史记录。部署在后台运行,因此页面会在构建完成时自动更新,无需您对着加载图标苦苦等待。