למפתחים

אחסון שתוכלו לנהל ישירות מקוד

Zinn Digital® היא פלטפורמת API-first. אותו ה-API של המנוע שמפעיל את לוח הבקרה שלנו הוא זה שאתם מקבלים — מנוהל בגרסאות, מבוסס מפרט מראש ומתועד ב-100% בזמן הבנייה, כולל ערכות SDK מיוצרות, ממשק CLI, ספק Terraform, התראות ובהוק חתומות ושרת MCP נוסף על גביו. לא משנה במה תשתמשו לעבודה — מסוף, קו צינור, קובץ מצב או סוכן בינה מלאכותית — הפלטפורמה נענית לכך.

נקודת קצה של API המעבירה אירועים חתומים למספר מאזינים רשומים.
  • +700,000אתרים המאוחסנים ברחבי העולם
  • 1מפרט OpenAPI שממנו נוצר כל כלי
  • 4ערכות SDK ללקוח — TypeScript, Python, PHP, Go
  • OAuth 2.1גישת סוכן בינה מלאכותית מוגבלת בהיקפה וניתנת לביטול

ממשק API יחיד. כל ממשק מבוסס עליו.

רוב ספקי האחסון מחברים API ללוח הבקרה רק בדיעבד, והדבר ניכר — מחצית מהתכונות של הלוח לעולם אינן מגיעות אליו. אנחנו בנינו זאת בדרך ההפוכה. לוח הבקרה, מסוף הניהול, ה-CLI, ספק ה-Terraform, שרת ה-MCP והאינטגרציות שלכם צורכים כולם את אותו API של המנוע. אם ניתן לבצע זאת בלוח, תוכלו לבצע זאת בקוד.

מפרט תחילה, לא מתועד בדיעבד

מפרט ה-OpenAPI הוא מקור האמת היחיד, ושום נקודת קצה אינה מופצת אלא אם כן היא מופיעה במפרט. כלל יחיד זה הוא שמבטיח כי ה-API הציבורי יתועד במלואו כבר בזמן הבנייה ולא בדיעבד — אין שום פינה בלתי מתועדת, מכיוון שנקודת קצה בלתי מתועדת פשוט אינה יכולה להתקיים.

נוצר אוטומטית, לא מתוחזק ידנית לעולם

תיעוד העזר האינטראקטיבי, ארבע ערכות ה-SDK של הלקוח, חלק ניכר מ-CLI ושלד ספק ה-Terraform נוצרים כולם מתוך מפרט יחיד זה. מקור אחד, תוצרים רבים, תמיד מסונכרנים — לעולם אינכם רודפים אחרי מסמך שסטה מההטמעה.

בעל גרסאות עם מדיניות הוצאה משימוש

נקודות הקצה נמצאות תחת /v1 עם מדיניות הוצאה משימוש מפורסמת ויומן שינויים. תקבלו הודעה בכתב לפני שדבר מה ישתנה, במקום לגלות זאת מבנייה שנכשלה.

נבדק לפי חוזה ב-CI

בדיקות חוזה בין יישום למפרט ובדיקות OpenAPI linting מופעלות בכל שינוי. סטייה בין הקוד לבין החוזה מכשילה את ה-build — כך שהמפרט שממנו אתם יוצרים את הלקוח שלכם הוא המפרט שהשרת אכן מכבד בפועל.

אימות, הגדרת היקף והמלכודות בהתרחבות לגודל מלא

שתי דרכי כניסה, עיקרון אחיד אחד מאחוריהן. לא משנה באיזו מהן תשתמשו, חלות אותן בדיקות הרשאות ואותה רמת בידוד ברמת מסד הנתונים.

מפתחות API, לפי ארגון

