Fejlesztőknek

Tárhely, amelyet kódból vezérelhet

A Zinn Digital® egy API-központú platform. Pontosan ugyanazt a motor-API-t kapja meg, amely a vezérlőpultunkat is működteti – verziózott, specifikáció-alapú és 100%-ban dokumentált a fordítás idején, generált SDK-kkal, CLI-vel, Terraform-szolgáltatóval, aláírt webhookokkal és egy mindezek felett futó MCP-kiszolgálóval. Bármit is használ a munkához – terminált, folyamatot, állapotfájlt vagy AI-ügynököt –, a platform válaszol rá.

Egy API-végpont, amely aláírt eseményeket kézbesít több feliratkozott figyelőnek.
  • 700 000+világszerte üzemeltetett webhelyek
  • 1OpenAPI-specifikáció, amelyből minden eszköz generálásra kerül
  • 4kliens SDK-k — TypeScript, Python, PHP, Go
  • OAuth 2.1korlátozott hatókörű, visszavonható MI-ügynök hozzáférés

Egyetlen API. Minden felület erre épül.

A legtöbb tárhelyszolgáltató utólag illeszt hozzá egy API-t a vezérlőpulthoz, és ez meg is látszik — a pult funkcióinak fele soha nem válik elérhetővé benne. Mi pontosan fordítva építettük fel a rendszert. A műszerfal, az adminisztrátori konzol, a CLI, a Terraform-szolgáltató, az MCP-kiszolgáló és az Önök saját integrációi mind ugyanazt a motor-API-t használják. Ha meg tudják tenni a kezelőpulton, meg tudják tenni kódban is.

Előbb a specifikáció, nem utólag dokumentálva

Az OpenAPI specifikáció a hiteles forrás, és egyetlen végpont sem kerül kiadásra, hacsak nem szerepel a specifikációban. Ez az egyetlen szabály teszi a nyilvános API-t már a buildelés során teljesen dokumentálttá a későbbi pótlás helyett — nincs dokumentálatlan részlet, mert dokumentálatlan végpont egyszerűen nem létezhet.

Generálva, soha nem kézzel karbantartva

Az interaktív referenciadokumentáció, a négy kliens SDK, a CLI nagy része és a Terraform-szolgáltató váza mind ebből az egyetlen specifikációból jön létre. Egyetlen forrás, számos műtermék, mindig szinkronban — soha nem kell olyan dokumentáció után szaladnia, amely eltért a megvalósítástól.

Verziózott, elavulási szabályzattal

A végpontok a /v1 alatt érhetők el közzétett kivezetési szabályzattal és változtatási naplóval. Bármilyen változásról írásban kap értesítést, mielőtt az bekövetkezne, ahelyett hogy egy sikertelen összeállításból szerezne tudomást róla.

Szerződés alapján tesztelve a CI-ben

A megvalósítás és a specifikáció közötti szerződéses tesztek, valamint az OpenAPI-ellenőrzés minden módosításkor lefutnak. A kód és a szerződés közötti eltérés a build sikertelenségét okozza — így a specifikáció, amelyből Ön a klienst generálja, pontosan az, amelyet a szerver ténylegesen tiszteletben tart.

Hitelesítés, hatókör-meghatározás és a skálázódás buktatói

Két bejutási mód, mögöttük egyetlen egységes elv. Bármelyiket is használja, ugyanazok az engedélyellenőrzések és ugyanaz az adatbázisszintű elkülönítés érvényesül.

API-kulcsok szervezetenként

A kulcsok formátuma a következő: zdk_<mode>_<prefix>_<secret>. A titkos kulcsnak csak az SHA-256 hash-értéke kerül tárolásra — a kiadás után már nem tudjuk újra megmutatni a kulcsot, és az adatbázisunkhoz hozzáférő személyek sem képesek erre. A kulcsok jogosultsági körökkel rendelkeznek, visszavonhatók, és személyek helyett szervezetenként kerülnek kiadásra.

Éles és teszt üzemmód, különválasztva

A sandbox-kulcsok elkülönülnek az éles környezet kulcsaitól, és sandbox módban futnak: nincs valódi számlázás, nincs valódi erőforrás-kiépítés. Az integrációs tesztek intenzíven terhelhetik az API-t anélkül, hogy pénzt költene vagy szervereket hozna létre.

OIDC embereknek

