Pentru dezvoltatori

Găzduire pe care o puteți controla prin cod

Zinn Digital® este o platformă axată pe API (API-first). Același API de motor care alimentează panoul nostru de control este cel pe care îl primiți dumneavoastră — versionat, bazat pe specificații și documentat 100% la momentul compilării, având deasupra SDK-uri generate, un CLI, un furnizor Terraform, webhook-uri semnate și un server MCP. Indiferent de ceea ce folosiți pentru a lucra — un terminal, un pipeline, un fișier de stare sau un agent AI —, platforma răspunde la cerințele dumneavoastră.

Un punct final API care livrează evenimente semnate mai multor ascultători abonați.
  • 700.000+site-uri găzduite la nivel mondial
  • 1Specificația OpenAPI din care este generat fiecare instrument
  • 4SDK-uri client — TypeScript, Python, PHP, Go
  • OAuth 2.1acces delimitat și revocabil pentru agentul AI

Un singur API. Fiecare interfață se bazează pe acesta.

Majoritatea furnizorilor de găzduire adaugă un API la un panou de control abia ulterior, iar acest lucru se vede — jumătate din funcționalitățile panoului nu ajung niciodată în exterior. Noi am construit în sens invers. Tabloul de bord, consola de administrare, CLI-ul, furnizorul Terraform, serverul MCP și propriile dumneavoastră integrări utilizează toate același API de motor. Dacă puteți face acest lucru în panou, îl puteți face și în cod.

Mai întâi specificația, nu documentat ulterior

Specificația OpenAPI este sursa unică de adevăr și niciun endpoint nu este livrat dacă nu se află în specificație. Această regulă unică face ca API-ul public să fie complet documentat în momentul construirii, nu ulterior — nu există unghere nedocumentate, deoarece un endpoint nedocumentat nu poate exista.

Generat, nu este întreținut manual niciodată

Documentația de referință interactivă, cele patru SDK-uri de client, o mare parte din CLI și scheletul furnizorului Terraform sunt generate din acea unică specificație. O singură sursă, multe artefacte, mereu sincronizate — nu trebuie să alergați niciodată după o documentație care s-a îndepărtat de implementare.

Gestionat prin versiuni cu o politică de depreciere

Punctele terminale se află sub /v1, având o politică de depreciere publicată și un jurnal de modificări. Sunteți informat în scris înainte ca ceva să se modifice, în loc să aflați acest lucru dintr-o compilare eșuată.

Testat pe bază de contract în CI

Testele de contract implementare-versus-specificație și verificarea OpenAPI rulează la fiecare modificare. Discrepanța dintre cod și contract duce la eșecul compilării — astfel, specificația din care vă generați clientul este specificația pe care serverul o respectă cu adevărat.

Autentificare, delimitarea domeniului și capcanele scalării

Două modalități de acces, un singur principiu uniform în spatele lor. Indiferent pe care o utilizați, se aplică aceleași verificări ale permisiunilor și aceeași izolare la nivel de bază de date.

Chei API, per organizație

Cheile au forma zdk_<mode>_<prefix>_<secret>. Este stocat doar un hash SHA-256 al secretului — nu vă putem afișa din nou o cheie după emitere și nici o persoană care accesează baza noastră de date nu poate face acest lucru. Cheile conțin domenii de aplicare, pot fi revocate și sunt emise pentru fiecare organizație, nu pentru fiecare persoană.

Modurile live și de testare, menținute separat

Cheile sandbox sunt separate de cheile de producție și funcționează în modul sandbox: fără facturare reală, fără alocare reală de resurse. Testele dumneavoastră de integrare pot suprasolicita API-ul fără a cheltui bani sau a construi servere.

OIDC pentru oameni

