🚀 פיצ'ר: מימוש הרצת קוד (Code Execution) בווב-אפ
תיאור
הוספת יכולת להריץ קוד Python ("סביבת Playground") בצורה מאובטחת ישירות מתוך ממשק ה-Code Tools בווב-אפ.
המימוש יתבסס על ארכיטקטורת Docker Sandbox כדי להבטיח בידוד מוחלט מהשרת.
שינוי מהמדריך המקורי: הפיצ'ר יהיה זמין למשתמשי Premium בנוסף לאדמינים.
📋 דרישות ותכולה (Scope)
1. Backend Service (services/code_execution_service.py)
2. API & Permissions (webapp/code_tools_api.py)
3. Frontend (code_tools.html, code-tools-page.js)
4. Infrastructure & Config
🔒 דגשי אבטחה קריטיים
- בידוד: אסור לאפשר לקוד המורץ גישה לקבצי השרת, למסד הנתונים או לרשת החיצונית.
- Logging: אין לכתוב ללוגים את הקוד שהמשתמש הריץ או את הפלט שלו (מחשש למידע רגיש).
- Privileges: הקונטיינר ירוץ ללא הרשאות (
--user=nobody, --cap-drop=ALL).
✅ קריטריונים לקבלה (DoD)
- משתמש אדמין ומשתמש פרימיום יכולים להריץ קוד ולקבל פלט.
- משתמש רגיל (Free) מקבל שגיאת הרשאה (403).
- קוד עם לולאה אינסופית נעצר אוטומטית (Timeout).
- קוד שמנסה לגשת לרשת או לקבצים נחסם/נכשל.
- בדיקות (Unit & Integration) עוברות בהצלחה.
אם נוספו/שונו משתני סביבה – עדכן docs/environment-variables.rst וגם services/config_inspector_service.py
🔒 דרישת מימוש 1:1
חובה להצמד במדויק למדריך המצורף
כללים:
- מימוש מלא: אל תקצר חלקים שמוצעים במדריך
- אם חייב לסטות: תעצור ותתעד ב-"Delta מהמדריך" (מקסימום 5 דלתאות)
המדריך
🚀 פיצ'ר: מימוש הרצת קוד (Code Execution) בווב-אפ
תיאור
הוספת יכולת להריץ קוד Python ("סביבת Playground") בצורה מאובטחת ישירות מתוך ממשק ה-Code Tools בווב-אפ.
המימוש יתבסס על ארכיטקטורת Docker Sandbox כדי להבטיח בידוד מוחלט מהשרת.
📋 דרישות ותכולה (Scope)
1. Backend Service (
services/code_execution_service.py)CodeExecutionServiceהמנהל הרצת קוד.python:3.11-slim).fail-closed: אם אין Docker בפרודקשן - אין הרצה.--network none)./tmpמוגבל.2. API & Permissions (
webapp/code_tools_api.py)POST /api/code/run.is_premiumבנוסף ל-is_admin.before_requestהקיים ב-Blueprint לא חוסם משתמשי פרימיום, או להחריג את ה-Endpoint הספציפי הזה.GET /api/code/run/limits.FEATURE_CODE_EXECUTION).3. Frontend (
code_tools.html,code-tools-page.js)Ctrl+Enter).4. Infrastructure & Config
.env):FEATURE_CODE_EXECUTION=trueCODE_EXEC_USE_DOCKER=truepython:3.11-slim).🔒 דגשי אבטחה קריטיים
--user=nobody,--cap-drop=ALL).✅ קריטריונים לקבלה (DoD)
אם נוספו/שונו משתני סביבה – עדכן docs/environment-variables.rst וגם services/config_inspector_service.py
🔒 דרישת מימוש 1:1
חובה להצמד במדויק למדריך המצורף
כללים:
המדריך