Frames & upgradesמסגרות ושדרוגים

A frame is a versioned promise about how the platform treats your application. You pin one line in shipyard.yaml, and from that moment the platform can change underneath you but the contract cannot change under that line.

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

The problem this solvesהבעיה שזה פותר

Every managed platform eventually changes something: a Node version, a default header, the way a build cache is keyed. Usually you find out because something broke on a Tuesday. The honest fix is not “we will never change anything”, because that is a promise nobody keeps. It is to say exactly what is guaranteed and version that statement.

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

shipyard.yaml
contract: 1

What frame 1 guaranteesמה מסגרת 1 מבטיחה

RuntimeA Linux container with your declared port bound and $PORT set. Node 20 LTS or newer within the same major unless you pin one.קונטיינר לינוקס עם הפורט שהצהרתם עליו ו-$PORT מוגדר. Node 20 LTS ומעלה באותה גרסה ראשית, אלא אם קיבעתם אחרת.
Config keysEvery field documented on the shipyard.yaml page keeps its name and meaning. New fields may appear; existing ones do not change.כל שדה שמתועד בעמוד shipyard.yaml שומר על שמו ומשמעותו. שדות חדשים עשויים להופיע; קיימים לא משתנים.
Env injectionValues arrive as process environment variables at start, never at build.ערכים מגיעים כמשתני סביבה של התהליך בעלייה, לעולם לא בבנייה.
Health gateNo release serves traffic before its healthcheck returns 2xx.שום שחרור לא משרת תעבורה לפני שבדיקת הבריאות שלו מחזירה 2xx.
RollbackThe previous release stays restorable without a rebuild for at least 30 days.השחרור הקודם נשאר ניתן לשחזור ללא בנייה מחדש למשך 30 יום לפחות.
Exit codesThe CLI exit codes on the reference page keep their meaning.קודי היציאה של ה-CLI בעמוד הייחוס שומרים על משמעותם.
API shapeEverything in /openapi.json is a promise. Fields are added, never removed or retyped.כל מה שב-/openapi.json הוא הבטחה. שדות מתווספים, לעולם לא מוסרים ולא משנים טיפוס.

How a new frame arrivesאיך מסגרת חדשה מגיעה

Security is not a frame changeאבטחה אינה שינוי מסגרת

Base image patches, kernel updates and TLS configuration are applied to every frame, immediately, without asking. A frame pins the contract, not the CVE surface. If a patch would break a documented guarantee we will tell you before it lands, and the only case where we would ship it anyway is one where not shipping it is worse.

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

What we will not doמה לא נעשה