מפתחות נראים כמו zdk_<mode>_<prefix>_<secret>. רק גיבוב SHA-256 של הסוד נשמר — איננו יכולים להציג בפניכם מפתח שוב לאחר הנפקתו, וכך גם איש אינו יכול לגשת למסד הנתונים שלנו. מפתחות נושאים הרשאות, ניתנים לביטול ומונפקים לכל ארגון ולא לכל אדם.

מצב פעיל ומצב בדיקה, מופרדים זה מזה

מפתחות Sandbox נפרדים ממפתחות הייצור (Production) ופועלים במצב Sandbox: ללא חיוב בפועל, ללא הקצאת משאבים בפועל. בדיקות האינטגרציה שלכם יכולות להעמיס על ה-API ללא הוצאת כספים או הקמת שרתים.

OIDC לבני אדם

הפעלות משתמש מאומתות באמצעות JWT שהונפקו על ידי Keycloak, מאומתות מול המפתח הציבורי של ה-realm, ונפתרות לאותו אובייקט Principal כמו מפתח API. נקודות קצה מותנות במפתחות הרשאה מפורטים כגון sites.create או apikeys.manage, הנבדקים לפי ארגון — הרשאה בארגון אחד אינה מעניקה גישה בארגון נפרד ובלתי קשור, אם כי היא חלה על הארגונים המקוננים תחתיו.

אבטחה ברמת השורה מתחת

כל בקשת דייר פועלת במסגרת תנועה כאשר טווח הארגון של Postgres מוגדר מתוך ה-principal, כך שההפרדה נאכפת על ידי מסד הנתונים, ולא על ידי מסנן ORM שמישהו עלול לשכוח. מסנן ה-queryset עדיין קיים כהגנה לעומק.

נבנה עבור מכונות, לא רק להדגמות

קל לגרום ל-API להיראות טוב בקובץ README, וקשה לגרום לו לתפקד כראוי תחת תעבורה אמיתית. אלה החלקים שעליהם עבדנו קשה במיוחד, מפני שהם החלקים ששוברים אינטגרציות בשלוש לפנות בוקר.

פרט אחד ששווה להדגיש, מכיוון שהוא מעצב את אופן הפעולה בצובר: שגיאת 409 בעת דומיין כפול עונה על השאלה "האם שם מארח זה מתארח כאן?" עבור כל דייר, וזהו אורקל מנייה (enumeration oracle) וסיכון ממשי של ביטול אנונימיות מול Footprint-Free. הגבלת קצב יצירת האתרים הייתה פתרון עצל והייתה שוברת לחלוטין את מוצר ההקצאה בצובר. במקום זאת, רק ניסיונות שנדחו בשל דומיין כפול נכללים במכסה, לכל מורשה (principal). פעולות יצירה מוצלחות אינן נגרעות ממנה לעולם — כך שתוכלו לבצע הקצאה בצובר לאורך כל היום, בעוד שפעולות גישוש וסריקה נחסמות כמעט מיד.

  • מעטפת שגיאה עקבית בכל כשל: קוד, הודעה קריאה, פרטים אופציונליים ברמת השדה ו-request_id שתוכלו למסור לתמיכה. שגיאות אימות מחזירות 422 בציון השדות הבעייתיים.
  • מפתחות אידמפוטנטיות ב-POST, כאשר רשומת השידור החוזר נכתבת בעת ביצוע ה-commit במקום באופן מוטבע — כך שניסיון חוזר לעולם אינו יכול להפעיל מחדש תגובת 201 שנשמרה במטמון ומציינת שורה שמעולם לא בוצע עבורה commit. בקשה שנכשלה משחררת את הנעילה הפעילה שלה באופן מיידי, כך ש-422 אינו נועל את הניסיון החוזר המתוקן שלכם.
  • עימוד מבוסס סמן כ-keyset מעל UUIDv7 — יציב תחת כתיבות בו-זמניות, ללא תזוזת עמודים כאשר שורות מוכנסות באמצע הסריקה.
  • RateLimit-Remaining בתגובות, כדי שלקוח שנוצר יוכל להאט בצורה חכמה במקום לנחש.
  • משאבים מחוץ לתחום מחזירים 404 במקום 403 — שגיאת 403 תאשר שהמשאב קיים. סינון לפי ארגון מחוץ לתחום שלך מחזיר דף ריק מאותה סיבה.
  • יצירת אתר היא רישום, לא הקצאה: POST /v1/sites מחזיר 201 עם סטטוס pending ולעולם אינו חוסם את הבנייה. האירוע נכתב ל-transactional outbox באותה טרנזקציה כמו השורה, כך שאתר קיים אם ורק אם מובטח כי תתבקש הקצאתו.