A felhasználói munkamenetek a Keycloak által kiállított JWT-kkel hitelesítődnek, amelyeket a realm nyilvános kulcsával ellenőriznek, és ugyanarra a Principal objektumra oldódnak fel, mint az API-kulcsok. A végpontok részletes jogosultsági kulcsokhoz vannak kötve, mint például a sites.create vagy az apikeys.manage, amelyeket szervezetenként ellenőriznek — az egyik szervezetben lévő jogosultság nem biztosít hozzáférést egy különálló, független szervezetben, bár érvényes az alá beágyazott szervezetekre.

Sorszintű biztonság alatta

Minden bérlői kérés egy olyan tranzakcióban fut le, amelyben a Postgres szervezeti hatóköre a megbízóból van beállítva, így az elszigetelést az adatbázis kényszeríti ki, nem pedig egy olyan ORM-szűrő, amelyet valaki elfelejthet. A queryset-szűrő továbbra is jelen van mélységi védelemként.

Gépek számára tervezve, nem csupán bemutatókhoz

Egy API-t könnyű vonzóvá tenni a README fájlban, de nehéz elérni, hogy valós forgalom mellett is megfelelően működjön. Ezekre a részekre fordítottuk a legtöbb energiát, mivel hajnali háromkor éppen ezek teszik tönkre az integrációkat.

Egy részlet, amelyet érdemes kiemelni, mivel meghatározza a tömeges műveletek működését: a duplikált tartománynév esetén megjelenő 409-es hiba bármely bérlő számára megválaszolja a „vajon ez a gazdagépnév itt van üzemeltetve?” kérdést, ami egy enumerációs orákulum és valós deanomizációs kockázatot jelent a Footprint-Free számára. A webhelylétrehozás sebességkorlátozása (throttling) a legkényelmesebb javítás lett volna, és teljesen ellehetetlenítette volna a tömeges kiépítési terméket. Ehelyett megbízónként (principal) csak az elutasított duplikált tartománynévvel kapcsolatos kísérletek kerülnek a keretbe. A sikeres létrehozások soha nem terhelik ezt a keretet — így egész nap folytathatja a tömeges kiépítést, miközben a puhatolózási kísérletek szinte azonnal ellehetetlenülnek.

  • Következetes hibaburkoló minden hibánál: egy kód, egy ember által olvasható üzenet, opcionális mezőszintű részletek és egy request_id, amelyet megadhat az ügyfélszolgálatnak. Az érvényesítési hibák 422-es kódot adnak vissza a hibás mezők megnevezésével.
  • Idempotenciakulcsok a POST kéréseken, ahol az újrajátszási rekord a véglegesítéskor (commit) íródik be ahelyett, hogy beágyazottan történne — így az újrapróbálkozás soha nem játszhat le olyan gyorsítótárazott 201-es választ, amely egy soha nem véglegesített sort jelöl meg. A sikertelen kérés azonnal feloldja a folyamatban lévő zárolását, így a 422-es hiba nem zárja ki a javított újrapróbálkozást.
  • Kurzor alapú lapozás kulcskészletként a(z) UUIDv7 felett — stabil az egyidejű írások során, oldalcsúszás nélkül, ha a sorok a beolvasás közben kerülnek beillesztésre.
  • RateLimit-Remaining a válaszokban, így a generált kliens találgatás helyett intelligensen vissza tud venni a kérésekből.
  • A hatókörön kívüli erőforrások 404-es hibát adnak vissza 403 helyett — a 403 megerősítené az erőforrás létezését. A hatókörén kívül eső szervezet szerinti szűrés ugyanezen okból üres oldalt ad vissza.
  • A webhely létrehozása regisztráció, nem pedig üzembe helyezés: a POST /v1/sites 201-es kódot ad vissza pending állapottal, és soha nem blokkolja az összeállítást. Az esemény ugyanabban a tranzakcióban kerül beírásra a transactional outbox-ba, mint a sor, így egy webhely akkor és csak akkor létezik, ha annak üzembe helyezése garantáltan kérelmezve lesz.

SDK-k, egy CLI és egy Terraform-szolgáltató

Ugyanazon specifikáció három felhasználója, három különböző munkamódszerhez.

Kliens SDK-k

TypeScript, Python, PHP és Go nyelvekhez generálva, követve a specifikációt, így az új végpont kézzel írt wrapperre való várakozás nélkül megérkezik az Ön nyelvére.

Zinnector®, a CLI

Hozzon létre egy WordPress webhelyvázat, futtassa helyben úgy, hogy a Node-on kívül semmi más nincs telepítve, és telepítse éles környezetbe. A Zinnector® előzetesen ellenőrzi projektjét azzal a tárhellyel szemben, amelyre telepíteni készül — PHP-verzió, lemezterület, fájlszám —, és még a push előtt figyelmeztet, nem utána. Emellett bejelentkezik, listázza a webhelyeket, telepít, kezeli a domaineket és a DNS-t, beolvassa a levelezési szolgáltatásokat, biztonsági mentéseket készít, engedélyezési listán szereplő WP-CLI parancsokat futtat, valós időben követi a naplófájlokat, valamint tömeges műveleteket indít. Ingyenes, MIT-licenccel rendelkezik, és ugyanezen a nyilvános API-n alapul.

