hosting
PUT /v1/sites/{siteId}/external-backup
Connect an externally hosted site so we can back it up.
Аутентификация
API кілтін bearer токені ретінде жіберіңіз. Кілтте hosting.backup.manage рұқсаты болуы тиіс; онсыз кілтке 404 емес, 403 қатесі қайтарылады.
Бұл соңғы нүкте ұйым идентификаторын қабылдамайды. Сіздің кілтіңіз оның қай ұйымға тиесілі екенін өзі анықтайды және жауап соған шектеледі.
Әрекет етіп көру
Бұрыштық жақшалардағы кез келген нәрсені өз мәндеріңізбен, ал кілт орналастырушысын басқару тақтасынан алынған кілтпен алмастырыңыз.
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 консолі ұйымыңыздың нақты идентификаторы мен жеке кілтіңізді автоматты түрде толтырады да, нақты жауапты көре алуыңыз үшін сұрауды тікелей жұмыс істеп тұрған 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`.
Параметрлер
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
siteId (path) | Uuid | Иә | Site ID (UUIDv7). |
Сұрау денесі
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
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. |
Жауап
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
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