ערכות SDK, ממשק שורת פקודה (CLI) וספק Terraform

שלושה צרכנים של אותו מפרט, עבור שלוש דרכי עבודה שונות.

ערכות SDK ללקוח

נוצר עבור TypeScript, Python, PHP ו-Go, ועוקב אחר המפרט כך שנקודת קצה חדשה מגיעה לשפה שלכם מבלי לחכות למעטפת שנכתבה ידנית.

Zinnector®, ה-CLI

צרו שלד לאתר WordPress, הריצו אותו מקומית כאשר רק Node מותקן, ופרוסו אותו. Zinnector® בודק מראש את הפרויקט שלכם מול המיקום שבו אתם עומדים לפרוס — גרסת PHP, שטח דיסק, מספר קבצים — ומתריע לפני הדחיפה ולא אחריה. בנוסף, הוא מתחבר, מציג רשימת אתרים, פורס, מנהל דומיינים ו-DNS, קורא שירותי דואר, מבצע גיבויים, מריץ פקודות WP-CLI מאושרות, עוקב אחר יומנים בזמן אמת ומפעיל פעולות מרוכזות. חינמי, בעל רישיון MIT ובנוי על גבי אותו API ציבורי בדיוק.

ספק Terraform

נהלו אתרים, דומיינים, רשומות DNS, תיבות דואר ותוכניות כתשתית כקוד (Infrastructure as Code). הפקודה terraform apply מקצה אחסון, והסביבות שלכם הופכות לשחזוריות וניתנות לבדיקה במקום רצף של לחיצות שאיש לא תיעד.

מדריך אינטראקטיבי

תיעוד שנוצר שבאפשרותכם לקרוא ולקרוא לו ישירות מהדפדפן, המתאר בדיוק את נקודות הקצה שהשרת מיישם — מכיוון ששניהם מגיעים מאותו מפרט.

נקודות קצה של Webhook ששורדות גם כשנקודת הקצה שלכם אינה זמינה

מאחורי הפלטפורמה ניצב עמוד שדרה עמיד של אירועים: כל שינוי מצב כותב אירוע ל-outbox טרנזקציוני ב-Postgres, באופן אטומי יחד עם השינוי במסד הנתונים, וממסר מפרסם אותו אל NATS JetStream. האירועים הם בעלי טיפוסים וגרסאות — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending וכל השאר.

הירשמו למה שמעניין אתכם

רשמו נקודת קצה כ-WebhookSubscription ובחרו את סוגי האירועים שהיא תקבל. תזרים יחיד מזין התראות, ניתוחים, אוטומציות ואת האינטגרציה שלכם כאחד — אתם צורכים את אותם האירועים שאנו צורכים.

חתום באמצעות HMAC

כל מסירה חתומה ב-HMAC כדי שתוכלו לאמת שהיא הגיעה מאיתנו לפני שתפעלו לפיה.

נוסה שוב עם השהיה הדרגתית, ותועד ביומן

מסירות שנכשלו מנוסות שוב עם השהיה הולכת וגדלה, וכל ניסיון נרשם כ-WebhookDelivery. באפשרותכם לבדוק ולהפעיל מחדש מסירות מלוח הבקרה במקום לשלוח דוא"ל לתמיכה ולשאול מה שלחנו.

