hosting
PUT /v1/sites/{siteId}/external-backup
Connect an externally hosted site so we can back it up.
인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 hosting.backup.manage 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
이 엔드포인트는 조직 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