Sesiunile utilizatorilor se autentifică prin tokenuri JWT emise de Keycloak, verificate pe baza cheii publice a domeniului (realm), și se rezolvă la același obiect Principal ca o cheie API. Punctele finale sunt restricționate prin chei de permisiuni granulare, cum ar fi sites.create sau apikeys.manage, verificate per organizație — o permisiune dintr-o organizație nu acordă acces într-o organizație separată, fără legătură, deși se aplică organizațiilor imbricate sub aceasta.

Securitate la nivel de rând dedesubt

Fiecare solicitare a unui locatar rulează într-o tranzacție cu domeniul organizației Postgres setat din principal, astfel încât izolarea este impusă de baza de date, nu de un filtru ORM pe care cineva l-ar putea uita. Filtrul queryset este încă prezent ca apărare în profunzime.

Construit pentru mașini, nu doar pentru demonstrații

Este ușor să faceți un API să arate bine într-un fișier README și greu să îl faceți să funcționeze impecabil sub trafic real. Acestea sunt părțile pentru care am depus cele mai mari eforturi, deoarece ele sunt cele care compromit integrările la trei dimineața.

Un detaliu care merită menționat, deoarece influențează modul în care funcționează operațiunile în masă: o eroare 409 pentru un domeniu duplicat răspunde pentru orice entitate găzduită la întrebarea „este acest hostname găzduit aici?”, ceea ce constituie un oracol de enumerare și un risc real de deanonimizare pentru Footprint-Free. Limitarea ratei de creare a site-urilor ar fi fost o soluție comodă și ar fi compromis definitiv produsul de aprovizionare în masă (bulk-provisioning). În schimb, sunt contorizate într-un buget doar încercările respinse de domenii duplicate, per entitate principală. Creările reușite nu sunt niciodată scăzute din acesta — astfel, puteți efectua aprovizionări în masă pe parcursul întregii zile, iar tentativele de sondare sunt oprite aproape imediat.

  • O structură uniformă de eroare la fiecare eșec: un cod, un mesaj inteligibil, detalii opționale la nivel de câmp și un request_id pe care îl puteți transmite echipei de asistență. Erorile de validare returnează 422, indicând câmpurile neconforme.
  • Chei de idempotență pe POST, cu înregistrarea de reluare scrisă la comitere (commit) și nu inline — astfel încât o reîncercare să nu poată reda niciodată un 201 din cache care menționează un rând ce nu a fost comiterat niciodată. O solicitare eșuată își eliberează imediat blocarea în curs, astfel încât un 422 nu blochează reîncercarea dumneavoastră corectată.
  • Paginare prin cursor ca set de chei peste UUIDv7 — stabilă la scrieri concurente, fără decalaj de pagină atunci când sunt inserate rânduri la mijlocul scanării.
  • RateLimit-Remaining în răspunsuri, astfel încât un client generat să poată reduce inteligent frecvența cererilor în loc să ghicească.
  • Resursele din afara domeniului de aplicare returnează 404 în loc de 403 — o eroare 403 ar confirma existența resursei. Filtrarea după o organizație din afara domeniului dumneavoastră returnează o pagină goală din același motiv.
  • Crearea site-ului este o înregistrare, nu o provizionare: POST /v1/sites returnează 201 cu status pending și nu blochează niciodată compilarea. Evenimentul este scris în outbox-ul tranzacțional în aceeași tranzacție cu rândul, astfel încât un site există dacă și numai dacă provizionarea sa este garantat solicitată.

SDK-uri, un CLI și un furnizor Terraform

Trei consumatori ai aceleiași specificații, pentru trei moduri diferite de lucru.

SDK-uri client

Generat pentru TypeScript, Python, PHP și Go, urmărind specificația, astfel încât un nou endpoint să ajungă în limbajul dumneavoastră fără a aștepta un wrapper scris manual.

Zinnector®, CLI-ul

