דלג לתוכן הראשי
עיון בתיעוד

שמרו על קטלוג עדכני

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

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

הריצו מחדש את הגילוי בכל שינוי ב-API

הרצה חוזרת של init בטוחה מתוכנן: החילוץ דטרמיניסטי, קובץ הקטלוג (‎.syncanix/catalog.json) נכתב מחדש מהקוד הנוכחי שלכם, והקטלוג המרוענן עולה לאותו מרחב עבודה. אין שלב הגירה — ההרצה החוזרת היא-היא העדכון.

npx syncanix init

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

אוטומציה: גילוי ב-CI

ב-CI הריצו את init ללא אינטראקציה עם ‎--yes והזדהו עם משתנה הסביבה SYNCANIX_API_KEY (הנפיקו מפתח בלוח הבקרה ושמרו אותו כסוד CI — אותו מפתח ש-syncanix login היה כותב מקומית). תהליך GitHub Actions מינימלי:

# .github/workflows/syncanix-catalog.yml
name: Refresh Syncanix catalog
on:
  push:
    branches: [main]
jobs:
  refresh:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npx syncanix init --yes
        env:
          SYNCANIX_API_KEY: ${{ secrets.SYNCANIX_API_KEY }}

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

זיהוי סחיפה בזמן ריצה (Node SDK)

גם עם CI, נקודת קצה יכולה לצאת לאוויר בלי שהגילוי ראה אותה. ה-SDK של Node צופה בתעבורה אמיתית בדיוק בשביל זה: הוא נרשם לערוץ האבחון של HTTP המובנה ב-Node — בלי monkey-patching ובעלות אפסית במנוחה — ומשווה כל בקשה נכנסת למול סט היכולות המוכר.

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

מונורפו וקודבייס רב-לשוני

הריצו את init פעם אחת משורש המאגר. הגילוי מזהה כל מחסנית framework שהוא מוצא — בין workspaces ובין שפות — מחלץ כל אחת וממזג את התוצאות לקטלוג אחד; מונורפו עם, למשל, API של NestJS ושירות FastAPI מפיק סט יכולות משולב. אם מחסנית מזוהה לא נכון, נעלו אותה עם ‎--framework.

השלבים הבאים