לפחות פעם אחת, לכן יש לבצע ביטול כפילויות לפי ה-id

צינור העיבוד פועל במכוון במתכונת של "לפחות פעם אחת" במקום להתחזות ל"בדיוק פעם אחת". ממסר שקורס באמצע הפרסום מאבד את תוקף חכירת התביעה שלו, והאירועים שלו מפורסמים מחדש. בצעו מניעת כפילויות לפי מזהה המעטפה והצרכן שלכם יהיה נכון מעצם תכנונו.

העלאת קוד לאתר

ממשק API הוא רק חצי מהסיפור של מפתח. החצי השני הוא ההשקה.

  • חברו את GitHub, GitLab או Bitbucket באמצעות OAuth, כאשר מפתחות הפריסה נשמרים במאגר האישורים — ולא בקובץ תצורה.
  • פעולת Push מפעילה צינור בנייה ופריסה (build-and-deploy), עם מיפוי ענפים לסביבות (main ל-production, ו-staging ל-staging) ושלבי בנייה לפי מחסנית עבור composer ו-npm.
  • בצעו שחזור לגרסה קודמת כאשר הפריסה נכשלת.
  • שכפול לסביבת בדיקות והעלאה ישירה לאוויר, כדי שכל שינוי ייבדק בסביבה אמיתית לפני שהוא מגיע למבקרים.
  • SFTP לכל אתר תחת בידוד CageFS, כך שכל דייר רואה רק את הקבצים שלו, בנוסף למעטפת SSH מוגבלת (jailed) בפלטפורמה המשותפת.
  • wp-cli מטרמינל לוח הבקרה ובאמצעות SSH.
  • VS Code בדפדפן באמצעות code-server — עורך מלא עם git, העורך את קובצי האתר ישירות.
  • גרסת PHP לכל אתר, הגדרות PHP ניתנות לעריכה, הרחבות לכל אתר, משתני סביבה ו-cron אמיתי לצד WP-cron.

ארבע דרכים לעבוד על אתר

ה-API הוא דלת אחת. אלו ארבע הדלתות האחרות, וכל אחת מהן כלולה בתוכנית במקום להימכר כשכבת מפתחים.

עורך הווב

היישום VS Code בדפדפן, שנפתח מתוך עמוד האתר בלוח הבקרה, עורך את הקבצים האמיתיים של אותו אתר עם git מובנה וכל העורך בתוך אותו בידוד CageFS כמו גישת ה-SFTP שלכם. הוא עורך את האתר החי (LIVE) — אין עותק בדיקה (staging) באמצע, כך שקובץ שאתם שומרים הופך לציבורי ברגע שהוא נכתב, אם כי קובץ סטטי עשוי להמשיך להיות מוגש מתוך זיכרון המטמון של ה-CDN למשך עד ארבע שעות.

Zinnector®, ה-CLI

בחינם, ברישיון MIT ובנוי על גבי אותו API ציבורי. הקימו שלד לאתר WordPress, הריצו אותו במחשבכם, בצעו בדיקה מקדימה מול המשבצת שאליה אתם עומדים לפרוס — גרסת PHP, דיסק, מספר קבצים — ופרסו. דורש Node 24 או גרסה חדשה יותר.

שרת ה-MCP

קטלוג כלים אחד, כדי שלקוח ה-AI שבו אתם כבר משתמשים יוכל לפעול באתרים שלכם דרך אותו ה-API ואותן ההרשאות שבהם לוח הבקרה משתמש. אותו שרת שאליו הלקוח שלכם מתחבר הוא זה שמחובר לעורך האתר. לקריאה בלבד עד שתורו אחרת.

גישת מפתחים לפי אתר

