Exchange valt buiten deze API/CLI-release. Eventuele historische Exchange-voorbeelden in deze gids zijn niet beschikbaar; dit zegt niets over bestaande portaalfuncties. Zie het actuele releasebereik.
Bestaande Hosting importeren
De portal en API nemen een bestaande Plesk-hostingomgeving met de bewezen aliassen, databases, mailboxen en subdomeinen als één lokale import op. Er wordt niets bij Plesk besteld of gewijzigd. De import leest of reset geen wachtwoorden, schrijft geen DNS en start geen factuur of abonnement.
Alle handelingen vereisen een menselijke interne beheerder met een actuele passkeycontrole. API-beoordeling en resultaatcontrole gebruiken admin:read; opslaan en facturatieonderzoek gebruiken admin:write. Een servicesleutel krijgt deze rechten niet. Het account in de URL of --account is de beheercontext. Het afzonderlijke selection.account_id is het expliciet te bevestigen doelbedrijf.
Zonder volledige opgeslagen Plesk-serverconfiguratie zijn de beoordelings- en importcapabilities uitgeschakeld (hosting_provider_configuration_required). De portal verwijst dan naar serverbeheer. Dit is configuratieaanwezigheid, geen bewijs van een bereikbare leverancier. Ontbrekende of onleesbare servercredentials geven gecontroleerd 503 vóór een leveranciersverzoek. Oorspronkelijke ontvangstbewijzen blijven onafhankelijk van de leverancier opvraagbaar.
In de portal
Open Hosting → Importeren. Kies het exacte bedrijf, de geconfigureerde Plesk-server, het passende portalproduct en de publieke hoofddomeinnaam. Geef de afzonderlijk gecontroleerde klantdekking op. De vervaldatum bij een leverancier is geen bewijs van betaling of een klantafspraak.
Een bestaande, exacte server-klantkoppeling kan bedrijfseigendom bewijzen. Zonder die koppeling moet je expliciet het geobserveerde Plesk-klant-ID bevestigen en de bron en uitkomst van extern eigendomsbewijs vastleggen. Een overeenkomst in naam of e-mailadres is onvoldoende. De beoordeling toont of dit bewijs compleet is; zonder bewezen producteigendom kan de import niet worden bevestigd.
Controleer de server, het product, de eigenaar en alle aantallen. Typ het getoonde moderne bedrijfs-ID en erken de onopgeloste facturatie. De import maakt alle lokale onderdelen en naamclaims tegelijk aan. Een lokale fout draait de hele import terug. Een geblokkeerde Plesk-hostingomgeving blijft lokaal geblokkeerd. Mailboxen worden niet geactiveerd en hun geobserveerde status blijft onderdeel van het ontvangstbewijs.
Registratie en DNS blijven onafhankelijk. Een bestaande eigen registratie kan worden gekoppeld. Een ontbrekende of aan een ander bedrijf toebehorende registratie blijft ongekoppeld; alleen de publieke domeinnaam wordt gebruikt. Import draagt geen registratie, DNS-zone of Hosting-product van een ander bedrijf over. Een nieuwe alias later toevoegen vereist nog steeds een eigen domein.
Bij een verloren antwoord houd je de oorspronkelijke selectie en intent-UUID vast. Kies Oorspronkelijke import opzoeken. Dit is een GET zonder leveranciersverzoek. De browser bewaart alleen de intent-UUID onder de oorspronkelijke beheerder, loginidentiteit en context. Een ontbrekend resultaat is geen bewijs dat de oorspronkelijke aanvraag gestopt is: verzend geen nieuwe import en maak geen vervangende UUID. De portal verstuurt de import niet automatisch opnieuw. Annuleren van de passkeycontrole vóór de eerste verzending laat de selectie bewerkbaar.
Leveranciersbewijs
De geselecteerde server moet exact één hostingabonnement met de opgegeven naam teruggeven, met zijn ID, GUID, eigenaar, hoofdwebsite en volledige kindcollecties. Het hoofdwebsite-ID mag afwijken van het abonnement-ID. Elke alias, database en subdomein moet aantoonbaar bij deze omgeving horen. Een onvolledige of dubbelzinnige collectie wordt geweigerd, inclusief een lege XML-envelop zonder expliciet resultaat. De grenzen zijn 1.000 resultaten per collectie en 2 MiB per antwoord, zonder redirects.
Het geselecteerde product moet het exacte servergebonden plan en dezelfde effectieve quota beschrijven. Beheerde huidige en historische planrevisies worden tegen hun oorspronkelijke GUID en contract gecontroleerd. Het oudere fallbackpad vereist exact dezelfde plannaam, provider-ID en quota op deze server. Extra websites, meerdere basis-/add-onplannen of afwijkende quota vereisen eerst een passende productrepresentatie; de import verkleint of vervangt geen rechten. Geïnstalleerde applicaties zijn niet onderzocht en worden niet als overgenomen configuratie geclaimd.
De XML-readers gebruiken de bestaande geconfigureerde server en de officiële Plesk-subscriptionstructuur, databasefilters en subdomeinstructuur. Lokale tests zijn geen bewijs dat een specifieke productieomgeving al is geïmporteerd of gewijzigd.
Getypeerde CLI
Gebruik je menselijke beheerlogin. selection.json bevat het object binnen selection uit het API-voorbeeld hieronder, dus zonder de buitenste wrapper. Het domein is de canonieke ASCII-/xn---naam. Het nieuwe reviewbestand wordt privé aangemaakt; bestaande bestanden en symlinks worden geweigerd. Windows leest invoer uitsluitend via vertrouwde stdin (--from-file -).
binadit admin hosting imports inspect --account 1 --from-file selection.json --file hosting-review.json
binadit admin hosting imports commit --account 1 --from-file hosting-review.json --confirm-company 42 --acknowledge-unresolved-billing --dry-run
binadit admin hosting imports commit --account 1 --from-file hosting-review.json --confirm-company 42 --acknowledge-unresolved-billing --yes --no-input
De Rust-CLI maakt nieuwe reviews met schema binadit-hosting-import/v2. Ze bewaart daarnaast de publieke persoonlijke original_principal_id uit /me, verkregen met hetzelfde token als de inspectie. Een import-POST gebruikt alleen die oorspronkelijke verbinding; vlak vóór verzending controleert de CLI de actuele principal met het daadwerkelijk gebruikte token. Het oorspronkelijke privéreviewbestand en het duurzame verzendkenmerk worden vóór verzending en vóór resultaatweergave opnieuw gecontroleerd. Het kenmerk bevat alleen vaste publieke intentmetadata en de ondoorzichtige serverreviewversie, geen eigendomsnotities. De expliciete privéreview kan je onderzoeksnotitie wel bevatten.
Oude reviewbestanden zonder aantoonbare oorspronkelijke principal worden in Rust niet voor een import-POST overgenomen. De onderstaande GET-herstelactie blijft ook voor zo'n oorspronkelijk reviewbestand beschikbaar, binnen de actuele serverrechten en dezelfde beheerder en identiteitsversie. Na opnieuw inloggen kan deze leesactie het oorspronkelijke resultaat controleren; zij verleent geen nieuwe schrijfrechten. Verander geen opgeslagen principal of sleutel om een weigering te omzeilen.
De normale commit leest de actuele beoordeling opnieuw en vergelijkt versie, provider-ID/GUID/eigenaar, aantallen en de oorspronkelijke context. Vóór de echte POST wordt een exclusief privékenmerk met alleen intentmetadata duurzaam vastgelegd. Een volgende normale commit met dat kenmerk verstuurt niets. Ook na een geslaagd antwoord blijft dit kenmerk behouden; gebruik voor het oorspronkelijke resultaat de GET-herstelactie:
binadit admin hosting imports commit --account 1 --from-file hosting-review.json --confirm-company 42 --acknowledge-unresolved-billing --recover --confirm-intent ORIGINAL_INTENT_UUID
--recover leest uitsluitend GET imports/{originalIntentUUID}. Het verstuurt geen POST en leest Plesk niet opnieuw, ook niet als de oorspronkelijke beoordeling inmiddels verlopen is. Een 404 of onduidelijk antwoord ontsluit geen nieuwe import. Bewaar reviewbestand, UUID en sleutel en onderzoek de oorspronkelijke operatie. De uitkomst wordt gecontroleerd op bedrijf, server, product, provideridentiteit en volledige kindaantallen vóór weergave. Er staan geen leveranciersantwoorden of eigendomsnotities in het verzendkenmerk of de uitvoer.
Het aparte facturatieonderzoek gebruikt:
binadit admin hosting imports billing get SUBSCRIPTION_ID --account 1 --output json
binadit admin hosting imports billing confirm SUBSCRIPTION_ID --account 1 --version CURRENT_BILLING_ETAG --confirm-subscription SUBSCRIPTION_ID --from-file investigation.json
investigation.json bevat alleen investigation_note en acknowledge_external_billing_unchanged: true. Lees de grens onder Bestaande facturatie voordat je dit besluit neemt.
API en geavanceerde CLI
Onder /api/v1/accounts/{context}/admin/hosting:
| Methode en pad | Gebruik |
|---|---|
POST imports/inspect |
Alleen-lezen beoordeling van {selection, reviewed_at?}; geen operatie of idempotentiesleutel vereist |
POST imports |
Beoordeelde omgeving lokaal importeren; If-Match en blijvende Idempotency-Key vereist |
GET imports/{intent} |
Oorspronkelijk bevestigd resultaat van deze beheerder, loginidentiteit, context en API-kanaal lezen |
GET subscriptions/{subscription}/import-billing |
Actuele facturatiebeoordeling en ETag |
POST subscriptions/{subscription}/actions/confirm-no-portal-billing |
Expliciet onderzoek vastleggen met de huidige facturatie-ETag |
Voorbeeld van inspect.json (de nummers zijn voorbeelden):
{
"selection": {
"server_id": 8,
"account_id": 42,
"product_id": 9,
"domain": "example.com",
"owner_evidence": "verified_mapping",
"confirmed_provider_owner_id": null,
"owner_review_note": null,
"coverage_until": "2026-11-30"
}
}
Gebruik voor gecontroleerd extern eigendomsbewijs owner_evidence: "reviewed_external_evidence", het exacte positieve confirmed_provider_owner_id en een niet-geheime owner_review_note van 20–1.000 tekens. De server controleert dat het klant-ID overeenkomt met de actuele Plesk-eigenaar en niet al bij een ander lokaal bedrijf hoort.
De commitbody bevat de exact teruggegeven selection, één oorspronkelijke UUID in intent_id, reviewed_at in UNIX-seconden, snapshot_version, confirm_account_id en acknowledge_unresolved_billing: true. Stuur dezelfde snapshot_version als If-Match. dry_run: true voert een actuele beoordeling uit maar importeert niets en reserveert geen API-operatie.
De beoordeling is tien minuten geldig. De server leest de leverancier opnieuw vóór opslag en vergelijkt ook de actuele bedrijf-, server-, product- en domeinkoppelingen na SQL-wachttijd. Een andere versie vereist een nieuwe beoordeling; verander geen oorspronkelijke aanvraag om een onduidelijk resultaat te omzeilen.
De algemene CLI kan dit accountgebonden contract aanroepen. Bewaar invoer met privébestandsrechten; op Windows gebruik je vertrouwde stdin met --from-file -. De volgende voorbeelden gebruiken de algemene API-commandosyntax; voor dagelijks gebruik staan de getypeerde opdrachten hierboven:
binadit api /admin/hosting/imports/inspect --method POST --from-file inspect.json --account 1 --yes --output json
binadit api /admin/hosting/imports --method POST --from-file commit.json --version SNAPSHOT_VERSION --idempotency-key ORIGINAL_KEY --account 1 --yes --dry-run
binadit api /admin/hosting/imports --method POST --from-file commit.json --version SNAPSHOT_VERSION --idempotency-key ORIGINAL_KEY --account 1 --yes
binadit api /admin/hosting/imports/ORIGINAL_INTENT_UUID --account 1 --output json
Na onzekerheid gebruik je uitsluitend de laatste GET en de oorspronkelijke API-operatie. Bewaar body, UUID en sleutel. Een CLI-bevestiging kan geen ontbrekende serverrechten, actuele passkeycontrole of release-instelling vervangen.
Bestaande facturatie
De import begint met billing_review_state: "unresolved". Opzeggen, hervatten en definitieve verwijdering blijven geblokkeerd totdat de bestaande afspraken apart zijn onderzocht. Alleen het ontbreken van een lokale WeFact-spiegel bewijst niets.
Als onderzoek aantoont dat deze portal geen automatische facturatieovereenkomst hoort te beheren, leg dan bron en uitkomst expliciet vast. Dit beëindigt, betaalt of verplaatst geen externe afspraak. Een actieve, onzekere of nog niet verstreken lokale overeenkomst blokkeert die verklaring. Een spiegel met status terminated is alleen verenigbaar als de externe ID positief is en de beëindigingsdatum bekend en strikt vóór vandaag ligt. Een verkeerde bedrijfsbinding wordt niet stil genegeerd.
De bevestiging bevat confirm_subscription_id, investigation_note (10–1.000 tekens), acknowledge_external_billing_unchanged: true en de huidige billing-ETag in If-Match. Er is een eigen blijvende Idempotency-Key nodig; dry_run blijft mogelijk. Een geauditeerde verklaring krijgt reviewed_no_portal_agreement en een servergebonden bewijs. Een gewijzigde bronidentiteit, bedrijfskoppeling, nieuwe lopende order/taak of gemanipuleerde verklaring blokkeert opnieuw. Hang nooit handmatig een oude spiegel-ID aan een nieuw geïmporteerd product.
FTP-, mailbox- en panelwachtwoorden zijn niet door import beschikbaar. Een ontbrekend of onleesbaar geheim geeft gecontroleerd 409; dit is geen reden om een willekeurig oud klantwachtwoord te tonen of automatisch een wachtwoordreset uit te voeren.
Afspraken voor AI-agents
Beoordeel de exacte leveranciersidentiteit, quota, bedrijfseigendom en klantdekking. Houd de administratiecontext gescheiden van het doelbedrijf. Bewaar de volledige vaststaande commitbody, ondertekende momentopname, oorspronkelijke intent-UUID en idempotentiesleutel. De getypeerde opdracht commit --recover gebruikt alleen GET; een duurzaam privaat kenmerk blokkeert een nieuwe gewone POST. Voorbeeldbeoordeling voert alleen leesacties uit. Gebruik na een dubbelzinnige respons de GET van de oorspronkelijke intentie en inspecteer de oorspronkelijke operatie; maak geen vervangende import aan. Leveranciersinloggegevens, DNS, registratie en externe facturatie blijven ongewijzigd. Behandel onopgeloste facturatie, onbekende inloggegevens en onbewezen collecties als expliciete toestanden, nooit als succesvolle lege of betaalde resultaten. Verlenging, annulering en verwijdering vereisen hun eigen actuele autorisatie en financiële bewijs.