hosting
PUT /v1/sites/{siteId}/external-backup
Connect an externally hosted site so we can back it up.
Autenticação
Envie uma chave de API como um token de portador. A chave deve ter a permissão hosting.backup.manage; uma chave sem ela é recusada com 403, e não 404.
Este endpoint não requer um ID de organização. Sua chave já identifica a organização à qual pertence, e a resposta é delimitada a ela.
Experimente
Substitua qualquer item entre colchetes por seus próprios valores e o espaço reservado para a chave por uma chave do seu painel.
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> }'Conectado? O console da API no seu painel preenche o ID da sua organização real e a sua própria chave, e executa a requisição contra a API de produção para que você possa ver a resposta real. Abra este endpoint no console da API
Detalhes
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`.
Parâmetros
| Nome | Tipo | Obrigatório | O que é |
|---|---|---|---|
siteId (path) | Uuid | Sim | Site ID (UUIDv7). |
Corpo da requisição
| Nome | Tipo | Obrigatório | O que é |
|---|---|---|---|
channel | ExternalBackupChannel | Sim | 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 | Não | Required when `channel` is `ssh`. |
ssh_port | integer | Não | — |
ssh_username | string | Não | Required when `channel` is `ssh`. |
remote_path | string | Não | The document root, required when `channel` is `ssh`. Refused at configuration time rather than at 03:00 when the sweep runs. |
ssh_secret | string | Não | The private key (PEM) or password. Written to our secret store and never returned. Omit it to keep the credential already stored. |
Resposta
| Nome | Tipo | Obrigatório | O que é |
|---|---|---|---|
configured | boolean | Sim | 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<> | Sim | Empty string when `configured` is false. |
enabled | boolean | Sim | A disabled connection is paused, not deleted — the set-up survives. |
can_restore | boolean | Sim | 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 | Sim | 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 | Sim | Empty on a `connector` connection. |
ssh_port | integer | Sim | — |
ssh_username | string | Sim | — |
remote_path | string | Sim | The site's document root — what we archive, and what we restore into. |
credential_present | boolean | Sim | Whether a credential is stored in our secret store. The credential itself is never returned by any endpoint. |
last_verified_at | string | Sim | Null when the connection has never been checked. |
last_verified_ok | boolean | Sim | Null means never checked, which is not the same as failing — the absence of a measurement is not a measurement. |
last_verify_detail | string | Sim | — |
Erros que este endpoint pode retornar
401 · 403 · 404 · 422