hosting
POST /v1/sites/{siteId}/ftp-users
Create an FTP account on a site.
Аутентификација
Пошаљите API кључ као bearer токен. Кључ мора имати дозволу sites.view; кључ без ње се одбија уз 403, а не 404.
Ова крајња тачка не прихвата id организације. Ваш кључ већ идентификује организацију којој припада, а одговор је ограничен на њу.
Испробајте
Замените све што је у угластим заградама сопственим вредностима, а чувар места кључа кључем са своје контролне табле.
curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/ftp-users \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Пријављени сте? API конзола на вашој контролној табли попуњава ваш прави id организације и ваш сопствени кључ, и покреће захтев према живом API-ју како бисте могли да видите стварни одговор. Отворите ову крајњу тачку у API конзоли
Детаљи
Adds an account confined to one directory of the package or, on a site that runs on our own servers, switches SFTP on for the site's own account. How it signs in depends on where the site runs, and SiteFtpUserList.credential says which. A vendor package takes a password the caller chooses. Our own servers are key-only: send public_key (one OpenSSH public-key line) and no password — those servers refuse password authentication outright. The credential a site does not take is refused 422 with a sentence rather than silently ignored, and so is a private key pasted where the public one belongs. On our own servers a plan that includes SSH is refused 422 as well: SFTP already comes with its SSH keys, and an SFTP-only login would replace that shell. The caller supplies the credential and it travels in the request only: it is never echoed in the response, never written to our records and never logged. That is the opposite of createSiteDatabase, and deliberately so — an FTP credential is a long-lived one a deployment pipeline will hold, so the person who owns that pipeline supplies it. The effective ceiling is applied before the vendor is called: a package type that does not permit extra accounts, and a customer who has used the last of their allowance, are both refused 422 with a sentence they can act on. A username the package already carries is refused 409 — the vendor namespaces usernames per package, so this collides with the customer's own accounts, not with anyone else's. 404 for a site with no vendor hosting package. Requires sites.view and sites.panel_access.
Параметри
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
siteId (path) | Uuid | Да | Site ID (UUIDv7). |
Тело захтева
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
username | string | Не | The login name to create, required on a vendor package. The vendor prefixes it per package on some package types, so the value that comes back in SiteFtpUser.username is the… |
password | string | Не | The account's password, required on a vendor package and refused on our own servers. Write-only: it is accepted here and appears in no response, no log line and no error body. |
public_key | string | Не | One OpenSSH public-key line (ssh-ed25519 AAAA… comment or ssh-rsa …), required on our own servers and refused on a vendor package. It is written to the site account's… |
path | string | Не | The directory the account is confined to, relative to the package root. Defaults to the whole site; narrowing it is how a deployment credential stops being a credential for… |
Одговор
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
id | string | Да | The account's identifier at the vendor, used to delete it. |
username | string | Да | The name that signs in. The vendor namespaces it per package on some package types, so this — not what was requested — is what the client shows. |
path | string | Да | The directory the account is confined to, relative to the package root. / is the whole site. |
enabled | boolean | Да | Whether the account may currently sign in. |
is_primary | boolean | Да | Whether this is the package's own built-in account. It is listed so the customer can see it exists, and it can never be deleted here — removing it takes the package's own access… |
Грешке које ова крајња тачка може вратити
401 · 403 · 404 · 409 · 422 · 429 · 503