Generați structura unui site WordPress, rulați-l local doar cu Node instalat și implementați-l. Zinnector® verifică în prealabil proiectul dumneavoastră în raport cu slotul în care urmează să implementați — versiunea PHP, spațiul pe disc, numărul de fișiere — și avertizează înainte de a trimite modificările, nu după. De asemenea, se autentifică, listează site-uri, implementează, gestionează domenii și DNS, citește servicii de e-mail, creează copii de rezervă, rulează comenzi WP-CLI autorizate, urmărește jurnalele în timp real și lansează operațiuni în masă. Gratuit, sub licență MIT și construit pe această interfață publică API.

Furnizorul Terraform

Gestionați site-uri, domenii, înregistrări DNS, cutii poștale și planuri ca infrastructură ca și cod. terraform apply provizionează găzduirea, iar mediile dumneavoastră devin reproductibile și verificabile, în loc de o succesiune de clicuri pe care nimeni nu le-a notat.

Referință interactivă

Documentație generată pe care o puteți citi și apela direct din browser, ce descrie cu exactitate punctele finale pe care le implementează serverul — deoarece ambele provin din aceeași specificație.

Webhook-uri care supraviețuiesc căderii punctului dumneavoastră final

În spatele platformei se află o structură durabilă de evenimente: fiecare schimbare de stare scrie un eveniment într-un outbox tranzacțional din Postgres, în mod atomic cu modificarea bazei de date, iar un releu îl publică în NATS JetStream. Evenimentele sunt tipizate și versionate — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending și restul.

Abonați-vă la ceea ce vă interesează

Înregistrați un endpoint ca o WebhookSubscription și alegeți tipurile de evenimente pe care le primește. Un singur flux alimentează notificările, analizele, automatizările și integrarea dumneavoastră deopotrivă — consumați aceleași evenimente ca și noi.

Semnat cu HMAC

Fiecare livrare este semnată HMAC, astfel încât să puteți verifica dacă provine de la noi înainte de a lua măsuri.

Reîncercat cu temporizare și înregistrat

Livrările eșuate sunt reîncercate cu temporizare, iar fiecare încercare este înregistrată ca WebhookDelivery. Puteți inspecta și relua livrările din panoul de control în loc să trimiteți un e-mail echipei de asistență pentru a întreba ce am trimis.

Cel puțin o dată, prin urė dedublați după id

Conducta este deliberat de tip cel puțin o dată (at-least-once), mai degrabă decât să pretindă a fi exact o dată (exactly-once). Unui releu care se oprește în timpul publicării îi expiră contractul de revendicare, iar evenimentele sale sunt republicate. Deduplicați pe baza envelope id și consumatorul dumneavoastră este corect prin construcție.

Încărcarea codului pe site

Un API reprezintă doar jumătate din povestea unui dezvoltator. Cealaltă jumătate este livrarea.

  • Conectați GitHub, GitLab sau Bitbucket prin OAuth, cheile de implementare fiind păstrate în magazinul de acreditări — nu într-un fișier de configurare.
  • Push declanșează o linie de procesare pentru construire și implementare, cu mapare ramură-mediu (main la production, staging la staging) și pași de construire per stivă pentru composer și npm.
  • Reveniți la o versiune anterioară atunci când o implementare eșuează.
  • Clonare de test și publicare directă, astfel încât o modificare să fie verificată într-un mediu real înainte de a ajunge la vizitatori.
  • SFTP pentru fiecare site sub izolare CageFS, astfel încât fiecare locatar să își vadă doar propriile fișiere, plus un shell SSH restricționat (jailed) pe platforma partajată.
  • wp-cli din terminalul panoului și prin SSH.
  • VS Code în browser prin code-server — un editor complet cu git, care editează direct fișierele site-ului.
  • Versiune PHP per site, setări PHP editabile, extensii per site, variabile de mediu și cron real alături de WP-cron.

Patru moduri de a lucra la un site

API-ul este o singură ușă. Acestea sunt celelalte patru, iar fiecare dintre ele este inclusă în plan, în loc să fie vândută ca nivel separat pentru dezvoltatori.

Editorul web

