Skip to main content
לכל אפליקציית Base44 יש sandbox: סביבת ענן פרטית שמחזיקה את הקוד של האפליקציה ומריצה את שרת הפיתוח שלה. זו אותה סביבה, ואותו קוד, שעורך האפליקציה משתמש בו, ללא fork או עותק שצריך לסנכרן. התחבר אליו דרך ה-CLI, לקוח MCP, או ה-API כדי לקרוא, לחפש, לערוך ולהריץ פקודות מול האפליקציה שלך מכל מכונה, ללא checkout מקומי ובלי דבר להתקין. כשאתה כותב קובץ דרך ה-sandbox, אתה משנה את האפליקציה האמיתית שלך ישירות, באותה דרך שעורך האפליקציה היה עושה. הסיבה הנפוצה ביותר לעשות זאת היא להביא את סוכן הקוד שלך לאפליקציה שבנית בעורך האפליקציה.
אתה צריך מסלול Builder או גבוה יותר כדי להגיע ל-sandbox של אפליקציה מחוץ לעורך האפליקציה. בלעדיו, פקודות נכשלות עם PREMIUM_REQUIRED.

מתי להשתמש ב-sandbox

ניתן לעבוד על הקוד של אפליקציה שבנית בעורך האפליקציה בדרכים הבאות: ה-sandbox ואינטגרציית GitHub חופפים הכי הרבה, מכיוון ששניהם מאפשרים לך לעבוד עם הכלים שלך. ההבדל הוא איפה הקוד נמצא בזמן שאתה עובד. עם אינטגרציית GitHub, אתה מפתח ב-clone מקומי, והשינויים שלך מגיעים ל-Base44 כשהם ממוזגים ל-main. עם ה-sandbox, אתה עובד על הקוד של האפליקציה במקום. אין מה להוריד, עוזר מבוסס-web יכול להשתמש בו, וכל שינוי מופיע בתצוגה המקדימה החיה של עורך האפליקציה ברגע שנעשה.

דרכים להתחבר

ניתן להגיע ל-sandbox בדרכים הבאות:
  • CLI: לסוכן קוד או סקריפטים שרצים במכונה שלך. לא נדרש פרויקט מקומי. להגדרה, ראה Connect a local agent with the CLI.
  • MCP server: לעוזר AI שמתחבר דרך MCP, כולל עוזרים מבוססי-web שלא יכולים להריץ CLI. להגדרה, ראה Connect an agent over MCP.
  • App Management API: לאינטגרציות שלך, באמצעות הנקודות הרשומות למטה.
Connectors לא עוברים דרך מערכת הקבצים של ה-sandbox, אז הם לא בטבלה למעלה. כדי להגדיר connector על אפליקציה שאתה עובד איתה בדרך זו, השתמש ב-connectors initiate במקום. זה מכוון לאותו app id ישירות, ללא sandbox או פרויקט מקומי.

Branches

פקודות sandbox מכוונות ל-branch main של האפליקציה אלא אם תגיד אחרת. כדי לעבוד על branch אחר, הרץ branches list כדי למצוא את השם המדויק שלו, ואז העבר --branch <name> על כל פקודת sandbox. קריאות ועריכות אז חלות רק על אותו branch.

שינויים נשמרים אוטומטית

קריאה ל-sandbox write או sandbox edit מבצעת commit של השינוי בשבילך כחלק מאותה בקשה, לפני שהפקודה חוזרת, כך שאין שלב נפרד של שמירה, deploy או push. שינוי קובץ שנעשה דרך sandbox run, כמו rm או mv, מבצע commit כמה שניות מאוחר יותר במקום, ברגע שחלון debounce קצר נסגר. אם אתה כותב או עורך שוב לפני ש-commit debounced קודם נחת, הקריאה החדשה מחכה לו ונכשלת עם COMMIT_FLUSH_PENDING אם היא לא יכולה לאשר שאותו commit הסתיים בזמן. משאבים מובנים מסנכרנים באותה דרך. בפרויקט מקומי, היית מריץ entities push או functions deploy לאחר הוספת קובץ. ב-sandbox, יצירת base44/functions/send-email/entry.ts היא כל מה שנדרש כדי להוסיף את הפונקציה הזו.
שני כללים בעריכה ב-sandbox:
  • אל תריץ deploy, functions deploy, entities push, או פקודות push האחרות מול אפליקציה שאתה עורך ב-sandbox שלה. פקודות אלו מסנכרנות פרויקט מקומי ל-Base44, ואין פרויקט מקומי כשאתה עובד עם sandbox.
  • אם הפעולה האחרונה שלך הייתה פקודת shell שהורצה דרך sandbox run ולא קריאה ל-write או edit, ה-commit שלה עדיין רגע מאחור. תן לו כמה שניות לפני שאתה מתנתק.