A Terraform-szolgáltató

Kezelje a webhelyeket, domaineket, DNS-rekordokat, postafiókokat és csomagokat kódként definiált infrastruktúraként (IaC). A terraform apply létrehozza a tárhelyet, és a környezetei reprodukálhatóvá és áttekinthetővé válnak ahelyett, hogy olyan kattintások sorozatai lennének, amelyeket senki sem jegyzett fel.

Interaktív referencia

Generált dokumentáció, amelyet közvetlenül a böngészőből olvashat és hívhat meg, pontosan leírva a szerver által megvalósított végpontokat — mivel mindkettő ugyanabból a specifikációból származik.

Webhookok, amelyek túlélik a végpont leállását

A platform mögött egy tartós eseménygerinc áll: minden állapotváltozás aza adatbázis-módosítással atomi módon ír egy eseményt a Postgres tranzakciós kimenő mappájába, majd egy relé közzéteszi azt a NATS JetStream rendszerben. Az események típushoz és verzióhoz kötöttek — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending és a többiek.

Iratkozzon fel arra, ami érdekli

Regisztráljon egy végpontot WebhookSubscription típusként, és válassza ki a fogadandó eseménytípusokat. Egyetlen adatfolyam táplálja az értesítéseket, az elemzéseket, az automatizálásokat és az Ön integrációját egyaránt — Ön ugyanazokat az eseményeket használja fel, mint mi.

HMAC-kel aláírva

Minden kézbesítés HMAC-aláírással van ellátva, így mielőtt intézkedne, ellenőrizheti, hogy tőlünk származik-e.

Újrapróbálkozva visszalépéssel, és naplózva

A sikertelen kézbesítéseket a rendszer növekvő időközönként újra megkísérli, és minden próbálkozást WebhookDelivery-ként rögzít. A kézbesítéseket közvetlenül a vezérlőpultról is megvizsgálhatja és újrajátszhatja, ahelyett hogy e-mailt küldene az ügyfélszolgálatnak arról érdeklődve, mit küldtünk el.

Legalább egyszer, ezért szűrje a duplikátumokat az id alapján

A feldolgozási folyamat szándékosan a „legalább egyszeri” elven alapul, ahelyett, hogy „pontosan egyszerinek” mutatná magát. Ha egy továbbító közzététel közben leáll, az igénylési bérlete lejár, és az eseményei újra közzétételre kerülnek. Hajtson végre deduplikációt a boríték azonosítója alapján, és a fogyasztója felépítéséből adódóan helyesen fog működni.

Kód elhelyezése a webhelyen

Egy API csak a felét jelenti a fejlesztői történetnek. A másik fele az üzembe helyezés.

  • Csatlakoztassa a GitHub, GitLab vagy Bitbucket szolgáltatást OAuth-on keresztül úgy, hogy a telepítési kulcsokat a hitelesítőadat-tárolóban őrzi — nem pedig konfigurációs fájlban.
  • A Push elindít egy build- és telepítési folyamatot (pipeline), ág-környezet leképezéssel (main -> production, staging -> staging), valamint composer és npm rétegenkénti build lépésekkel.
  • Álljon vissza egy korábbi kiadásra, ha a telepítés során hiba történik.
  • Tesztelési klón és élesítés, hogy a módosítás valós környezetben bizonyítson, mielőtt a látogatók elé kerülne.
  • Webhelyenkénti SFTP CageFS-elkülönítés alatt, így minden bérlő csak a saját fájljait látja, valamint zárt (jailed) SSH shell a megosztott platformon.
  • wp-cli a vezérlőpult termináljából és SSH-n keresztül.
  • VS Code a böngészőben a code-server révén – teljes értékű szerkesztő git támogatással, amellyel közvetlenül szerkesztheti a webhely fájljait.
  • Webhelyenkénti PHP-verzió, szerkeszthető PHP-beállítások, webhelyenkénti bővítmények, környezeti változók és valódi cron a WP-cron mellett.

Négy módszer egy webhelyen való munkavégzésre

Az API egyetlen ajtó. Ez a másik négy, és mindegyik a csomag része, ahelyett hogy fejlesztői szintként értékesítenénk őket.

A webszerkesztő

