ייבוא מ-Hasura¶
Provisa יכולה להמיר מטא-דאטה קיים של Hasura לתוך config.yaml של Provisa, תוך שימור טבלאות מעוקבות (tracked), קשרים, הרשאות, וסכמות מרוחקות.
Hasura v2¶
ייצוא מטא-דאטה¶
מקונסולת Hasura שלכם או ה-CLI:
או השתמשו ב-API של Hasura:
curl -X POST http://localhost:8080/v1/metadata \
-H "X-Hasura-Admin-Secret: <secret>" \
-d '{"type":"export_metadata","args":{}}' \
> metadata.json
המרה¶
הממיר של v2 קורא תיקיית מטא-דאטה של Hasura (הפריסה המופקת על ידי hasura metadata export, או הפריסה השטוחה tables.yaml / actions.yaml) וכותב תצורת Provisa:
השמיטו את -o כדי לכתוב את התצורה ל-stdout.
דגלים:
| דגל | מטרה |
|---|---|
-o, --output |
נתיב YAML פלט (ברירת מחדל: stdout) |
--source-overrides |
קובץ YAML עם דריסות חיבור לכל מקור (host, port, אישורים) |
--domain-map |
מיפויי סכמה-לדומיין כזוגות SCHEMA=DOMAIN |
--auth-env-file |
קובץ .env עם תצורת אימות; ממיר JWT/JWK, סוד admin, ו-claims map |
--dry-run |
פענוח ואימות ללא כתיבת פלט |
מה מומר¶
| מושג Hasura | שקילות Provisa |
|---|---|
| טבלה מעוקבת | tables[] עם publish: true |
| קשר object | relationships[] עם cardinality: many-to-one |
| קשר array | relationships[] עם cardinality: one-to-many |
| הרשאת select | נראות תפקיד + פילטר RLS |
| הרשאת עמודה | visible_to / writable_by |
| הרשאת insert/update/delete | מוטציית writable_by + RLS |
| סכמה מרוחקת | רישום מקור graphql_remote |
| שדה מחושב (computed field) | רשומת functions[] עם kind: query |
מגבלות¶
- Actions מומרות אוטומטית: actions עם handler HTTP הופכות למוטציות
webhooks[]; actions עם handler שאינו-HTTP (מסד נתונים) הופכות ל-placeholder שלfunctions[]ומנפיקות אזהרה לסקירת ה-handler - Event triggers מומרים לתצורת
event_triggersלכל-טבלה (פעולות, URL של webhook, מדיניות ניסיון-חוזר) ומנפיקים אזהרה המציינת נאמנות מוגבלת - סכמות מרוחקות מומרות לרשומות מקור
graphql_remote - פונקציות SQL מותאמות אישית דורשות סקירה — מקרים פשוטים מומרים לרשומות
functions[], מורכבים דורשים עבודה ידנית - Cron triggers מומרים לרשומות תצורת
scheduler, תוך שימור ביטוי ה-cron ודגל ההפעלה
Hasura DDN (v3)¶
איתור פרויקט ה-HML¶
הממיר של DDN קורא ישירות את תיקיית פרויקט ה-DDN של קבצי .hml — אין צורך בשלב build supergraph. רכיב התיקייה הראשון תחת שורש הפרויקט נלקח כשם ה-subgraph; קבצים תחת globals/ מוקצים ל-subgraph globals.
המרה¶
השמיטו את -o כדי לכתוב את התצורה ל-stdout.
דגלים:
| דגל | מטרה |
|---|---|
-o, --output |
נתיב YAML פלט (ברירת מחדל: stdout) |
--source-overrides |
קובץ YAML עם דריסות חיבור לכל מקור |
--domain-map |
מיפויי subgraph-לדומיין כזוגות SUBGRAPH=DOMAIN |
--aggregates-output |
נתיב פלט עבור קובץ ה-sidecar של ביטויי-אגרגציה (ברירת מחדל: <output>-aggregates.yaml) |
--dry-run |
פענוח ואימות ללא כתיבת פלט |
מטא-דאטה מסוג AggregateExpression נשמרת בקובץ *-aggregates.yaml נפרד (sidecar).
מה מומר¶
| מושג DDN | שקילות Provisa |
|---|---|
| מודל subgraph | tables[] תחת מקור |
| קשר | relationships[] |
| כלל הרשאה | פילטר RLS |
| Command | מוטציית webhook או תצוגה |
| Connector | רשומת מקור עם פרטי חיבור |
מגבלות¶
- מחברי Lambda (פונקציות TypeScript/Python) דורשים הגדרת webhook ידנית
- ל-plugins lifecycle אין שקילות ישירה
- מצבי אימות של DDN ממופים לספקי אימות של Provisa אך נתיבי claim של JWT עשויים לדרוש התאמה
לאחר הייבוא¶
- סקרו את
config.yamlשנוצר — שימו לב ל-warningsמהממיר - אמתו אישורי חיבור (הממיר משתמש בערכי placeholder)
- הפעילו את Provisa ואשרו שטבלאות מופיעות ב-Explorer
- הריצו את שאילתות ה-GraphQL הקיימות שלכם — הסכמה תואמת עבור דפוסים נפוצים
- הגישו שאילתות לאישור דרך ה-Admin API או ה-UI לפני הפעלת ממשל ייצור