VS Code în browser, deschis din pagina site-ului din panoul de control, editează fișierele reale ale acelui site cu git integrat și întregul editor în interiorul aceleiași izolări CageFS ca accesul dumneavoastră SFTP. Acesta editează site-ul LIVE — nu există nicio copie de staging intermediară, astfel încât un fișier pe care îl salvați este public în momentul în care este scris, deși un fișier static poate continua să fie livrat din memoria cache CDN timp de până la patru ore.

Zinnector®, interfața CLI

Gratuit, licențiat MIT și construit pe acest API public identic. Generați structura unui site WordPress, rulați-l pe propriul computer, verificați-l preliminar în raport cu slotul în care urmează să îl implementați — versiune PHP, disc, număr de fișiere — și implementați-l. Necesită Node 24 sau mai recent.

Serverul MCP

Un singur catalog de instrumente, astfel încât clientul AI pe care îl utilizați deja să poată funcționa pe site-urile dumneavoastră prin intermediul aceluiași API și al acelorași permisiuni pe care le folosește tabloul de bord. Același server la care se conectează propriul dumneavoastră client este cel conectat la editorul web. Numai în citire până când specificați altfel.

Acces pentru dezvoltatori per site

Lucrul pentru clienți nu necesită parola dumneavoastră. Invitați pe cineva prin adresa de e-mail și va primi exact un singur site: se conectează în nume propriu, cu rol de vizualizator, editor sau manager, iar orice alt site răspunde cu 404 înainte de rularea oricărui handler — o politică de securitate la nivel de rând în Postgres și o barieră la nivel de solicitare, nu o simplă verificare. Proprietarul contului acordă și revocă acest acces printr-un singur clic, cu efect la următoarea solicitare a acestuia.

Și același API pe care îl poate folosi agentul dumneavoastră AI

Oferim platforma ca server MCP găzduit: un adaptor subțire de protocol peste API-ul motorului, care reutilizează același catalog de acțiuni, RBAC și jurnal de audit. Conectați Claude Code, Cursor, ChatGPT, Claude Desktop sau orice client compatibil MCP o singură dată, iar fiecare funcționalitate pe care o adăugăm la API devine automat disponibilă pentru acesta.

Agentul primește trei lucruri: Tools (aceleași puncte terminale API, fără logică paralelă care să devieze), Resources (starea site-ului doar pentru citire, configurare, jurnale recente, parametri de performanță, timp de funcționare și articole din baza de cunoștințe, astfel încât să diagnosticheze cu date reale înainte de a acționa) și Prompts (șabloane de flux de lucru publicate, cum ar fi „diagnose this site” sau „prepare a migration”).

Securitatea funcționează pe același principiu ca autentificarea: OAuth 2.1, tokenuri asociate organizației dumneavoastră și permisiuni RBAC cu securitate la nivel de rând aplicată, limitate ca domeniu și revocabile per instrument, sandbox separat de producție. Acțiunile distructive — ștergere, suspendare, facturare, cheltuieli mari — necesită o confirmare explicită sau o politică de aprobare umană. Limitele de frecvență și plafoanele de cheltuieli limitează acțiunile plătite declanșate de IA, iar fiecare apel MCP este înregistrat în jurnalul de audit cu identitate, instrument, argumente și rezultat.

Acceptăm protocolul în loc să integrăm fiecare aplicație pe rând, ceea ce înseamnă că opțiunea dumneavoastră privind instrumentele de inteligență artificială se poate schimba fără a modifica și integrarea de găzduire.

Întrebări frecvente

API-ul public este același cu cel utilizat de tabloul de bord?

Da — este același API al motorului, publicat și securizat. Tabloul de bord, consola de administrare, CLI-ul, furnizorul Terraform, serverul MCP și webhookurile sunt toate consumatoare ale aceleiași suprafețe, motiv pentru care API-ul nu rămâne în urma panoului.

Pot testa o integrare fără a cheltui bani sau a construi servere reale?

