hosting
PUT /v1/sites/{siteId}/external-backup
Connect an externally hosted site so we can back it up.
Xác thực
Gửi khóa API dưới dạng mã thông báo bearer. Khóa này phải có quyền hosting.backup.manage; khóa không có quyền này sẽ bị từ chối với mã lỗi 403, không phải 404.
Endpoint này không nhận ID tổ chức. Khóa của bạn đã xác định tổ chức mà nó thuộc về và phản hồi được giới hạn trong phạm vi đó.
Dùng thử
Thay thế bất kỳ nội dung nào trong ngoعل (angle brackets) bằng giá trị của riêng bạn và trình giữ chỗ key bằng một key từ trang tổng quan của bạn.
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> }'Đã đăng nhập? Bảng điều khiển API trong trang quản lý của bạn sẽ tự điền ID tổ chức thực tế và khóa của riêng bạn, sau đó chạy yêu cầu đối với API trực tiếp để bạn có thể xem phản hồi thực tế. Mở điểm cuối này trong bảng điều khiển API
Chi tiết
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`.
Tham số
| Tên | Loại | Bắt buộc | Nội dung này là gì |
|---|---|---|---|
siteId (path) | Uuid | Có | Site ID (UUIDv7). |
Nội dung yêu cầu
| Tên | Loại | Bắt buộc | Nội dung này là gì |
|---|---|---|---|
channel | ExternalBackupChannel | Có | 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 | Không | Required when `channel` is `ssh`. |
ssh_port | integer | Không | — |
ssh_username | string | Không | Required when `channel` is `ssh`. |
remote_path | string | Không | The document root, required when `channel` is `ssh`. Refused at configuration time rather than at 03:00 when the sweep runs. |
ssh_secret | string | Không | The private key (PEM) or password. Written to our secret store and never returned. Omit it to keep the credential already stored. |
Phản hồi
| Tên | Loại | Bắt buộc | Nội dung này là gì |
|---|---|---|---|
configured | boolean | Có | 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<> | Có | Empty string when `configured` is false. |
enabled | boolean | Có | A disabled connection is paused, not deleted — the set-up survives. |
can_restore | boolean | Có | 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 | Có | 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 | Có | Empty on a `connector` connection. |
ssh_port | integer | Có | — |
ssh_username | string | Có | — |
remote_path | string | Có | The site's document root — what we archive, and what we restore into. |
credential_present | boolean | Có | Whether a credential is stored in our secret store. The credential itself is never returned by any endpoint. |
last_verified_at | string | Có | Null when the connection has never been checked. |
last_verified_ok | boolean | Có | Null means never checked, which is not the same as failing — the absence of a measurement is not a measurement. |
last_verify_detail | string | Có | — |
Các lỗi điểm cuối này có thể trả về
401 · 403 · 404 · 422