למפתחים

אחסון שאפשר לנהל דרך קוד

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

  • 650,000+אתרים המאוחסנים ברחבי העולם
  • 1מפרט OpenAPI שממנו נוצר כל כלי
  • 4ערכות פיתוח ללקוח (SDKs) — TypeScript, Python, PHP, Go
  • OAuth 2.1גישה מוגבלת וניתנת לביטול לסוכן AI

ממשק API אחד. כל משטח פועל עליו.

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

מפרט קודם, לא מתועד בהמשך

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

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

מסמכי הפניה אינטראקטיביים, ארבע ערכות ה-SDK של הלקוח, חלק ניכר מממשק שורת הפקודה (CLI) ותשתית ספק ה-Terraform – כולם מנוצרים מאותו מפרט יחיד. מקור אחד, תוצרים רבים, תמיד מסונכרנים – לעולם לא תצטרכו לרדוף אחרי תיעוד שסטה מהמימוש.

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

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

נבדק חוזה ב-CI

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

הרשאות, הקצאות והדברים שמכאיבים בסקייל

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

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

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

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

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

OIDC לבני אדם

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

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

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

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

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

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

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

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

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

ערכות פיתוח תוכנה ללקוח

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

Zinnector®, ממשק שורת הפקודה

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

ספקי ה-Terraform

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

הפreference אינטראקטיבי

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

וובהוקס שממשיכים לעבוד גם כשהקצה שלך מושבת

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

הירשם למה שאכפת לך ממנו

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

חתום ב-HMAC

כל משלוח חתום ב-HMAC כך שתוכלו לוודא שהוא אכן הגיע מאיתנו לפני שתפעלו לפיו.

נוסה שוב עם השהיה אקספוננציאלית, ותועד בלוג

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

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

הצינור מתוכנן בכוונה תחילה לפעול במתכונת של לפחות פעם אחת (at-least-once) במקום להעמיד פנים שהוא פועל בדיוק פעם אחת. ממסר שקורס באמצע הפרסום גורם לפקיעת תוקף חכירת התביעה שלו ולפרסום מחדש של האירועים שלו. בצעו מניעת כפילויות לפי מזהע המעטפה והצרכן שלכם יהיה תקין מעצם מבנהו.

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

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

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

וגם אותו API שסוכן הבינה המלאכותית שלך יכול להשתמש בו

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

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

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

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

שאלות נפוצות

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

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

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

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

איך אני מונע מניסיון חוזר ליצור שני פריטים מאותו סוג?

שלחו Idempotency-Key בבקשה ה-POST שלכם. רשומות ההחזרה נכתבות בעת ביצוע (commit) ולא בתוך השורה (inline), כך שניסיון חוזר לעולם אינו יכול להחזיר הצלחה מטומטמת עבור שורה שבפועל לא בוצע לה commit, ובקשה שנכשלת משחררת את הנעילה שלה מיידית כדי שהניסיון החוזר המתוקן שלכם לא יעוכב. משלוח Webhooks מתוכנן לפחות-פעם-אחת כברירת מחדל – בצעו סינון כפילויות (dedupe) בצד שלכם לפי מזהה המעטפה (envelope id).

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

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

מה בדיוק מאפשר תפקיד המפתח המובנה?

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

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

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

כמה עולה להתחיל לבנות מולו?

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

קרא את המפרץ, ואז בנה לפיו

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

התחל בחינם