השעה כמעט חצות, ואתם יושבים מול המסך עם אצבע על כפתור הפריסה ב-GitHub כדי שהבאנר של המבצע יעלה בדיוק בזמן. זה הרגל עבודה ישן ומציק שרוב מפתחי הווב מכירים היטב. עדכון חדש במערכת הדגלים של Vercel מנסה להפוך את המנהג הזה למיותר. לפי הודעת העדכון שפרסמה החברה ב-7 באוקטובר 2026, Vercel Flags תומכת כעת במאפיין מסוג timestamp עבור ישויות.
בלי פריסה ידנית בחצות
עד עכשיו, הצגת תוכן מתוזמן דרך דגלים דרשה שרת נפרד, מודול חיצוני של LaunchDarkly או כתיבת לוגיקה ייעודית בתוך הקוד שלכם. התמיכה החדשה בטיפוס timestamp מחברת את תנאי התאריך ישירות אל מנגנון הישויות בדשבורד. ישויות מייצגות את הגורמים שהדגל בודק, כמו משתמשים, צוותים, מכשירים או בקשות רשת בודדות שמגיעות לאפליקציה. אפשר להגדיר את הישות דרך הממשק או ישירות עם פקודת vercel flags entities create system עם המאפיין time:timestamp.
לפי החברה, הגדרת מאפיין זמן בישות מאפשרת להפעיל מבצעי בלאק פריידיי או לסגור תכונות לפי שעה בלי לגעת בקוד ובלי לבצע פריסה מחדש.
בדשבורד אפשר להגדיר חוקי טרגוט שבודקים אם הזמן הנוכחי תואם לתנאים. המערכת תומכת בארבע פעולות השוואה: is after, is at or after, is before, וכן is at or before. אתר מסחר יכול להכין מראש דף נחיתה או מחירי מבצע, לקבוע את שעת ההתחלה ושעת הסיום בממשק, וללכת לישון. הפיצ'ר יידלק וייכבה מעצמו.
עטיפה חובה ב-dedupe
בצד הקוד, מפתחי Next.js שעובדים עם TypeScript צריכים לספק את הזמן בזמן ריצה כערך מספרי של Unix epoch במילישניות. את הערך הזה מפיקים בעזרת Date.now() ומעבירים בתוך פונקציית identify שמוגדרת מראש. בדוקומנטציה של החברה מדגישים כי שמות הישות והמאפיין בקוד חייבים להתאים במדויק להגדרות שנוצרו בדשבורד או ב-CLI.
שמירה על הערך בתוך dedupe מבטיחה שכל דגל שמוערך באותה בקשה ישתמש באותו זמן בדיוק.דוקומנטציית Flags SDK של Vercel
השימוש במעטפת dedupe מתוך ספריית flags/next קריטי. אם דף בודק מספר דגלים שונים במקומות שונים במהלך רינדור הבקשה, הבדל של מילישנייה בודדת ביניהם עלול להציג למשתמש חצי דף במבצע וחצי דף במחיר רגיל. dedupe מקפיאה את הזמן עבור אותה בקשה ספציפית ומונעת חוסר עקביות.
שעון ירושלים מול ה-CLI
כאן מתחבאת מלכודת שעלולה לעלות ביוקר לצוותים מקומיים. כשאתם מגדירים חוק בורר תאריכים מתוך הדשבורד של Vercel, הממשק משתמש באזור הזמן המקומי של הדפדפן שלכם. לעומת זאת, אם אתם מנהלים את התשתית שלכם דרך שורת הפקודה עם Vercel CLI, החוקים נכתבים עם תנאים מפורשים כמו at-or-after ודורשים מחרוזות זמן מדויקות בתקן ISO 8601.
ההבדל הזה מייצר בלבול בקרב צוותי פיתוח בארץ. פקודת CLI לדוגמה משתמשת בסיומת Z עבור UTC, כמו בערך 2026-09-02T13:00:00Z. אם מפתח בישראל מגדיר שעה כזו מתוך הנחה שמדובר בשעון מקומי, המבצע עלול להתחיל בהפרש של שעתיים או שלוש ביחס למועד המתוכנן. תמיד תוודאו שאתם והקולגות סופרים לפי אותו שעון.
בלי חלוקת אחוזים בזמן
תנאי זמן ב-Vercel Flags מוגבלים לחוקי כן או לא דטרמיניסטיים. המערכת בודקת האם הערך גדול או קטן מהמועד שהוגדר, אך מאפייני timestamp אינם תומכים בחלוקה לפי אחוזים (Splits או bucketing). לא הייתי ממהר לבטל מערכות דגלים מורכבות אם אתם תלויים בזה.
אם תכננתם לפתוח פיצ'ר בהדרגה לחלק מהמשתמשים לפי תאריך, אי אפשר לבצע את החלוקה המדורגת הזו ישירות על בסיס הזמן במערכת הזו. בשביל חלוקת תנועה כזו תצטרכו לחלק לפי מזהי משתמשים כמו user.id או להסתמך על כלים ייעודיים. ישויות מחושבות מחדש בכל בקשה ללא שמירת מצב קודם, כך שאם מאפיין מסוים אינו נמסר בהקשר, חוק הטרגוט המבוסס עליו פשוט יידלג.
| סוג מאפיין | פורמט בזמן ריצה (SDK) | פעולות נתמכות בחוקים | תמיכה בפיצול אחוזים (Splits) |
|---|---|---|---|
| Timestamp | Unix epoch במילישניות (מספר) | is after, is at or after, is before, is at or before | לא נתמך |
| String | מחרוזת טקסט | השוואת ערכים וטקסט | נתמך (מבוסס מזהה) |
| Number | מספר שלם או עשרוני | השוואות מספריות | לא נתמך |
| Boolean | true או false | בדיקת אמת/שקר | לא נתמך |
| String Array | מערך מחרוזות | בדיקת הכלה ברשימה | לא נתמך |
הפיצ'ר החדש זמין מיידית לכל הפרויקטים הפעילים. אפשר לעדכן את הישויות כבר עכשיו, להגדיר את החוקים לקמפיין הבא, ולסגור את המחשב בשקט לפני חצות.
מקורות
- Timestamp attributes are now supported in Vercel Flagshttps://vercel.com/changelog/timestamp-attributes-are-now-supported-in-vercel-flags
- Flagshttps://vercel.com/docs/feature-flags
- Entitieshttps://vercel.com/docs/flags/vercel-flags/dashboard/entities
- Timestamp attributes are now supported in Vercel Flags - Vercelhttps://vercel.com/changelog/timestamp-attributes-are-now-supported-in-vercel-flags\
- Flagshttps://vercel.com/docs/flags
- Vercel CLI Flags Command Referencehttps://vercel.com/docs/cli/flags
- Vercelhttps://weba.co.il/tools/vercel/
- TypeScripthttps://weba.co.il/glossary/typescript/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.