עריכה ופרסום

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

Checkpoints

Checkpoint הוא נקודת שחזור בהיסטוריית הגרסאות של האפליקציה, מעוגן ל-commit ספציפי. צור אחד עם sandbox checkpoint כדי לסמן מצב טוב ידוע, ואז שחזר אותו מעורך האפליקציה אם שינוי מאוחר יותר משתבש. שינויים ממתינים מבוצעים ב-commit לפני שה-checkpoint נלקח, כך שהוא תמיד תופס את הקוד האחרון שלך.

עבודה לצד עורך האפליקציה

סוכן הקוד שלך ועורך האפליקציה של Base44 יכולים לעבוד על אותה אפליקציה באותו זמן. אין lock להשיג ואין session לשחרר. שינויים משני הצדדים נוחתים באותו מקום, אז התייחס לזה בדרך שהיית מתייחס לעמית שעורך את אותו פרויקט.
אין שלב merge. אם סוכן הקוד שלך ועורך האפליקציה משנים את אותו קובץ באותו זמן, מי שהכתיבה שלו נוחתת אחרון מנצח, והשינוי הקודם נעלם. הימנע ששני הצדדים יגעו באותו קובץ באותה תקופה של עבודה.

הפעלה ועצירה

ה-sandbox הוא תהליך שרץ, לא רק אחסון. הוא נסגר כשהוא יושב בהמתנה זמן מה ונדלק שוב על הפקודה הבאה. הקוד שלך לא מושפע בכל מקרה. שינויים ש-committed חיים ב-git, ו-sandbox שאותחל מחדש תמיד מתחיל מה-commit האחרון שלך. אם ה-sandbox לא רץ, הפקודה הראשונה מפעילה אותו, מה שאומר שהקריאה הזו סביר שתיקח יותר זמן מאלה שאחריה.

הרשאות

שתי בדיקות נפרדות שומרות על גישה ל-sandbox. אחת היא האם אתה יכול לגשת לאפליקציה בכלל, והשנייה היא האם ה-session הנוכחי שלך קיבל גישת כתיבה אליה.

גישה לאפליקציה

אתה צריך גישת admin לאפליקציה עצמה, בין אם כמנהל סביבת עבודה או כמשתף פעולה על האפליקציה הספציפית הזו. גישה נבדקת על כל קריאה, כך ששינוי בתפקיד סביבת העבודה שלך נכנס לתוקף מיד. צופה סביבת עבודה רגיל לא יכול להגיע ל-sandbox כלל. היוצא מן הכלל היחיד הוא צופה שגם מחזיק בתפקיד עורך legacy לכל אפליקציה מלפני שסביבת העבודה שלך עברה לגישה מבוססת-תפקיד. השילוב הזה עדיין יכול לקרוא מה-sandbox, אבל לא לשנות שום דבר. Superagents אינם תומכים בפקודות sandbox.

היקף Session

מעבר לגישה לאפליקציה, קריאה ושינוי ה-sandbox דורשים הרשאות שונות ב-session שלך: הרשאות ה-session שלך קבועות ברגע היווצרותו ולא ניתן להרחיב אותן מאוחר יותר. ה-CLI מבקש sandbox:write במהלך base44 login, ומעל MCP אתה מעניק אותה בשלב הסכמת ה-OAuth. חידוש session קיים לא מוסיף אותה. אז אם פקודות הקריאה עובדות אבל פקודות השינוי נכשלות עם NOT_AUTHORIZED, אתה על session שמעולם לא היה לו sandbox:write. הרץ base44 login שוב, או התחבר מחדש לשרת MCP ואשר גישת sandbox, כדי להתחיל session שיש לו אותה.

מגבלות ומעקות בטיחות

פקודות קבצים מוגבלות ל-root של האפליקציה. נתיבים מוחלטים ונתיבים שעולים מעל ה-root נדחים עם PATH_OUTSIDE_SANDBOX. ספריות .agents ו-.git לא ניתנות להגעה מפקודות הקבצים, ונכשלות עם PROTECTED_PATH, כי הן מחזיקות את הסודות של האפליקציה ואת אישורי ה-repository. היוצא מן הכלל היחיד הוא .agents/skills, שאתה יכול לקרוא ולכתוב. בכל התכונה, אתה מוגבל ל-120 בקשות קריאה, 60 בקשות שינוי, ו-30 פקודות הרצה לדקה, לאפליקציה. חריגה על כל אחת מהן נכשלת עם RATE_LIMITED. עמוד הסימוכין של כל פקודה מכסה את גבולות הגודל והמספר שלה, כמו כמה נתיבים sandbox read מקבל או איזה גודל קובץ sandbox write מאפשר.

ראה גם

דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.