VS Code a böngészőben, a webhely vezérlőpultján található oldaláról megnyitva, amely az adott webhely valódi fájljait szerkeszti beépített git eszközzel, a teljes szerkesztővel ugyanabban a CageFS jail környezetben, mint az Ön SFTP-hozzáférése. Az ÉLŐ webhelyet szerkeszti — nincs köztes staging másolat, így az Ön által mentett fájl az írás pillanatában nyilvánossá válik, bár a statikus fájlok kiszolgálása a CDN gyorsítótárából akár négy órán keresztül is folytatódhat.

Zinnector®, a CLI

Ingyenes, MIT-licenccel rendelkező, és ugyanezen a nyilvános API-n alapul. Hozza létre egy WordPress-webhely vázát, futtassa saját gépén, ellenőrizze előzetesen azzal a slottal szemben, amelyre telepíteni kívánja — PHP-verzió, lemez, fájlok száma —, majd telepítse. Node 24 vagy újabb verzió szükséges hozzá.

Az MCP-kiszolgáló

Egyetlen eszközkatalógus, így a már használt MI-kliens ugyanazon az API-n és jogosultságokon keresztül működhet az oldalain, amelyeket a vezérlőpult is használ. Ugyanaz a szerver, amelyhez az Ön saját kliense csatlakozik, van bekötve a webszerkesztőbe is. Csak olvasható, amíg Ön másként nem rendelkezik.

Webhelyenkénti fejlesztői hozzáférés

Az ügyfélmunkához nincs szükség az Ön jelszavára. Hívjon meg valakit e-mail-cím alapján, és pontosan egy webhelyhez kap hozzáférést: saját nevében jelentkezik be megfigyelő, szerkesztő vagy kezelő szerepkörrel, és minden más webhely 404-es választ ad, mielőtt bármilyen kezelő lefutna — egy Postgres sorszintű biztonsági házirend és egy kérésszintű elhatárolás, nem csupán egyetlen ellenőrzés. A fiók tulajdonosa egyetlen kattintással megadja és visszavonja a hozzáférést, amely a következő kérésükkor azonnal érvénybe lép.

És ugyanaz az API, amelyet az Ön AI-ügynöke is használhat

A platformot üzemeltetett MCP-kiszolgálóként tesszük elérhetővé: egy vékony protokolladapter a motor API-ja felett, amely ugyanazt a műveletkatalógust, RBAC-t és ellenőrzési nyomvonalat használja újra. Csatlakoztassa a Claude Code, a Cursor, a ChatGPT, a Claude Desktop vagy bármely más MCP-képes ügyfelet egyszer, és az API-hoz hozzáadott összes funkció automatikusan elérhetővé válik a számára.

Az ügynök három dolgot kap: Eszközöket (ugyanazok az API-végpontok, nincs eltérő párhuzamos logika), Erőforrásokat (csak olvasható webhelyállapot, konfiguráció, legutóbbi naplók, mérőszámok, üzemidő és tudásbáziscikkek, így cselekvés előtt valós adatokkal diagnosztizál) és Utasításokat (közzétett munkafolyamat-sablonok, például „webhely diagnosztizálása” vagy „migráció előkészítése”).

A biztonság ugyanazt az elvet követi, mint a hitelesítés: OAuth 2.1, az Ön szervezetéhez kötött tokenek és sorszintű biztonsággal kikényszerített RBAC-jogosultságok, eszközönként meghatározott hatókörrel és visszavonhatósággal, a tesztkörnyezet pedig el van különítve az éles rendszertől. A destruktív műveletek – törlés, felfüggesztés, számlázás, jelentős költés – kifejezett megerősítést vagy emberi jóváhagyási szabályzatot igényelnek. A gyakorisági korlátok és a költési limitek korlátozzák a mesterséges intelligencia által indított fizetős műveleteket, és minden MCP-hívás auditnaplózásra kerül a személyazonossággal, az eszközzel, az argumentumokkal és az eredménnyel együtt.

A protokollt támogatjuk az egyes alkalmazások egyenkénti integrálása helyett, ami azt jelenti, hogy a mesterségesintelligencia-eszközök választéka anélkül változhat, hogy a tárhelyintegrációja is megváltozna.

Gyakran ismételt kérdések

A nyilvános API megegyezik azzal, amelyet a vezérlőpult használ?

Igen — ez ugyanaz a motor API, közzétéve és megerősítve. A vezérlőpult, az adminisztrátori konzol, a CLI, a Terraform szolgáltató, az MCP kiszolgáló és a webhookok mind egyazon felület felhasználói, ezért az API nem marad le a panel mögött.

Tesztelhetek egy integrációt anélkül, hogy pénzt költenék vagy valódi szervereket építenék?