Da. Cheile de sandbox sunt emise separat de cheile de producție și funcționează în modul de testare: fără facturare reală și fără alocare reală de resurse. Direcționați sistemul dumneavoastră CI către acreditările de sandbox și testați în siguranță întregul ciclu de cerere și răspuns.

Cum pot împiedica o reîncercare să creeze un element duplicat?

Trimiteți un Idempotency-Key în cererea dumneavoastră POST. Înregistrarea de reluare este scrisă la commit și nu inline, astfel încât o reîncercare nu poate reda niciodată un succes memorat în cache pentru un rând care nu a fost efectiv aplicat (committed), iar o cerere eșuată își eliberează blocarea imediat, astfel încât reîncercarea dumneavoastră corectată să nu fie reținută. Livrarea webhook-urilor este concepută conform principiului cel-puțin-o-dată (at-least-once) — efectuați deduplicarea pe baza envelope id de partea dumneavoastră.

Pot oferi unei singure chei API acces la toate organizațiile clienților mei?

Nu astăzi. Cheile API sunt emise per organizație, astfel încât o integrare care acoperă mai multe organizații cliente deține o cheie pentru fiecare. Permisiunile sunt, de asemenea, verificate per organizație pentru utilizatorii principali: deținerea permisiunii sites.create într-o organizație nu acordă acces într-o organizație separată și neasociată, deși se aplică organizațiilor imbricate sub aceasta. Acest lucru este deliberat — limitează o cheie compromisă la propria organizație și la sub-organizațiile de sub aceasta, nu la întreaga platformă.

Ce permite de fapt rolul integrat de Dezvoltator?

Rolul dev include citirea organizației, gestionarea cheilor API, vizualizarea și crearea de site-uri, repornirea acestora, golirea memoriei cache a acestora, precum și vizualizarea și răspunsul la tichete. Acesta exclude în mod deliberat controlul facturării. Rețineți că permisiunile de deploy și push-to-live nu fac parte din acesta — dacă un membru al echipei are nevoie de ele, atribuiți un rol care le include, în loc să presupuneți că Developer este cel mai cuprinzător rol tehnic.

Ce se întâmplă cu webhook-urile mele dacă punctul meu final este inactiv timp de o oră?

Livrările sunt reîncercate cu backoff și fiecare încercare este înregistrată ca un WebhookDelivery pe care îl puteți inspecta. În amonte, evenimentele sunt scrise într-un outbox tranzacțional în cadrul aceleiași tranzacții a bazei de date ca și modificarea în sine, astfel încât nimic nu se pierde cât timp un consumator este indisponibil — un consumator oprit doar întârzie, nu întrerupe niciodată producătorul, iar dumneavoastră puteți relua livrările din tabloul de bord odată ce ați revenit.

Cât costă să începeți să dezvoltați pe baza lui?

Începeți cu o perioadă de probă de 14 zile fără card pentru găzduirea Footprint-Free — fără detalii de plată, până la 5 site-uri. Nivelurile plătite Footprint-Free încep de la 6 USD/lună pentru PBN 5. Fiecare plan include o garanție de rambursare de 30 de zile, migrări gratuite și nicio constrângere față de furnizor.

Citiți specificațiile, apoi dezvoltați pe baza acestora

API bazat pe specificații, SDK-uri generate, o interfață CLI, un furnizor Terraform, webhook-uri semnate și un server MCP — pe găzduirea pe care am creat-o pentru peste 700.000 de site-uri din întreaga lume. Începeți cu o perioadă de probă gratuită de 14 zile, fără card sau date de plată.

Începeți gratuit

Modulele plugin WordPress cu care agentul tău AI poate lucra

Fiecare dintre aceste pluginuri transformă site-ul tău WordPress într-un server MCP, astfel încât Claude, Cursor, VS Code și alți asistenți AI pot efectua lucruni reale pe acesta, conectați fiind ca tine și limitați la ceea ce ai voie să faci.

Toate documentele MCP și API pentru dezvoltatori →