עבודה עבור לקוחות אינה דורשת את הסיסמה שלכם. הזמינו מישהו באמצעות כתובת אימייל והוא יקבל בדיוק אתר אחד: הוא מתחבר בשמו, עם תפקיד צופה, עורך או מנהל, וכל אתר אחר מחזיר שגיאת 404 לפני שרכיב טיפול כלשהו פועל — מדיניות אבטחה ברמת השורה של Postgres ומחסום ברמת הבקשה, ולא בדיקה בודדת. בעל החשבון מעניק ושולל זאת בלחיצה אחת, בתוקף מיידי בבקשה הבאה שלו.

ואותו API שסוכן ה-AI שלכם יכול להשתמש בו

אנו חושפים את הפלטפורמה כשרת MCP מתארח: מתאם פרוטוקול דק מעל ה-API של המנוע, שעושה שימוש חוזר באותו קטלוג פעולות, ב-RBAC ובנתיב הביקורת. חברו את Claude Code, את Cursor, את ChatGPT, את Claude Desktop או כל לקוח בעל יכולת MCP פעם אחת, וכל יכולת שנוסיף ל-API תהיה זמינה עבורו באופן אוטומטי.

הסוכן מקבל שלושה דברים: כלים (אותן נקודות קצה של ה-API, ללא לוגיקה מקבילה שעלולה לסטות), משאבים (מצב תקינות האתר לקריאה בלבד, תצורה, יומנים אחרונים, מדדים, זמן פעילות תקינה ומאמרי מרכז מידע, כדי שיאבחן באמצעות נתונים אמיתיים לפני נקיטת פעולה) והנחיות (תבניות זרימת עבודה שפורסמו כגון "אבחן אתר זה" או "הכן הגירה").

האבטחה פועלת על פי אותו עיקרון כמו האימות: OAuth 2.1, אסימונים המשויכים לארגון שלכם והרשאות RBAC עם אבטחה ברמת השורה שנאכפת, בעלי תחום מוגדר וניתנים לביטול לכל כלי, וסביבת ארגז חול (sandbox) מופרדת מסביבת הייצור. פעולות הרסניות — מחיקה, השעיה, חיוב, הוצאה גדולה — דורשות אישור מפורש או מדיניות אישור אנושי. מגבלות קצב ותקרות הוצאה מגבילות פעולות בתשלום המופעלות על ידי בינה מלאכותית, וכל קריאת MCP מתועדת ביומן ביקורת הכולל זהות, כלי, ארגומנטים ותוצאה.

אנו תומכים בפרוטוקול במקום להטמיע כל אפליקציה בנפרד, מה שאומר שבחירת כלי ה-AI שלכם יכולה להשתנות מבלי שאינטגרציית האחסון שלכם תשתנה יחד איתה.

שאלות נפוצות

האם ה-API הציבורי הוא אותו אחד שבו לוח הבקרה משתמש?

כן — זהו אותו API של המנוע, מפורסם ומאובטח. לוח הבקרה, מסוף הניהול, ה-CLI, ספק ה-Terraform, שרת ה-MCP ו-webhooks הם כולם צרכנים של ממשק יחיד, וזו הסיבה שה-API אינו מפגר אחרי לוח הבקרה.

האם אוכל לבדוק אינטגרציה מבלי להוציא כסף או לבנות שרתים אמיתיים?

כן. מפתחות Sandbox מונפקים בנפרד ממפתחות ייצור ופועלים במצב בדיקה: ללא חיוב אמיתי וללא הקצאת משאבים אמיתית. כוונו את ה-CI שלכם לפרטי האימות של sandbox ותרגלו בבטחה את מחזור הבקשה והתגובה המלא.

כיצד אוכל למנוע מניסיון חוזר ליצור עותק כפול של פריט כלשהו?

שלחו Idempotency-Key ב-POST שלכם. רשומת ההפעלה החוזרת נכתבת בעת commit במקום באופן מוטבע, כך שניסיון חוזר לעולם אינו יכול להפעיל מחדש הצלחה שמורה במטמון עבור שורה שלא בוצע עבורה commit בפועל, ובקשה שנכשלת משחררת את הנעילה שלה באופן מיידי כדי שהניסיון החוזר המתוקן שלכם לא יתעכב. מסירת Webhook מתוכננת לפחות פעם אחת (at-least-once) — בצעו ביטול כפילויות בהתבסס על ה-envelope id בצד שלכם.