Igen. A Sandbox-kulcsokat a termelési kulcsoktól külön bocsátjuk ki, és teszt üzemmódban futnak: nincs valós számlázás és nincs valós erőforrás-kiosztás. Irányítsa a CI-t a sandbox hitelesítési adataira, és futtassa le biztonságosan a teljes kérés-válasz ciklust.

Hogyan akadályozhatom meg, hogy egy újrapróbálkozás megkettőzzön egy elemet?

Küldjön egy Idempotency-Key fejlécet a POST kérésében. Az újrajátszási rekord a commit során íródik be, nem pedig beágyazva, így az újrapróbálkozás soha nem játszhatja újra a gyorsítótárazott sikert egy olyan sor esetében, amelyet ténylegesen nem véglegesítettek, a sikertelen kérés pedig azonnal feloldja a zárolását, hogy a javított újrapróbálkozás ne akadjon el. A Webhook kézbesítése tervezéséből adódóan legalább egyszeri (at-least-once) – végezzen duplikátumszűrést az Ön oldalán az envelope id alapján.

Megadhatok hozzáférést egyetlen API-kulccsal az összes ügyfélszervezetemhez?

Ma nem. Az API-kulcsok szervezetenként kerülnek kiadásra, így a több ügyfélszervezetre kiterjedő integráció mindegyikhez külön kulccsal rendelkezik. A jogosultságok ellenőrzése a felhasználói entitások esetében szintén szervezetenként történik: a sites.create jogosultság birtoklása az egyik szervezetben nem biztosít hozzáférést egy különálló, független szervezetben, bár érvényes az alatta lévő beágyazott szervezetekre. Ez szándékos — így a feltört kulcs csak a saját szervezetére és az alatta lévő alszervezetekre korlátozódik, nem pedig a teljes platformra.

Mit engedélyez valójában a beépített Fejlesztő szerepkör?

A dev szerepkör magában foglalja a szervezeti szintű olvasást, az API-kulcsok kezelését, a webhelyek megtekintését és létrehozását, újraindítását, gyorsítótáruk törlését, valamint a hibajegyek megtekintését és megválaszolását. Szándékosan kizárja a számlázás felügyeletét. Felhívjuk figyelmét, hogy a közzétételi (deploy) és a push-to-live jogosultságok nem képezik a részét — ha egy csapattagnak szüksége van ezekre, rendeljen hozzá egy olyan szerepkört, amely tartalmazza őket, ahelyett, hogy feltételezné, hogy a Developer a legtágabb technikai szerepkör.

Mi történik a webhookjaimmal, ha a végpontom egy órára leáll?

A kézbesítések visszatartással (backoff) újrapróbálkoznak, és minden kísérlet WebhookDelivery formájában rögzítésre kerül, amelyet Ön megvizsgálhat. A forrásoldalon az események egy tranzakciós kimenő mappába (transactional outbox) kerülnek beírásra ugyanabban az adatbázis-tranzakcióban, mint maga a módosítás, így semmi sem vész el, amíg egy fogyasztó nem elérhető – a leállt fogyasztó lemarad, de soha nem akasztja meg a termelőt, és Ön visszatérése után újra elindíthatja a kézbesítéseket a vezérlőpultról.

Mennyibe kerül elkezdeni fejleszteni vele?

Kezdjen egy kártya nélküli 14 napos próbaverziót a Footprint-Free Hosting szolgáltatással – nincs szükség fizetési adatokra, legfeljebb 5 webhely. A fizetős Footprint-Free csomagok havi 6 dollártól indulnak a PBN 5 esetében. Minden csomaghoz 30 napos pénzvisszafizetési garancia, ingyenes migráció és nincs gyártói kötöttség.

Olvassa el a specifikációt, majd építsen arra támaszkodva

Specifikációalapú API, generált SDK-k, parancssori felület (CLI), Terraform szolgáltató, aláírt webhookok és egy MCP-kiszolgáló — a világ több mint 700 000 webhelye számára épített tárhelyünkön. Kezdje el a 14 napos próbaidőszakot bankkártya és fizetési adatok megadása nélkül.

Kezdés ingyen

WordPress-bővítmények, amelyekkel az Ön AI-ügynöke dolgozni tud

Mindezek a pluginok MCP-szerverré alakítják az WordPress webhelyét, így a Claude, a Cursor, a VS Code és más AI-asszisztensek valós munkát végezhetnek rajta, az Ön fiókjába bejelentkezve, és az Ön által engedélyezett műveletekre korlátozva.

Minden MCP- és API-dokumentáció fejlesztőknek →