בעת בניית כלי פנימי על Tooljet, תמונה טיפוסית: מסד הנתונים אינו מגיב עקב חומת אש, ה-REST API מחזיר נתונים גולמיים עם אובייקטים מקוננים, ואסימוני אבטחה מונחים בגלוי בקובצי התצורה. כל אחת מהבעיות הללו יכולה לעכב את הפיתוח במשך ימים. עברנו על עשרות פרויקטים כאלה ופיתחנו גישה שמבטיחה קישוריות יציבה ואבטחה.
במדריך זה, נעבור על כיצד להגדיר את Tooljet לעבודה עם מסדי נתונים (PostgreSQL, MySQL, MongoDB), REST APIs, ושירותי SaaS תוך הימנעות מטעויות נפוצות. Tooljet מקצר את זמן הפיתוח של כלים פנימיים פי 5 בהשוואה לממשק React מותאם אישית, אך רק אם מקורות הנתונים מוגדרים כראוי. חיבורים שגויים מובילים לשאילתות כפולות, דליפות נתונים, ובזבוז זמן.
אילו בעיות אנו פותרים?
- שאילתות N+1 — כאשר כל וידג'ט מבצע שאילתת מסד נתונים נפרדת. אנו מייעלים על ידי שילוב שאילתות וקאשינג.
- אבטחת אסימונים — נתונים רגישים (מפתחות API, סיסמאות) מגיעים לעיתים קרובות לתצורת השאילתה. אנו מאמצים Constants ומשתני סביבה.
- טרנספורמציות מורכבות — תגובות API מכילות שדות נוספים, סכומים בסנטים, תאריכים בפורמטים שגויים. אנו משתמשים ב-JavaScript Transformations.
- שגיאות חיבור — host, port, או תעודות SSL שגויים. אנו בודקים כל חיבור באמצעות כפתור Test Connection ומתקנים בעיות.
כיצד אנו עושים זאת
אנו מתחילים בסקירת מקורות: אנו מרכיבים רשימה של כל מסדי הנתונים, ה-APIs, ושירותי ה-SaaS שצריך לשלב. לאחר מכן אנו מגדירים חיבורים, יוצרים את השאילתות והטרנספורמציות הראשונות. פרויקט עדכני — חיבור PostgreSQL עם 15 טבלאות ו-REST API של מערכת חיוב. להלן דוגמאות תצורה.
דוגמה להגדרת PostgreSQL
Name: Production DB Host: db.example.com Port: 5432 Database: app_db Username: tooljet_ro Password: **** כפתור Test Connection עוזר לתפוס שגיאות לפני השמירה. לאחר בדיקה מוצלחת, אנו מוסיפים שאילתות כמו Test Connection ומעבירים פרמטרים מרכיבי ממשק המשתמש.
דוגמה ל-REST API (בקשות GET ו-POST)
{ "path": "/users/{{components.userIdInput.value}}", "method": "GET", "headers": { "X-Trace-Id": "{{utils.uuid()}}" } }
{ "path": "/orders/{{components.ordersTable.selectedRow.id}}/refund", "method": "POST", "body": { "amount": "{{components.refundInput.value}}", "reason": "{{components.refundReason.value}}", "operator": "{{currentUser.email}}" } }Constants — ערכים רגישים (אסימונים, מפתחות) מאוחסנים ב-Tooljet Constants, לא בתצורת השאילתה.
טרנספורמציות
const raw = data.orders;
return {
items: raw.map(o => ({
id: o.id,
date: new Date(o.created_at).toLocaleDateString('ru-RU'),
amount: `${(o.total / 100).toFixed(2)} $`,
status: o.status
})),
total: raw.length,
sum: raw.reduce((s, o) => s + o.total, 0) / 100
}; טיפול באירועים
// Run on query success
await queries.getUsersList.run();
components.statusMessage.setText('Успешно обновлено');
setTimeout(() => components.statusMessage.setText(''), 3000); למה להפקיד את ההגדרה בידי אנשי מקצוע?
אנו מבטיחים יציבות חיבור, אבטחת נתונים, ותמיכה לאחר הפריסה. המהנדסים שלנו מחזיקים בהסמכות Tooljet ויש להם ניסיון עם תשתיות ענן (AWS, Vercel, Docker). אתה מקבל:
- תיעוד לכל מקור.
- הדרכה לצוות שלך על Tooljet.
- תמיכה טכנית למשך שבועיים לאחר ההשקה.
תהליך
- ניתוח — אנו לומדים את מקורות הנתונים שלך, אילוצי הרשת, ודרישות האבטחה.
- עיצוב — מגדירים מבנה שאילתות, טרנספורמציות, ותצורת Constants.
- יישום — מגדירים חיבורים, כותבים שאילתות וטרנספורמציות, בודקים כל חיבור.
- בדיקות — מוודאים את כל התרחישים: תגובות ריקות, שגיאות, עומסים גבוהים.
- פריסה — פורסים את הפתרון בסביבה שלך, מספקים תיעוד, ומבצעים הדרכה.
מה כלול
| רכיב | תיאור |
|---|---|
| תצורת מקורות | חיבור עד 5 מסדי נתונים ו-3 APIs |
| יצירת שאילתות | 10–15 שאילתות עם פרמטרים וטרנספורמציות |
| הגדרת Constants | אחסון אסימונים, מפתחות, משתני סביבה |
| תיעוד | סכימת חיבור, דוגמאות שאילתות, הוראות להוספת מקורות חדשים |
| הדרכה | מפגש של שעתיים למפתחים |
| תמיכה | 14 ימים לאחר המסירה — ייעוץ ותיקוני באגים |
לוח זמנים ועלות
- הגדרה בסיסית (3–5 מקורות) — 1–2 ימים.
- אינטגרציה מורחבת (עד 10 מקורות + טרנספורמציות מותאמות אישית) — 3–5 ימים.
- פתרון מקיף (עם הדרכה ותמיכה) — עד 7 ימים.
חסוך עד 40% מזמן המפתחים שלך — Tooljet משתלט על השגרה.
שגיאות חיבור טיפוסיות
בעיות חיבור נובעות לעיתים קרובות מטעויות נפוצות. Connection refused נגרם בדרך כלל מ-host או port שגויים, או חסימת חומת אש. SSL handshake failed מופיע עם בעיות תעודה — זמנית ניתן לבטל SSL, אך לייצור עדיף להוסיף את התעודה הנכונה. Timeout מתרחש בשאילתות ארוכות מדי או במסד נתונים איטי; הפתרון הוא הגדלת ה-timeout או אופטימיזציה של אינדקסים. 401 Unauthorized — האסימון פג או לא חוקי; עדכן אותו ב-Constants. נתונים שגויים בתגובה — שגיאה בטרנספורמציה; נפה באגים ב-JavaScript בקונסולת Tooljet.
הגדרה מתקדמת: Tooljet ב-Docker עם SSL
אם Tooljet שלך פועל בקונטיינר, הוסף משתני סביבה עבור תעודות SSL והגדר גשרי רשת לגישה למסדי נתונים פנימיים. דוגמת docker-compose ניתן למצוא בתיעוד הרשמי של Tooljet (GitHub).
השוואה לפתרונות מותאמים אישית
| קריטריון | Tooljet (ההגדרה שלנו) | ממשק React/Node.js מותאם אישית |
|---|---|---|
| זמן פיתוח | 1–2 ימים | 2–4 שבועות |
| תמיכה במקורות | 50+ מובנים | אינטגרציה ידנית לכל אחד |
| אבטחה | Constants מובנים | דורש יישום עצמי |
| עדכונים | אוטומטיים | תיקונים ידניים |
הזמן את הגדרת Tooljet שלך היום וחסוך עד 40% מזמן הצוות שלך. השאר בקשה לייעוץ — ניצור איתך קשר תוך שעה.