האם ניתן להעניק למפתח API יחיד גישה לכל ארגוני הלקוחות שלי?

לא היום. מפתחות API מונפקים לכל ארגון בנפרד, כך שאינטגרציה המשתרעת על פני מספר ארגוני לקוחות מחזיקה במפתח עבור כל אחד מהם. הרשאות נבדקות גם הן לכל ארגון עבור ישויות משתמש: החזקת sites.create בארגון אחד אינה מעניקה גישה בארגון נפרד שאינו קשור, אם כי היא חלה על הארגונים המקוננים תחתיו. הדבר נעשה בכוונה תחילה — זה מגביל מפתח שנחשף לארגון שלו ולארגוני המשנה שתחתיו בלבד, ולא לפלטפורמה כולה.

מה תפקיד ה-Developer המובנה מאפשר בפועל?

תפקיד dev כולל הרשאות קריאה ברמת הארגון, ניהול מפתחות API, צפייה באתרים ויצירתם, הפעלתם מחדש, ניקוי זיכרון המטמון שלהם, וכן צפייה בקריאות שירות ומענה להן. התפקיד אינו כולל ניהול חיובים באופן מכוון. שימו לב כי הרשאות פריסה ו-push-to-live אינן חלק ממנו — אם חבר צוות זקוק להן, הקצו לו תפקיד הכולל אותן במקום להניח כי Developer הוא התפקיד הטכני הרחב ביותר.

מה קורה לוובהוקים שלי אם נקודת הקצה שלי מושבתת למשך שעה?

המסירות מבוצעות שוב עם השהיה הולכת וגדלה (backoff) וכל ניסיון נרשם כ-WebhookDelivery שבאפשרותכם לבדוק. במעלה הזרם, אירועים נכתבים לתיבת דואר יוצא עסקית (transactional outbox) באותה עסקת מסד נתונים של השינוי עצמו, כך ששום דבר לא הולך לאיבוד בזמן שצרכן אינו זמין — צרכן מושבת רק מפגר בקצב, הוא לעולם אינו משבש את היצרן, ובאפשרותכם להפעיל מחדש מסירות מלוח הבקרה ברגע שתחזרו.

כמה עולה להתחיל לפתח באמצעותו?

התחל תקופת ניסיון בחינם למשך 14 ימים של Footprint-Free Hosting ללא צורך בפרטי תשלום, עבור עד 5 אתרים. מסלולי Footprint-Free בתשלום מתחילים מ-$6 לחודש עבור PBN 5. כל תוכנית כוללת אחריות להחזר כספי תוך 30 יום, העברות חינם וללא נעילה לספק.

קראו את המפרט, ולאחר מכן בנו לפיו

ממשק API מבוסס מפרט, ערכות SDK שנוצרו אוטומטית, ממשק שורת פקודה (CLI), ספק Terraform, התראות וובהוק חתומות ושרת MCP — על גבי האחסון שבנינו עבור יותר מ-700,000 אתרים ברחבי העולם. התחילו בתקופת ניסיון של 14 יום ללא כרטיס אשראי וללא פרטי תשלום.

התחל בחינם

תוספי WordPress שהסוכן המלאכותי שלך יכול לעבוד איתם

כל אחד מהתוספים האלה הופך את אתר ה-WordPress שלך לשרת MCP, כך ש-Claude, קורסור, VS Code ועוזרות בינה מלאכותית אחרות יוכלו לבצע בו עבודה אמיתית, כשהם מחוברים כאתה ומוגבלים למה שמותר לך לעשות.

כל תיעוד ה-MCP וה-API למפתחים →