hosting
PUT /v1/sites/{siteId}/external-backup
Connect an externally hosted site so we can back it up.
身份验证
请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 hosting.backup.manage 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。
此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。
免费试用
将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。
curl -X PUT https://api.zinndigital.com/v1/sites/{siteId}/external-backup \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "channel": <ExternalBackupChannel> }'已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点
详细信息
Configures one of two channels. `connector` — the customer installs the Zinn® Connector plugin and pairs it. Nothing else is needed and we never hold a server credential. The plugin makes outbound calls only; it opens no route on their site. Backup only: it cannot restore. `ssh` — the customer gives us a host, a username, the document root and a private key. This channel can also **push a site back**, including when the site itself will not load, which is the only way a one-click restore can be honest. `ssh_secret` is write-only. It goes straight to our secret store and only a pointer to it is kept; it is never returned by this or any other endpoint. Re-connecting a `connector` site mints a fresh pairing token and invalidates whatever the previous install held. Requires `hosting.backup.manage`.
参数
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
siteId (path) | Uuid | 是 | Site ID (UUIDv7). |
请求正文
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
channel | ExternalBackupChannel | 是 | How we reach a site we do not host. `connector` is the Zinn® Connector plugin (outbound-only, backup but no restore); `ssh` is SSH/SFTP, the only channel that can push a site ba… |
ssh_host | string | 否 | Required when `channel` is `ssh`. |
ssh_port | integer | 否 | — |
ssh_username | string | 否 | Required when `channel` is `ssh`. |
remote_path | string | 否 | The document root, required when `channel` is `ssh`. Refused at configuration time rather than at 03:00 when the sweep runs. |
ssh_secret | string | 否 | The private key (PEM) or password. Written to our secret store and never returned. Omit it to keep the credential already stored. |
响应
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
configured | boolean | 是 | False when nobody has connected this site yet. The rest of the object is still present and empty — a screen must not have to tell "not set up" from "failed to load" by the absen… |
channel | ExternalBackupChannel | string<> | 是 | Empty string when `configured` is false. |
enabled | boolean | 是 | A disabled connection is paused, not deleted — the set-up survives. |
can_restore | boolean | 是 | Whether we can push a backup back down this channel. **False for `connector`**, and that is not a limitation to route around: a WordPress plugin cannot run inside a WordPress to… |
summary | string | 是 | One sentence stating what this connection can and cannot do, composed server-side so every surface says the same thing about the backup/restore asymmetry. |
ssh_host | string | 是 | Empty on a `connector` connection. |
ssh_port | integer | 是 | — |
ssh_username | string | 是 | — |
remote_path | string | 是 | The site's document root — what we archive, and what we restore into. |
credential_present | boolean | 是 | Whether a credential is stored in our secret store. The credential itself is never returned by any endpoint. |
last_verified_at | string | 是 | Null when the connection has never been checked. |
last_verified_ok | boolean | 是 | Null means never checked, which is not the same as failing — the absence of a measurement is not a measurement. |
last_verify_detail | string | 是 | — |
此端点可能返回的错误
401 · 403 · 404 · 422