משתני סביבה - רפרנס ===================== .. note:: בכל פעם שמוסיפים או משנים משתני סביבה בקוד/Infra **חייבים** לעדכן עמוד זה (רפרנס משתני הסביבה) וכן לציין זאת ב-PR. בכך אנו מבטיחים שהמידע הופך ל-Single Source of Truth גם למפתחים וגם לאנשי DevOps. טבלה מרכזית ------------ .. list-table:: Environment Variables :header-rows: 1 * - משתנה - תיאור - חובה - ברירת מחדל - דוגמה - רכיב * - ``BOT_TOKEN`` - טוקן הבוט מ-BotFather - כן - - - ``123456:ABC-DEF...`` - Bot * - ``MONGODB_URL`` - חיבור ל-MongoDB - כן - - - ``mongodb://localhost:27017`` - Bot/WebApp * - ``MONGODB_MAX_POOL_SIZE`` - גודל בריכת חיבורים מקסימלי ל‑MongoDB (maxPoolSize) - לא - ``50`` - ``100`` - Bot/WebApp * - ``MONGODB_MIN_POOL_SIZE`` - גודל בריכת חיבורים מינימלי ל‑MongoDB (minPoolSize) - לא - ``5`` - ``5`` - Bot/WebApp * - ``MONGODB_MAX_IDLE_TIME_MS`` - זמן השהייה מקסימלי בחוסר שימוש (maxIdleTimeMS) - לא - ``30000`` - ``30000`` - Bot/WebApp * - ``MONGODB_WAIT_QUEUE_TIMEOUT_MS`` - זמן המתנה בתור ה‑Pool לפני כישלון (waitQueueTimeoutMS) - לא - ``8000`` - ``10000`` - Bot/WebApp * - ``MONGODB_SERVER_SELECTION_TIMEOUT_MS`` - זמן בחירת שרת (serverSelectionTimeoutMS) - לא - ``5000`` - ``5000`` - Bot/WebApp * - ``MONGODB_SOCKET_TIMEOUT_MS`` - זמן קצוב לקריאת/כתיבת שקע (socketTimeoutMS) - לא - ``45000`` - ``45000`` - Bot/WebApp * - ``MONGODB_CONNECT_TIMEOUT_MS`` - זמן קצוב להתחברות (connectTimeoutMS) - לא - ``5000`` - ``10000`` - Bot/WebApp * - ``MONGODB_RETRY_WRITES`` - הפעלת Retry לכתיבות (retryWrites) - לא - ``true`` - ``true`` - Bot/WebApp * - ``MONGODB_RETRY_READS`` - הפעלת Retry לקריאות (retryReads) - לא - ``true`` - ``true`` - Bot/WebApp * - ``MONGODB_APPNAME`` - שם אפליקציה לצורך Telemetry/Metadata ב‑MongoDB - לא - "" (ריק) - ``CodeBot`` - Bot/WebApp * - ``DATABASE_NAME`` - שם בסיס נתונים - לא - ``code_keeper_bot`` - ``my_db`` - Bot/WebApp * - ``SECRET_KEY`` - מפתח הצפנה ל-Flask/WebApp - כן (WebApp) - - - ``supersecretkey123`` - WebApp * - ``BOT_USERNAME`` - שם משתמש הבוט - לא - ``my_code_keeper_bot`` - ``@MyBot`` - Bot/WebApp * - ``TELEGRAM_CONNECT_TIMEOUT_SECS`` - טיימאאוט התחברות ל‑Telegram Bot API (שניות). מעלה סבילות לבעיות רשת קצרות. - לא - ``10.0`` - ``10.0`` - Bot * - ``TELEGRAM_POOL_TIMEOUT_SECS`` - טיימאאוט המתנה ל‑connection מה‑pool (שניות) בעת קריאות ל‑Telegram Bot API. - לא - ``10.0`` - ``10.0`` - Bot * - ``TELEGRAM_READ_TIMEOUT_SECS`` - טיימאאוט קריאה ל‑Telegram Bot API (שניות). מומלץ שיהיה גבוה מ‑``TELEGRAM_LONG_POLL_TIMEOUT_SECS`` כדי להקטין סיכוי ל‑``getUpdates`` Conflict בזמן "גיהוק" רשת. - לא - ``30.0`` - ``30.0`` - Bot * - ``TELEGRAM_WRITE_TIMEOUT_SECS`` - טיימאאוט כתיבה ל‑Telegram Bot API (שניות). - לא - ``30.0`` - ``30.0`` - Bot * - ``TELEGRAM_LONG_POLL_TIMEOUT_SECS`` - ``timeout`` של long‑polling עבור ``getUpdates`` (שניות). זה זמן ההמתנה בצד שרת Telegram לפני החזרת עדכונים. - לא - ``20`` - ``20`` - Bot * - ``TELEGRAM_POLL_INTERVAL_SECS`` - ``poll_interval`` בין סבבי polling (שניות). ``0`` = ברירת מחדל של python-telegram-bot. - לא - ``0.0`` - ``0.0`` - Bot * - ``TELEGRAM_CONFLICT_BACKOFF_SECS`` - זמן המתנה (שניות) לפני retry כאשר מתקבלת שגיאת ``409 Conflict`` מסוג "terminated by other getUpdates request". - לא - ``30`` - ``30`` - Bot * - ``TELEGRAM_CONFLICT_MAX_RETRIES`` - כמה פעמים לנסות שוב (retry) אחרי ``409 Conflict``. אם מגיעים לתקרה — התהליך יוצא כדי לשחרר lock ולאפשר ל‑orchestrator לנסות התאוששות. ``0``/שלילי = ללא הגבלה (לא מומלץ). - לא - ``5`` - ``5`` - Bot * - ``TELEGRAM_CONFLICT_MAX_SECONDS`` - חלון זמן מקסימלי (שניות) לרצף conflicts לפני יציאה מהתהליך (שחרור lock + recovery). ``0``/שלילי = ללא הגבלה (לא מומלץ). - לא - ``300`` - ``300`` - Bot * - ``GITHUB_TOKEN`` - טוקן GitHub לשימוש בפעולות API וגם לאימות clone/fetch של Repo Sync בריפו פרטי (אם רלוונטי). למינימום הרשאות ראו טבלת Scopes בהמשך. - לא - - - ``ghp_xxx...`` - Bot/WebApp * - ``GITHUB_WEBHOOK_SECRET`` - סוד לאימות GitHub Webhook (HMAC SHA256) עבור ``POST /api/webhooks/github``. אם לא מוגדר, ה-webhook ייחסם (401) ולא יתבצע Sync אוטומטי. - כן (Repo Sync) - "" (ריק) - ``my_webhook_secret`` - WebApp * - ``REPO_MIRROR_PATH`` - נתיב בסיסי בדיסק לשמירת Bare Mirror של הריפו (Repo Sync Engine) - לא - ``/var/data/repos`` - ``/var/data/repos`` - WebApp * - ``REPO_NAME`` - שם ריפו לוגי לשימוש ב-Repo Sync (מפתח ל-mirror בדיסק ול-metadata ב-DB) - לא - ``CodeBot`` - ``CodeBot`` - WebApp * - ``WEBAPP_URL`` - כתובת ה-WebApp - לא - - - ``https://my.app`` - WebApp * - ``BOT_JOBS_API_BASE_URL`` - בסיס URL ל-API הפנימי של הבוט (aiohttp) עבור Trigger של Jobs ממסך המוניטור (``POST /api/jobs//trigger``). אם לא מוגדר, כפתור ההפעלה ידנית במוניטור יהיה לא זמין. - לא - - - ``http://127.0.0.1:8080`` - WebApp * - ``BOT_API_BASE_URL`` - Alias/תאימות לאחור ל-``BOT_JOBS_API_BASE_URL`` (נבדק רק אם ``BOT_JOBS_API_BASE_URL`` ריק). - לא - - - ``http://127.0.0.1:8080`` - WebApp * - ``WEBAPP_ENABLE_WARMUP`` - הפעלת שלב warmup אוטומטי אחרי עליית Gunicorn (``1``/``0``) - לא - ``1`` - ``0`` - WebApp * - ``WEBAPP_WARMUP_URL`` - יעד curl לבדיקת הבריאות הראשונית (ברירת מחדל ``http://127.0.0.1:$PORT/healthz``) - לא - ``http://127.0.0.1:$PORT/healthz`` - ``https://internal.lb/healthz`` - WebApp * - ``WEBAPP_WARMUP_MAX_ATTEMPTS`` - מספר ניסיונות curl עבור בדיקת הבריאות - לא - ``15`` - ``10`` - WebApp * - ``WEBAPP_WARMUP_DELAY_SECONDS`` - השהיה בין ניסיונות ה-warmup הראשיים (שניות) - לא - ``2`` - ``5`` - WebApp * - ``WEBAPP_WARMUP_BASE_URL`` - בסיס ה-URL לבקשות ה-Frontend Warmup - לא - ``http://127.0.0.1:$PORT`` - ``https://code-keeper-webapp.onrender.com`` - WebApp * - ``WEBAPP_WSGI_APP`` - מודול ה-WSGI של Flask עבור Gunicorn (בשימוש ``scripts/start_webapp.sh``) - לא - ``app:app`` - ``app:app`` - WebApp * - ``WEB_CONCURRENCY`` - מספר ה-workers של Gunicorn ב-WebApp. אם מוגדר, גובר על ברירת המחדל של ``scripts/start_webapp.sh`` ומקטין ``queue_delay`` תחת עומס. - לא - ``1`` - ``4`` - WebApp * - ``WEBAPP_GUNICORN_WORKERS`` - מספר ה-workers של Gunicorn (חלופה ל-``WEB_CONCURRENCY``) - לא - ``1`` - ``4`` - WebApp * - ``WEBAPP_GUNICORN_THREADS`` - מספר Threads לכל worker כאשר משתמשים ב-``gthread`` (לא רלוונטי ל-``gevent``) - לא - ``4`` - ``8`` - WebApp * - ``WEBAPP_GUNICORN_WORKER_CLASS`` - Worker class של Gunicorn (ברירת מחדל ``gevent``) - לא - ``gevent`` - ``gthread`` - WebApp * - ``WEBAPP_GUNICORN_WORKER_CONNECTIONS`` - מספר חיבורים מקסימלי ל-worker כאשר משתמשים ב-``gevent`` - לא - ``100`` - ``200`` - WebApp * - ``WEBAPP_GUNICORN_TIMEOUT`` - Timeout (שניות) לבקשה ב-Gunicorn - לא - ``180`` - ``180`` - WebApp * - ``WEBAPP_GUNICORN_KEEPALIVE`` - keep-alive (שניות) לחיבורים ב-Gunicorn - לא - ``2`` - ``5`` - WebApp * - ``OBSERVABILITY_WARMUP_ENABLED`` - הפעלה/כיבוי של Warmup “כבד” לדוחות Observability (למילוי קאש ו‑RAM) ברקע אחרי עליית התהליך - לא - ``true`` - ``false`` - WebApp * - ``OBSERVABILITY_WARMUP_DELAY_SECONDS`` - השהייה (שניות) לפני תחילת Warmup הדוחות כדי לא להעמיס בזמן העלייה - לא - ``5`` - ``10`` - WebApp * - ``OBSERVABILITY_WARMUP_BUDGET_SECONDS`` - תקציב זמן מקסימלי (שניות) ל‑Warmup הדוחות ברקע; מעבר לתקציב נעצור מוקדם - לא - ``20`` - ``30`` - WebApp * - ``OBSERVABILITY_WARMUP_RANGES`` - רשימת טווחי זמן (CSV) לחימום ``/api/observability/aggregations`` (למשל ``24h,7d,30d``) - לא - ``24h,7d,30d`` - ``24h,7d`` - WebApp * - ``OBSERVABILITY_WARMUP_SLOW_LIMIT`` - ערך ``slow_endpoints_limit`` עבור החימום (ברירת מחדל כמו ב‑API) - לא - ``5`` - ``10`` - WebApp * - ``ALERT_TAGS_COLLECTION`` - שם ה-Collection לתגיות התראות (Manual Alert Tagging) ב-Observability. - לא - ``alert_tags`` - ``alert_tags`` - WebApp/Observability * - ``ALERT_TAGS_DB_DISABLED`` - אם ``true`` מכבה שמירה/שליפה של תגיות להתראות (Manual Alert Tagging) מה-DB. - לא - ``false`` - ``true`` - WebApp/Observability * - ``PUBLIC_BASE_URL`` - כתובת בסיס ציבורית ליצירת קישורי שיתוף - לא - "" (ריק) - ``https://share.example.com`` - WebApp * - ``WEEKLY_TIP_ENABLED`` - מתג כללי להצגת רכיב ההכרזות (on/off) - לא - ``true`` - ``true`` - WebApp * - ``FEATURE_CODE_EXECUTION`` - הפעלת הרצת קוד (Playground) ב-WebApp (``/api/code/run``) - לא - ``false`` - ``true`` - WebApp * - ``CODE_EXEC_USE_DOCKER`` - האם להריץ קוד בתוך Docker sandbox (מומלץ/חובה בפרודקשן) - לא - ``true`` - ``true`` - WebApp * - ``CODE_EXEC_ALLOW_FALLBACK`` - האם לאפשר fallback ל-subprocess (לפיתוח בלבד; בפרודקשן מומלץ ``false``) - לא - ``false`` - ``false`` - WebApp * - ``CODE_EXEC_MAX_TIMEOUT`` - timeout מקסימלי להרצת קוד (שניות) - לא - ``30`` - ``10`` - WebApp * - ``CODE_EXEC_MAX_MEMORY_MB`` - זיכרון מקסימלי להרצת קוד (MB) - לא - ``128`` - ``256`` - WebApp * - ``CODE_EXEC_MAX_OUTPUT_BYTES`` - כמות מקסימלית של stdout/stderr (bytes) לפני עצירה/קיצוץ - לא - ``102400`` - ``102400`` - WebApp * - ``CODE_EXEC_MAX_CODE_LENGTH`` - אורך קוד מקסימלי (bytes) שמותר לשלוח להרצה - לא - ``51200`` - ``51200`` - WebApp * - ``CODE_EXEC_DOCKER_IMAGE`` - Docker image להרצת קוד (למשל ``python:3.11-slim``) - לא - ``python:3.11-slim`` - ``python:3.11-slim`` - WebApp * - ``PUBLIC_SHARE_TTL_DAYS`` - תוקף ברירת מחדל לקישורי שיתוף (ימים) - לא - ``7`` - ``14`` - WebApp * - ``ADMIN_USER_IDS`` - מזהי משתמש טלגרם עם הרשאות אדמין (CSV) - לא - "" (ריק) - ``123,456`` - Bot/WebApp * - ``DB_HEALTH_TOKEN`` - טוקן להגנה על נתיבים פנימיים רגישים בשרת ה-aiohttp: ``/api/db/*`` וגם ``/api/jobs/*`` (נשלח כ-``Authorization: Bearer ``). ללא טוקן ה-API חסום (403) והדשבורד ``/db-health`` יחזיר 403. - כן (DB Health) - "" (ריק) - ``db_health_super_secret_token`` - Bot/WebApp * - ``DB_HEALTH_SLOW_THRESHOLD_MS`` - סף ברירת מחדל לזיהוי slow queries (באלפיות שנייה) עבור ``currentOp``. - לא - ``1000`` - ``1500`` - Bot/WebApp * - ``DB_HEALTH_POOL_REFRESH_SEC`` - תדירות רענון מומלצת (שניות) לסטטוס ה-pool בדשבורד. (משתנה תיעודי/קונפיגורציה כללית) - לא - ``5`` - ``5`` - WebApp * - ``DB_HEALTH_OPS_REFRESH_SEC`` - תדירות רענון מומלצת (שניות) לרשימת slow queries בדשבורד. (משתנה תיעודי/קונפיגורציה כללית) - לא - ``10`` - ``10`` - WebApp * - ``DB_HEALTH_COLLECTIONS_COOLDOWN_SEC`` - זמן Cooldown (שניות) בין קריאות ל-``/api/db/collections`` (פעולת ``collStats``). קריאה נוספת בתוך החלון תחזיר ``429`` עם Header ``Retry-After``. - לא - ``30`` - ``30`` - WebApp * - ``PREMIUM_USER_IDS`` - מזהי משתמש טלגרם לסטטוס פרימיום (CSV) - לא - "" (ריק) - ``123,456`` - WebApp * - ``FA_SRI_HASH`` - ערך SRI עבור ספריית אייקונים (למשל FontAwesome) - לא - "" (ריק) - ``sha384-...`` - WebApp * - ``UPTIME_PROVIDER`` - ספק ניטור (למשל ``betteruptime``) - לא - "" (ריק) - ``betteruptime`` - WebApp * - ``UPTIME_API_KEY`` - מפתח API לשירות הניטור (אם רלוונטי) - לא - "" (ריק) - ``bu_apikey_xxx`` - WebApp * - ``UPTIME_MONITOR_ID`` - מזהה מוניטור - לא - "" (ריק) - ``abc123`` - WebApp * - ``UPTIME_STATUS_URL`` - קישור לעמוד סטטוס ציבורי - לא - "" (ריק) - ``https://status.example.com`` - WebApp * - ``UPTIME_WIDGET_SCRIPT_URL`` - כתובת סקריפט הווידג'ט לעמודי סטטוס - לא - ``https://uptime.betterstack.com/widgets/announcement.js`` - ``https://.../widget.js`` - WebApp * - ``UPTIME_WIDGET_ID`` - מזהה ווידג'ט (data-id) - לא - "" (ריק) - ``abcd-1234`` - WebApp * - ``UPTIME_CACHE_TTL_SECONDS`` - TTL למטמון תוצאות Uptime - לא - ``120`` (מינימום 30) - ``300`` - WebApp * - ``VAPID_PUBLIC_KEY`` - מפתח ציבורי ל‑Web Push (VAPID) - לא - "" (ריק) - ``BExxx...`` - WebApp * - ``VAPID_PRIVATE_KEY`` - מפתח פרטי ל‑Web Push (VAPID) - לא - "" (ריק) - ``xxxxxxxx`` - WebApp * - ``VAPID_SUB_EMAIL`` - Subject (דוא"ל) לתביעות VAPID - לא - "" (ריק) - ``support@example.com`` - WebApp * - ``PUSH_NOTIFICATIONS_ENABLED`` - הפעלת שליחת Web Push (רקע) - לא - ``true`` - ``false`` - WebApp * - ``PUSH_REMOTE_DELIVERY_ENABLED`` - שליחה דרך Worker חיצוני (במקום pywebpush) - לא - ``false`` - ``true`` - WebApp * - ``PUSH_DELIVERY_URL`` - כתובת בסיס ל‑Worker (ללא ``/send``) - לא - "" (ריק) - ``https://code-keeper-push-worker.onrender.com`` - WebApp * - ``PUSH_DELIVERY_TOKEN`` - טוקן Bearer לאימות שרת→Worker - לא - "" (ריק) - ``s3cr3t-token`` - WebApp/Worker * - ``PUSH_DELIVERY_TIMEOUT_SECONDS`` - Timeout לבקשת ``/send`` ל‑Worker (שניות) - לא - ``3`` - ``2`` - WebApp * - ``PUSH_WORKER_PORT`` - פורט פנימי ל‑Sidecar Worker (localhost בלבד) - לא - ``18080`` - ``18080`` - WebApp/Worker * - ``WORKER_VAPID_PUBLIC_KEY`` - מפתח ציבורי ל‑VAPID עבור ה‑Worker (Sidecar) - לא - "" (ריק) - ``BExxx...`` - Worker * - ``WORKER_VAPID_PRIVATE_KEY`` - מפתח פרטי ל‑VAPID עבור ה‑Worker (Sidecar) - לא - "" (ריק) - ``xxxxxxxx`` - Worker * - ``WORKER_VAPID_SUB_EMAIL`` - Subject (דוא"ל) לתביעות VAPID עבור ה‑Worker - לא - ``support@example.com`` - ``alerts@example.com`` - Worker * - ``PERSISTENT_LOGIN_DAYS`` - תוקף התחברות מתמשכת (ימים) - לא - ``180`` (מינימום 30) - ``365`` - WebApp * - ``PORT`` - פורט להרצת ה-WebApp - לא - ``5000`` - ``8080`` - WebApp * - ``DEBUG`` - מצב דיבאג ל-WebApp - לא - ``false`` - ``true`` - WebApp * - ``REDIS_URL`` - חיבור ל-Redis (cache) - לא - - - ``redis://localhost:6379`` - Bot * - ``REDIS_CONNECT_TIMEOUT`` - Timeout התחברות ל-Redis (שניות) - לא - ``3`` (או ``1`` ב-``SAFE_MODE``) - ``2`` - Bot/WebApp * - ``REDIS_SOCKET_TIMEOUT`` - Timeout קריאת שקע ל-Redis (שניות) - לא - ``5`` (או ``1`` ב-``SAFE_MODE``) - ``2`` - Bot/WebApp * - ``SAFE_MODE`` - מצב שמרני: מוריד ברירות מחדל של Timeouts לטובת יציבות בסביבות חלשות - לא - ``false`` - ``true`` - Bot/WebApp * - ``CACHE_ENABLED`` - הפעלת קאש פנימי - לא - ``false`` - ``true`` - Bot/WebApp * - ``CACHE_CLEAR_BUDGET_SECONDS`` - תקציב זמן לניקוי קאש (מונע תקיעה ב-Redis) - לא - ``5`` - ``1`` - Bot/WebApp * - ``CACHE_DELETE_PATTERN_BUDGET_SECONDS`` - תקציב זמן למחיקת תבנית מפתחות בקאש (SCAN+DEL) כדי למנוע תקיעה ב-Redis גדול - לא - ``5`` (נופל ל-``CACHE_CLEAR_BUDGET_SECONDS`` אם לא מוגדר) - ``1`` - Bot/WebApp * - ``DISABLE_BACKGROUND_CLEANUP`` - דילוג כולל על עבודות ניקוי רקע (קאש/גיבויים) - לא - ``false`` - ``true`` - Bot * - ``JOBS_STUCK_THRESHOLD_MINUTES`` - סף (בדקות) לזיהוי הרצות Jobs "תקועות" והפקת אירוע ``job_stuck`` (נבדק מול ``job_runs`` ב-DB). - לא - ``20`` - ``30`` - Bot * - ``JOBS_STUCK_MONITOR_INTERVAL_SECS`` - תדירות הריצה (שניות) של מוניטור Jobs "תקועות" שמפיק ``job_stuck``. - לא - ``60`` - ``120`` - Bot * - ``JOB_TRIGGERS_POLL_INTERVAL_SECS`` - תדירות polling (שניות) של processor בבוט שמטפל בבקשות trigger שנוצרו מה-WebApp (``job_trigger_requests``). מינימום 60. - לא - ``60`` - ``120`` - Bot * - ``CACHE_MAINT_INTERVAL_SECS`` - מרווח בין ריצות תחזוקת קאש (שניות) - לא - ``600`` (מינימום 60) - ``300`` - Bot * - ``CACHE_MAINT_FIRST_SECS`` - דיליי לפני הרצת תחזוקת קאש הראשונה (שניות) - לא - ``30`` - ``10`` - Bot * - ``CACHE_MAINT_MAX_SCAN`` - מספר מפתחות מקסימלי לסריקה ב-clear_stale - לא - ``1000`` - ``5000`` - Bot * - ``CACHE_MAINT_TTL_THRESHOLD`` - TTL (בשניות) מתחתיו ייחשב "שבק״ לניקוי עדין - לא - ``60`` - ``120`` - Bot * - ``BACKUPS_CLEANUP_ENABLED`` - הפעלת ניקוי גיבויי ZIP ברקע - לא - ``false`` (כבוי כברירת מחדל) - ``true`` - Bot * - ``BACKUPS_CLEANUP_INTERVAL_SECS`` - מרווח בין ריצות ניקוי גיבויים (שניות) - לא - ``86400`` (מינימום 3600) - ``43200`` - Bot * - ``BACKUPS_CLEANUP_FIRST_SECS`` - דיליי לפני ריצת ניקוי גיבויים הראשונה (שניות) - לא - ``180`` - ``60`` - Bot * - ``BACKUPS_RETENTION_DAYS`` - ימי שמירת ארכיבי גיבוי בדיסק/GridFS לפני מחיקה - לא - ``30`` (מינימום 1) - ``14`` - Bot * - ``BACKUPS_MAX_PER_USER`` - מספר גיבויים מקסימלי לשמירה לכל משתמש (מעבר יימחקו הוותיקים) - לא - ``None`` (ביטול מגבלה) - ``10`` - Bot * - ``BACKUPS_CLEANUP_BUDGET_SECONDS`` - תקציב זמן לניקוי גיבויים (מונע עומס) - לא - ``3`` - ``5`` - Bot * - ``BACKUPS_DISK_MIN_FREE_BYTES`` - סף (ב־bytes) להתראת "דיסק כמעט מלא" לפני שמירת ZIP - לא - ``209715200`` (200MB) - ``314572800`` (300MB) - Bot * - ``DISABLE_CACHE_MAINTENANCE`` - דילוג על פעולות ניקוי קאש (לוג בלבד) - לא - ``false`` - ``true`` - Bot/WebApp * - ``DISABLE_PREEMPTIVE_ACTIONS`` - דילוג על פעולות מנע (PHE) כמו ניקוי קאש - לא - ``false`` - ``true`` - Bot/WebApp * - ``LOG_LEVEL`` - רמת logging (``DEBUG``/``INFO``/``WARNING``/``ERROR``/``CRITICAL`` או ערך מספרי כמו ``10``) - לא - ``INFO`` - ``DEBUG`` - Bot/WebApp * - ``LOG_FORMAT`` - פורמט לוגים (``text``/``json``) - לא - ``text`` - ``json`` - Bot/WebApp * - ``LOG_INFO_SAMPLE_RATE`` - שיעור דגימה ללוגים ברמת ``INFO`` (0.0–1.0) - לא - ``1.0`` - ``0.1`` - Bot/WebApp * - ``LOG_INFO_SAMPLE_ALLOWLIST`` - אירועים שלא נדגמים לעולם (מופרדים בפסיקים) - לא - ``business_metric,performance,github_sync`` - ``event_a,event_b`` - Bot/WebApp * - ``ENVIRONMENT`` - שם הסביבה לדיווחי Sentry/לוגים (``production``/``staging``/``dev``) - לא - ``production`` - ``staging`` - Bot/WebApp * - ``MAX_CODE_SIZE`` - גודל קוד מקסימלי לשמירה (בתווים) - לא - ``100000`` - ``200000`` - Bot * - ``MAX_FILES_PER_USER`` - מגבלת כמות קבצים למשתמש - לא - ``1000`` - ``2000`` - Bot * - ``HIGHLIGHT_THEME`` - ערכת צבעים להדגשת תחביר - לא - ``github-dark`` - ``monokai`` - WebApp * - ``DEFAULT_UI_THEME`` - ערכת ברירת מחדל לממשק ה-WebApp. תומך בערכות מובנות (למשל ``classic``/``ocean``/``dark`` וכו') או בערכה ציבורית בפורמט ``shared:`` (ללא רווחים). - לא - ``classic`` - ``shared:monzo_light`` - WebApp * - ``GIT_CHECKPOINT_PREFIX`` - קידומת לשמירת checkpoints - לא - ``checkpoint`` - ``ckpt`` - Bot * - ``GOOGLE_CLIENT_ID`` - OAuth Client ID של Google - לא - - - ``xxx.apps.googleusercontent.com`` - Integrations * - ``GOOGLE_CLIENT_SECRET`` - OAuth Client Secret של Google - לא - - - ``********`` - Integrations * - ``GOOGLE_OAUTH_SCOPES`` - מרחבי OAuth לברירת מחדל - לא - ``https://www.googleapis.com/auth/drive.file`` - ``...`` - Integrations * - ``GOOGLE_TOKEN_REFRESH_MARGIN_SECS`` - מרווח חידוש טוקן בטרם פקיעה (שניות) - לא - ``120`` - ``300`` - Integrations * - ``DRIVE_MENU_V2`` - הפעלת תפריט Drive v2 - לא - ``true`` - ``false`` - WebApp * - ``DOCUMENTATION_URL`` - קישור לאתר התיעוד הרשמי - לא - ``https://amirbiron.github.io/CodeBot/`` - ``https://docs.example.com`` - WebApp * - ``BOT_LABEL`` - תווית תצוגה לבוט - לא - ``CodeBot`` - ``CKB`` - Bot/WebApp * - ``DRIVE_ADD_HASH`` - הוספת hash לקבצים משותפים - לא - ``false`` - ``true`` - Integrations * - ``NORMALIZE_CODE_ON_SAVE`` - נרמול קוד בשמירה - לא - ``true`` - ``false`` - Bot * - ``MAINTENANCE_MODE`` - מצב תחזוקה המדכא פעולות משתמשים - לא - ``false`` - ``true`` - Bot/WebApp * - ``MAINTENANCE_MESSAGE`` - הודעה למצב תחזוקה - לא - הודעת ברירת מחדל ידידותית - ``"🚀 אנחנו מעלים עדכון חדש!"`` - WebApp * - ``MAINTENANCE_AUTO_WARMUP_SECS`` - חימום אוטומטי לאחר יציאה מתחזוקה (שניות) - לא - ``30`` - ``60`` - WebApp * - ``MAINTENANCE_WARMUP_GRACE_SECS`` - חלון חסד (שניות) שנוסף ל-warmup כדי לכסות שיהוי איטי בתחילת ריצה - לא - ``0.75`` - ``1.5`` - Bot/WebApp * - ``RATE_LIMIT_PER_MINUTE`` - מגבלת קצב בקשות לדקה - לא - ``30`` - ``60`` - WebApp * - ``RECYCLE_TTL_DAYS`` - ימי שמירת פריטים בסל המחזור - לא - ``7`` - ``30`` - Bot/WebApp * - ``REPORTER_MONGODB_URL`` - URI חלופי ל-reporter (עדיפות על ``MONGODB_URL``) - לא - - - ``mongodb://...`` - Reporter * - ``REPORTER_MONGODB_URI`` - שם חלופי ל-URI של reporter - לא - - - ``mongodb://...`` - Reporter * - ``REPORTER_SERVICE_ID`` - מזהה שירות עבור הדוחות - לא - ``srv-d29d72adbo4c73bcuep0`` - ``srv-xxxx`` - Reporter * - ``ENABLE_INTERNAL_SHARE_WEB`` - הפעלת שירות שיתוף פנימי - לא - ``false`` - ``true`` - WebApp * - ``PORT`` - פורט להרצת שירותים פנימיים/בדיקות - לא - ``10000`` (ב-main), ``5000`` (ב-WebApp) - ``8080`` - Bot/WebApp * - ``AIOHTTP_POOL_LIMIT`` - גודל בריכת חיבורים ל‑aiohttp - לא - ``50`` - ``100`` - Bot/WebApp * - ``AIOHTTP_TIMEOUT_TOTAL`` - Timeout כולל לשיחות aiohttp (שניות) - לא - ``10`` - ``30`` - Bot/WebApp * - ``AIOHTTP_LIMIT_PER_HOST`` - מגבלה פר‑Host לחיבורים במקביל (aiohttp TCPConnector) - לא - ``0`` (ללא מגבלה פר‑Host) - ``25`` - Bot/WebApp * - ``REDIS_MAX_CONNECTIONS`` - גודל בריכת חיבורים ל‑Redis - לא - ``50`` - ``200`` - Bot/WebApp * - ``REQUESTS_POOL_CONNECTIONS`` - מספר Connection Pools גלובליים ל‑requests (per host) - לא - ``20`` - ``20`` - Bot/WebApp * - ``REQUESTS_POOL_MAXSIZE`` - מקס׳ חיבורים בו‑זמנית בכל Pool (requests) - לא - ``100`` - ``100`` - Bot/WebApp * - ``REQUESTS_TIMEOUT`` - Timeout ברירת מחדל לבקשות סינכרוניות (requests) - לא - ``8`` - ``8`` - Bot/WebApp * - ``REQUESTS_RETRIES`` - מספר ניסיונות Retry על סטטוסים זמניים (5xx) - לא - ``2`` - ``2`` - Bot/WebApp * - ``REQUESTS_RETRY_BACKOFF`` - backoff_factor בין ניסיונות ה‑Retry (שניות) - לא - ``0.2`` - ``0.2`` - Bot/WebApp * - ``SLOW_MS`` - סף מילישניות ללוג "בקשה איטית" ב‑Flask/WebApp - לא - ``0`` (מכובה) - ``500`` - WebApp * - ``HTTP_SLOW_MS`` - סף מילישניות ללוג "slow_http" ב‑http_sync (requests) - לא - ``0`` (מכובה) - ``400`` - Bot/WebApp * - ``DB_SLOW_MS`` - סף מילישניות ללוג "slow_mongo" (MongoDB CommandListener) - לא - ``0`` (מכובה) - ``20`` - Bot/WebApp * - ``PROFILER_ENABLED`` - הפעלת Query Performance Profiler (ניטור שאילתות MongoDB איטיות + דשבורד). ראו :doc:`observability/query-performance-profiler`. **שימו לב:** כרגע יש נטרול קשיח ברמת הקוד (``DatabaseManager.ENABLE_PROFILING = False``), ולכן גם אם הערך כאן ``true`` – הפרופיילר לא ירוץ ולא יירשם ל‑API. - לא - ``true`` - ``false`` - Bot/WebApp * - ``PROFILER_SLOW_THRESHOLD_MS`` - סף זמן (מילישניות) להגדרת "שאילתה איטית" עבור הפרופיילר - לא - ``100`` - ``250`` - Bot/WebApp * - ``PROFILER_MAX_BUFFER_SIZE`` - מספר מקסימלי של רשומות slow queries שנשמרות בזיכרון (Deque) לצורכי UI מהיר - לא - ``1000`` - ``2000`` - Bot/WebApp * - ``PROFILER_AUTH_TOKEN`` - טוקן גישה ל-API של הפרופיילר (נשלח כ-Header ``X-Profiler-Token``). אם ריק, ההגנה מתבססת על הרשאת Admin ב-WebApp. - לא - "" (ריק) - ``replace_me`` - Bot/WebApp * - ``PROFILER_ALLOWED_IPS`` - Allowlist של כתובות IP מורשות (CSV) ל-API של הפרופיילר. אם ריק, אין הגבלת IP. - לא - "" (ריק) - ``127.0.0.1,10.0.0.1`` - Bot/WebApp * - ``PROFILER_RATE_LIMIT`` - מגבלת בקשות לדקה ל-endpoints של הפרופיילר (Rate Limiting) - לא - ``60`` - ``30`` - Bot/WebApp * - ``PROFILER_METRICS_ENABLED`` - הפעלה/כיבוי של מטריקות Prometheus לפרופיילר (Slow Queries / Buffer Size וכו') - לא - ``true`` - ``false`` - Bot/WebApp * - ``QUEUE_DELAY_WARN_MS`` - סף מילישניות להתראת ``queue_delay_high`` כאשר התקבלה כותרת ``X-Queue-Start``/``X-Request-Start`` והשרת מזהה זמן המתנה בתור לפני טיפול בבקשה - לא - ``500`` - ``1000`` - WebApp * - ``COLLECTIONS_API_ITEMS_SLOW_MS`` - סף מילישניות ללוג ביצועים ב-API של ``GET /api/collections//items`` (כדי לזהות בקשות איטיות וגודל payload) - לא - ``500`` - ``300`` - WebApp * - ``SEARCH_PAGE_SIZE`` - גודל דף חיפוש בצד ה‑DB - לא - ``200`` - ``500`` - Bot/WebApp * - ``UI_PAGE_SIZE`` - גודל דף ליסטים ב‑UI - לא - ``10`` - ``20`` - WebApp * - ``ENCRYPTION_KEY`` - מפתח הצפנה לנתונים רגישים - לא - - - ``32-byte-key`` - Bot/WebApp * - ``SENTRY_DSN`` - DSN לשילוב עם Sentry (שגיאות ותובנות) - לא - "" (ריק) - ``https://xxx@o1234.ingest.sentry.io/5678`` - Bot/WebApp * - ``SENTRY_TRACES_SAMPLE_RATE`` - דגימת Traces (0.0–1.0) - לא - ``0.0`` - ``0.1`` - Bot/WebApp * - ``SENTRY_PROFILES_SAMPLE_RATE`` - דגימת Profiles (0.0–1.0) - לא - ``0.0`` - ``0.1`` - Bot/WebApp התראות וניטור (הרחבה) ---------------------- .. list-table:: Alerts & Observability :header-rows: 1 * - משתנה - תיאור - חובה - ברירת מחדל - דוגמה - רכיב * - ``DRILL_MODE_ENABLED`` - מפעיל Drill Mode (תרגולים) ב-WebApp/API. כאשר כבוי, ``/api/observability/drills/run`` יחזיר ``drill_disabled``. - לא - ``false`` - ``true`` - WebApp/Observability * - ``ALERT_TAGS_COLLECTION`` - שם ה-Collection לתגיות התראות (Manual Alert Tagging) ב-Observability. - לא - ``alert_tags`` - ``alert_tags`` - WebApp/Observability * - ``ALERT_TAGS_DB_DISABLED`` - אם ``true`` מכבה שמירה/שליפה של תגיות להתראות (Manual Alert Tagging) מה-DB. - לא - ``false`` - ``true`` - WebApp/Observability * - ``ALERTMANAGER_WEBHOOK_SECRET`` - טוקן שצריך להופיע בכותרת ``X-Alertmanager-Token`` או בפרמטר ``token`` כדי לאמת קריאות ל־``/alertmanager/webhook``. - לא - "" (ריק) - ``secret123`` - WebApp * - ``SENTRY_WEBHOOK_SECRET`` - סוד לאימות קריאות ל־``/webhooks/sentry`` (אם ריק, השירות מאפשר קריאות ללא אימות – מומלץ להגדיר). נבדק כ-``Authorization: Bearer`` או ``?token=`` וגם תומך בחתימת HMAC כאשר קיימת. - לא - "" (ריק) - ``secret123`` - WebApp * - ``SENTRY_WEBHOOK_DEDUP_WINDOW_SECONDS`` - חלון דה-דופליקציה (בשניות) להתראות Sentry שמגיעות ב-Webhook כדי למנוע burst (``0`` מנטרל). - לא - ``300`` - ``600`` - WebApp * - ``ALERTMANAGER_IP_ALLOWLIST`` - רשימת IPs (מופרדים בפסיק) שמורשים לצרוך את ה-webhook; נבדק מול ``X-Forwarded-For``/``remote_addr``. - לא - "" (ריק) - ``10.0.0.5,10.0.0.6`` - WebApp * - ``ALLOWED_WEBHOOK_HOSTS`` - Allowlist אופציונלי ליעדי ``webhook`` (Visual Rule Engine). אם מוגדר, יישלח webhook רק ל-hostnames שמופיעים ברשימה (CSV, התאמה מדויקת). - לא - "" (ריק) - ``hooks.slack.com,api.example.com`` - Bot/WebApp * - ``ALLOWED_WEBHOOK_SUFFIXES`` - Allowlist אופציונלי ליעדי ``webhook`` לפי סיומות דומיין (CSV). אם מוגדר, יישלח webhook רק לדומיינים שמסתיימים באחת הסיומות (למשל ``.example.com``). - לא - "" (ריק) - ``.example.com,.mycompany.net`` - Bot/WebApp * - ``SLACK_WEBHOOK_URL`` - כתובת Incoming Webhook של Slack לשליחת התראות. - לא - "" (ריק) - ``https://hooks.slack.com/services/...`` - Bot * - ``PUBLIC_URL`` - כתובת ציבורית בסיסית של ה-WebApp (משמשת ליצירת קישור יציב ל־Observability Dashboard בהודעות התראה). - לא - ``https://code-keeper-webapp.onrender.com`` - ``https://code-keeper-webapp.onrender.com`` - Bot/WebApp * - ``ALERT_TELEGRAM_BOT_TOKEN`` - טוקן בוט ייעודי לשליחת התראות לטלגרם (נפרד מהבוט הראשי אם רוצים). - לא - - - ``123456:ABC-DEF...`` - Bot/WebApp * - ``ALERT_TELEGRAM_CHAT_ID`` - Chat ID/Channel שאליו נשלחות התראות (לדוגמה ``-100123`` או ``@myteam``). - לא - - - ``-1001234567890`` - Bot/WebApp * - ``ALERT_TELEGRAM_MIN_SEVERITY`` - דרגת החומרה המינימלית שתישלח לטלגרם (``info``/``warning``/``error``/``critical``). - לא - ``info`` - ``warning`` - Bot/WebApp * - ``ALERT_STARTUP_GRACE_PERIOD_SECONDS`` - חלון חסד (שניות) לאחר אתחול התהליך שבו מושתקים רק alerts "רועשים" מתוך allowlist (Mongo/Latency/EWMA) כדי למנוע רעשי דיפלוי. - לא - ``1200`` - ``1200`` - Bot/WebApp * - ``ALERTS_TEXT_INCLUDE_DASHBOARD_LINK_TELEGRAM`` - אם ``true`` מוסיף שורת ``📊 Dashboard: ...`` לגוף ההודעה בטלגרם. ברירת מחדל כבוי כדי להימנע מכפילות (יש כפתור Inline). - לא - ``false`` - ``true`` - Bot/WebApp * - ``ALERTS_TEXT_INCLUDE_DASHBOARD_LINK_SLACK`` - אם ``true`` מוסיף שורת ``📊 Dashboard: ...`` לגוף ההודעה ב-Slack (ברירת מחדל פעיל כי אין כפתור). - לא - ``true`` - ``false`` - Bot/WebApp * - ``GRAFANA_URL`` - בסיס ה-URL של Grafana לכתיבת annotations על התראות. - לא - "" (ריק) - ``https://grafana.example.com`` - Bot * - ``GRAFANA_API_TOKEN`` - אסימון Bearer ל-Grafana כשמוסיפים annotations דרך ה-API. - לא - "" (ריק) - ``glsa_xxx`` - Bot * - ``ALERTS_DB_ENABLED`` - מפעיל כתיבה/קריאה ל-MongoDB עבור לוג התראות וסיילנסים. - לא - ``false`` - ``true`` - Bot/Observability * - ``DRILLS_DB_ENABLED`` - מפעיל שמירת היסטוריית Drill ב-MongoDB (ברירת מחדל נסמכת על ``ALERTS_DB_ENABLED``/``METRICS_DB_ENABLED``). - לא - "" (ריק = יורש מ-ALERTS_DB_ENABLED/METRICS_DB_ENABLED) - ``true`` - WebApp/Observability * - ``ALERTS_COLLECTION`` - שם הקולקשן שבו נשמרות התראות מנורמלות. - לא - ``alerts_log`` - ``alerts_log_prod`` - Bot/Observability * - ``ALERT_TYPES_CATALOG_COLLECTION`` - שם הקולקשן שבו נשמר Catalog (Registry) של כל ``alert_type`` שנצפה אי פעם. משמש ל-Coverage Report כ-To-Do קבוע ל-Runbooks/Quick Fixes. - לא - ``alert_types_catalog`` - ``alert_types_catalog_prod`` - Bot/Observability * - ``DRILLS_COLLECTION`` - שם הקולקשן שבו נשמרת היסטוריית Drill Mode (תרגולים). - לא - ``drill_history`` - ``drill_history_prod`` - WebApp/Observability * - ``ALERTS_SILENCES_COLLECTION`` - שם הקולקשן לסיילנסים (pattern + TTL). - לא - ``alerts_silences`` - ``alerts_silences_eu`` - Bot/Observability * - ``ALERTS_TTL_DAYS`` - כמה ימים נשמרת התראה לפני מחיקה אוטומטית (TTL index). - לא - ``30`` - ``14`` - Bot/Observability * - ``DRILLS_TTL_DAYS`` - כמה ימים נשמרת היסטוריית Drill לפני מחיקה אוטומטית (TTL index). - לא - ``90`` - ``30`` - WebApp/Observability * - ``ALERTS_GROUPING_CONFIG`` - נתיב ל־YAML שמגדיר איך לאגד אירועים לקטגוריות התראה (log aggregator). - לא - ``config/alerts.yml`` - ``config/custom_alerts.yml`` - Bot/Observability * - ``ALERTS_USE_POOLED_HTTP`` - כאשר ערכו ``true``/``1`` משתמשים ב-``http_sync`` המאוחד בעת שליחת Slack/Telegram. - לא - ``false`` - ``true`` - Bot * - ``ALERT_ANOMALY_BATCH_WINDOW_SECONDS`` - חלון זמן (שניות) לאיגוד התראות anomaly דומות לפני הודעה מרוכזת. - לא - ``180`` - ``120`` - Bot * - ``ALERT_ERRORS_PER_MINUTE`` - סף כמות שגיאות לדקה שמעורר ``anomaly_detected`` מהמודול metrics. - לא - ``20`` - ``40`` - Bot * - ``ALERT_AVG_RESPONSE_TIME`` - רף ה-EWMA של זמן תגובה (שניות) שמעורר התראת latency (``0`` מנטרל). - לא - ``3.0`` - ``2.5`` - Bot * - ``ANOMALY_IGNORE_ENDPOINTS`` - רשימת נתיבי URL (CSV/JSON list) שמוחרגים מעדכון EWMA ומדגימת ``slow_endpoints`` (המטריקות הרגילות עדיין נרשמות לגרפים). - לא - ``""`` - ``/api/observability/aggregations,/api/observability/timeseries`` - WebApp/Observability * - ``ALERT_AVG_RESPONSE_TIME_DEPLOY`` - רף חלופי לאותה התראה בזמן חלון חסד לאחר Deploy. - לא - ``10.0`` - ``6.0`` - Bot * - ``DEPLOY_GRACE_PERIOD_SECONDS`` - אורך חלון החסד (שניות) שבו משתמשים ברף Deploy. - לא - ``120`` - ``180`` - Bot * - ``ALERT_COOLDOWN_SECONDS`` - קירור מינימלי בין שתי התראות מאותו סוג. - לא - ``300`` - ``600`` - Bot * - ``ALERT_DISPATCH_LOG_MAX`` - מספר הרשומות שנשמרות בזיכרון עבור מעקב שליחות. - לא - ``500`` - ``200`` - Bot * - ``ALERT_EACH_ERROR`` - מפעיל fallback שמוציא התראה נפרדת עבור כל שגיאה (עם קירור קשיח). - לא - ``false`` - ``true`` - Bot * - ``ALERT_EACH_ERROR_COOLDOWN_SECONDS`` - קירור בין התראות fallback מאותה חתימת שגיאה. - לא - ``120`` - ``60`` - Bot * - ``ALERT_EACH_ERROR_TTL_SECONDS`` - TTL לחתימות במאגר הדה-דופליקציה (ברירת המחדל: שעה או פי 10 מהקירור). - לא - ``3600`` - ``7200`` - Bot * - ``ALERT_EACH_ERROR_MAX_KEYS`` - כמות החתימות שנשמרות במקביל לפני שמסירים את הוותיקות. - לא - ``1000`` - ``2000`` - Bot * - ``ALERT_QUICK_FIX_PATH`` - קובץ JSON עם פתרונות/צעדים קצרים שמוצמדים להתראות בצ'אט. - לא - ``config/alert_quick_fixes.json`` - ``config/custom_fixes.json`` - Bot/WebApp * - ``OBSERVABILITY_RUNBOOK_PATH`` - נתיב חלופי ל-``observability_runbooks.yml`` שמזין את ה-Runbooks וה-Quick Fix הדינמי. - לא - ``config/observability_runbooks.yml`` - ``/etc/codebot/runbooks.yml`` - WebApp/Observability * - ``OBS_RUNBOOK_STATE_TTL`` - משך (בשניות) לשמירת סטטוס הצעדים שסומנו כ"בוצעו" ב-Runbook. - לא - ``14400`` - ``7200`` - WebApp/Observability * - ``OBS_RUNBOOK_EVENT_TTL`` - זמן שמירת אירועי ה-Replay במטמון צד שרת לצורך שליפות Runbook (שניות). - לא - ``900`` - ``1800`` - WebApp/Observability * - ``ALERT_EXTERNAL_SERVICES`` - רשימת מחרוזות (CSV) של שירותים חיצוניים שיזוהו כ-``external`` במדד High Error Rate (למשל ``uptimerobot``/``github api``); שגיאות מהמקורות האלה ייצרו רק התרעת Warning ולא יריצו Auto-Remediation. - לא - ``uptime,uptimerobot,uptime_robot,betteruptime,statuscake,pingdom,external_monitor,github api,github_api`` - ``uptimerobot,github api,statuspage`` - WebApp/Observability * - ``OBS_AI_EXPLAIN_URL`` - Endpoint לשירות ההסבר החכם של הדשבורד (מקבל ``POST`` עם ``context`` ומחזיר ``root_cause``/``actions``/``signals``). - לא - "" (ריק) - ``https://ai.example.com/explain`` - WebApp/Observability * - ``OBS_AI_EXPLAIN_INTERNAL_PORT`` - פורט פנימי כאשר מריצים את שירות ה-AI Explain באותו קונטיינר עם ה-WebApp (למשל דרך ``scripts/run_all.sh``). בשימוש יחד עם ``OBS_AI_EXPLAIN_URL=http://127.0.0.1:/api/ai/explain``. - לא - ``11000`` - ``11000`` - WebApp/Observability * - ``OBS_AI_EXPLAIN_TOKEN`` - אסימון Bearer שנשלח ב-Header ``Authorization`` כאשר השירות מוגן (אופציונלי). - לא - "" (ריק) - ``sk-live-123`` / ``bearer-xyz`` - WebApp/Observability * - ``OBS_AI_EXPLAIN_TIMEOUT`` - Timeout (שניות) לפנייה לשירות ה-AI לפני נפילה לניתוח היוריסטי. - לא - ``12`` - ``20`` - WebApp/Observability * - ``OBS_AI_EXPLAIN_CACHE_TTL`` - חיי המטמון (שניות) לתוצאות AI לפי ``alert_uid`` ב-Observability. - לא - ``600`` - ``900`` - WebApp/Observability * - ``SILENCE_MAX_DAYS`` - מגבלת ימים לסיילנס יחיד שנוצר דרך ChatOps. - לא - ``7`` - ``3`` - Bot * - ``SILENCES_MAX_ACTIVE`` - מספר הסיילנסים הפעילים המקסימלי לפני שיצירת חדשים נחסמת. - לא - ``50`` - ``100`` - Bot * - ``SENSITIVE_COMMAND_COOLDOWN_SEC`` - קירור ברירת מחדל (שניות) לפקודות אדמין רגישות בצ'אט. - לא - ``5`` - ``10`` - Bot/ChatOps * - ``ALLOWED_CHAT_IDS`` - CSV של Chats/Channels שמורשים להשתמש ביכולות אדמין (לדוגמה ערוצי ניהול). - לא - "" (ריק = אין הגבלה) - ``-1001,-1002`` - Bot/ChatOps * - ``INTERNAL_ALERTS_BUFFER`` - כמות ההתראות הפנימיות שנשמרות בזיכרון לבקרה. - לא - ``200`` - ``500`` - Bot * - ``SENTRY_API_URL`` - בסיס ה-API של Sentry (אם משתמשים ב-self-hosted). - לא - ``https://sentry.io/api/0`` - ``https://sentry.example.com/api/0`` - Bot/ChatOps * - ``SENTRY_AUTH_TOKEN`` - אסימון Bearer לקריאות API (נדרש ל-ChatOps / integrations). - לא - "" (ריק) - ``sentry_pat_xxx`` - Bot/ChatOps * - ``SENTRY_DASHBOARD_URL`` - URL מלא לאזור ה-Issues בסקופ ארגוני; גובר על לינקים שנבנים מה-DSN. - לא - "" (ריק) - ``https://sentry.io/organizations/acme/issues`` - Bot/WebApp * - ``SENTRY_ORG``/``SENTRY_ORG_SLUG`` - ה-slug של הארגון ב-Sentry (משמש לבניית URLs וקריאות API). - לא - "" (ריק) - ``codebot`` - Bot/ChatOps * - ``SENTRY_PROJECT``/``SENTRY_PROJECT_SLUG`` - פרויקט ברירת מחדל לסינון Issues/Events. - לא - "" (ריק) - ``codebot-web`` - Bot/ChatOps * - ``SENTRY_PROJECT_URL`` - URL ישיר לפרויקט ספציפי במקרה שאין Dashboard ארגוני. - לא - "" (ריק) - ``https://sentry.io/organizations/acme/projects/codebot`` - Bot/ChatOps * - ``SENTRY_POLL_ENABLED`` - מפעיל Polling תקופתי ל-Sentry (חלופה כאשר אין אפשרות Webhook ב-Sentry). הבוט ימשוך Issues אחרונים וייצר ``internal_alerts`` מסוג ``alert_type=sentry_issue``. - לא - ``false`` - ``true`` - Bot * - ``SENTRY_POLL_INTERVAL_SECS`` - כל כמה שניות לבצע Polling ל-Sentry (מינימום 30). - לא - ``300`` - ``120`` - Bot * - ``SENTRY_POLL_FIRST_SECS`` - דיליי לפני ריצת ה-Poll הראשונה לאחר עלייה (שניות). - לא - ``20`` - ``5`` - Bot * - ``SENTRY_POLL_LIMIT`` - כמה Issues למשוך בכל Poll (מינימום 1, מקסימום 100). - לא - ``10`` - ``25`` - Bot * - ``SENTRY_POLL_SEVERITY`` - דרגת החומרה שתישלח כ-``internal_alerts`` עבור Sentry Poll (``info``/``warning``/``error``/``critical``). - לא - ``error`` - ``warning`` - Bot * - ``SENTRY_POLL_SEED_SILENT`` - אם ``true`` ההרצה הראשונה רק "זורעת" מצב (Seed) ולא שולחת התראות על Issues קיימים; רק פעילות חדשה בהמשך תייצר התראה. - לא - ``true`` - ``false`` - Bot * - ``SENTRY_POLL_DEDUP_SECONDS`` - חלון דה-דופליקציה (בשניות) לכל Issue כדי למנוע הצפה (``0`` מנטרל). - לא - ``900`` - ``300`` - Bot * - ``SENTRY_TEST_NOTIFICATIONS_JOB`` - 1/``true`` מפעיל Job מדמה ששולח אירוע בדיקה ל-Sentry לצורכי ניטור. - לא - ``false`` - ``true`` - Bot/ChatOps מדדים, OTEL וחיזוי ------------------- .. list-table:: Metrics & Predictive Controls :header-rows: 1 * - משתנה - תיאור - חובה - ברירת מחדל - דוגמה - רכיב * - ``ENABLE_METRICS`` - מפעיל/מכבה יצוא Metrics דרך OTLP (OpenTelemetry Metrics). כדי לא להרעיש, יצוא OTLP דורש גם ``OTEL_EXPORTER_OTLP_ENDPOINT``. - לא - ``false`` - ``true`` - Bot/WebApp * - ``ENABLE_PROMETHEUS_METRICS`` - מפעיל OpenTelemetry Prometheus exporter (pull/scrape). כשהוא פעיל, מדדים של OTEL נחשפים דרך ה-``/metrics`` הקיים. (Alias נתמך: ``ENABLE_PROMETHEUS_OTEL_METRICS``) - לא - ``false`` - ``true`` - Bot/WebApp * - ``METRICS_DB_ENABLED`` - **Legacy**: מפעיל כתיבה של metrics ל-MongoDB (``monitoring/metrics_storage.py``). כיום הכתיבה מושבתת בפרודקשן ברמת הקוד ונשארה בעיקר לטסטים/תאימות. - לא - ``false`` - ``true`` - Bot/Observability * - ``METRICS_COLLECTION`` - שם הקולקשן לכתיבת metrics כש-DB מופעל. - לא - ``service_metrics`` - ``service_metrics_eu`` - Bot/Observability * - ``METRICS_BATCH_SIZE`` - גודל הבאצ' (מספר דגימות) שנשלחות בכל flush. - לא - ``50`` - ``200`` - Bot/Observability * - ``METRICS_FLUSH_INTERVAL_SEC`` - כל כמה שניות לרוקן את הבאפר של metrics. - לא - ``5`` - ``10`` - Bot/Observability * - ``METRICS_EWMA_ALPHA`` - מקדם EWMA (0-1) לחישוב אנומליות latency/error-rate. - לא - ``0.2`` - ``0.1`` - Bot * - ``METRICS_MAX_BUFFER`` - מספר הדגימות המקסימלי שנשמר בזיכרון לפני שמתחילים לדלג. - לא - ``5000`` - ``10000`` - Bot * - ``ERROR_HISTORY_SECONDS`` - חלון זמן (בשניות) לשמירת errors לצורך תרשימי חום. - לא - ``600`` - ``900`` - Bot * - ``ERROR_HISTORY_MAX_SAMPLES`` - מספר מקסימלי של רשומות שגיאה שנשמרות בחלון. - לא - ``2000`` - ``5000`` - Bot * - ``ERROR_SIGNATURES_PATH`` - נתיב לקובץ החתימות (YAML) שמשמש את log aggregator לסיווג שגיאות. - לא - ``config/error_signatures.yml`` - ``config/custom_error_signatures.yml`` - Bot * - ``HTTP_SAMPLE_BUFFER`` - כמות דגימות HTTP שנשמרות ב־deque לצורך סטטיסטיקות. - לא - ``2000`` - ``4000`` - Bot/WebApp * - ``HTTP_SAMPLE_RETENTION_SECONDS`` - זמן שמירת הדגימות (שניות) לפני שמנקים אותן. - לא - ``600`` - ``1200`` - Bot/WebApp * - ``RECENT_ERRORS_BUFFER`` - מספר השגיאות האחרונות שמוצגות ב-ChatOps (Deque). - לא - ``200`` - ``400`` - Bot/ChatOps * - ``MEMORY_USAGE_THRESHOLD_PERCENT`` - אחוז שימוש בזיכרון שמפעיל התראות חיזוי (למשל 85%). - לא - ``85`` - ``90`` - Bot * - ``OTEL_EXPORTER_INSECURE`` - כאשר ``true`` מאפשר שימוש ב-OTLP gRPC ללא TLS (למטרות לוקאליות). - לא - ``false`` - ``true`` - Bot/WebApp * - ``OTEL_EXPORTER_OTLP_ENDPOINT`` - כתובת OTLP כללית (gRPC/HTTP) לייצוא traces/metrics אם אין חלוקה. - לא - "" (ריק) - ``https://otel-collector:4317`` - Bot/WebApp * - ``OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`` - כתובת ייעודית למטריקות OTLP (אם שונה מה-endpoint הראשי). - לא - "" (ריק) - ``https://otel-collector:4318/v1/metrics`` - Bot/WebApp * - ``OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`` - כתובת ייעודית ל-traces OTLP. - לא - "" (ריק) - ``https://otel-collector:4318/v1/traces`` - Bot/WebApp * - ``PROMETHEUS_URL`` - בסיס URL ל-Prometheus HTTP API. אם מוגדר, דשבורד ה-Observability ישתמש ב-Prometheus ל-timeseries במקום קריאה מ-MongoDB. - לא - "" (ריק) - ``https://prometheus.example.com`` - WebApp/Observability * - ``PROMETHEUS_RATE_WINDOW`` - חלון ברירת מחדל ל-``rate()``/``histogram_quantile()`` ב-PromQL (למשל ``5m``). משפיע על החלקת גרפים בדשבורד. - לא - ``5m`` - ``1m`` - WebApp/Observability * - ``PREDICTION_MAX_AGE_SECONDS`` - כמה זמן לשמור קבצי חיזוי/תקריות לפני ניקוי (ברירת מחדל 24 שעות). - לא - ``86400`` - ``43200`` - Bot * - ``PREDICTIVE_MODEL`` - סוג המודל לחיזוי (``exp_smoothing`` או ``linear``). - לא - ``exp_smoothing`` - ``linear`` - Bot * - ``PREDICTIVE_HALFLIFE_MINUTES`` - זמן מחצית החיים בדקות ל-weighting של EW regression. - לא - ``30`` - ``15`` - Bot * - ``PREDICTIVE_HORIZON_SECONDS`` - טווח החיזוי (שניות קדימה) לפני שמכריזים על סכנה קרובה. - לא - ``900`` - ``600`` - Bot * - ``PREDICTIVE_FEEDBACK_INTERVAL_SEC`` - כל כמה שניות נמדדת דיוק ההחיזוי (feedback loop). - לא - ``300`` - ``120`` - Bot * - ``PREDICTIVE_CLEANUP_INTERVAL_SEC`` - כל כמה זמן לנקות חיזויים ו-incidents ישנים. - לא - ``3600`` - ``900`` - Bot * - ``PREDICTIVE_SAMPLER_ENABLED`` - מפעיל את ה-sampler שרץ ברקע ואוסף מדידות לטובת החיזוי. - לא - ``true`` - ``false`` - Bot * - ``PREDICTIVE_SAMPLER_METRICS_URL`` - בסיס ה-URL שממנו הסמפולר קורא סטטיסטיקות (ברירת מחדל: ``WEBAPP_URL``/``PUBLIC_BASE_URL``). - לא - "" (auto) - ``https://internal-observability/api`` - Bot * - ``PREDICTIVE_SAMPLER_INTERVAL_SECS`` - תדירות ריצה של הסמפולר (שניות). - לא - ``60`` - ``30`` - Bot * - ``PREDICTIVE_SAMPLER_FIRST_SECS`` - דילי לפני ריצת הסמפולר הראשונה. - לא - ``10`` - ``5`` - Bot * - ``PREDICTIVE_SAMPLER_RUN_IN_TESTS`` - כאשר ``true`` הסמפולר רץ גם במהלך Pytest (ברירת מחדל כבוי כדי לא להאריך טסטים). - לא - ``false`` - ``true`` - Bot תפעול, אינטגרציות ופיצ'רים --------------------------- .. list-table:: Operations & Feature Flags :header-rows: 1 * - משתנה - תיאור - חובה - ברירת מחדל - דוגמה - רכיב * - ``BACKUPS_STORAGE`` - בחירת מנגנון גיבוי: ``mongo`` (GridFS) או ``fs`` (מערכת קבצים מקומית). - לא - ``mongo`` - ``fs`` - Bot/WebApp * - ``BACKUPS_DIR`` - נתיב גיבויים בלוקאל (אם ``BACKUPS_STORAGE=fs``); אחרת נבחר אוטומטית. - לא - נתיב ברירת מחדל (``/app/backups``) - ``/var/lib/codebot/backups`` - Bot/WebApp * - ``BACKUPS_SHOW_ALL_IF_EMPTY`` - כאשר ``true`` מאפשר לממשק להציג את כל הקבצים גם כשאין פילטר (שימושי ל-ops). - לא - ``false`` - ``true`` - Bot * - ``CACHE_WARMING_ENABLED`` - מפעיל חימום קאש מתוזמן לאחר אתחול. - לא - ``true`` - ``false`` - Bot * - ``CACHE_WARMING_BUDGET_SECONDS`` - תקציב הזמן המרבי ללופ החימום (מונע עיכובים ארוכים). - לא - ``5.0`` - ``0.2`` - Bot * - ``CACHE_WARMING_INTERVAL_SECS`` - כל כמה זמן (שניות) להריץ warming job. - לא - ``900`` - ``300`` - Bot * - ``CACHE_WARMING_FIRST_SECS`` - דילי לפני ריצת ה-warming הראשונה אחרי עלייה. - לא - ``45`` - ``5`` - Bot * - ``DISABLE_ACTIVITY_REPORTER`` - 1/``true`` מדליק קצר את דיווחי activity (שימושי בטסטים/לוקאל). - לא - ``0`` - ``1`` - Bot * - ``DISABLE_DB`` - עוקף כל אינטראקציה עם MongoDB (בדרך כלל לטסטים). - לא - ``false`` - ``true`` - Bot/WebApp * - ``DISABLE_WEEKLY_REPORTS`` - מדליק/מכבה שליחת דו"חות שבועיים (reminders). - לא - ``false`` - ``true`` - Bot * - ``DUMMY_BOT_TOKEN`` - טוקן בדיקה שמשמש סביבות שבהן אין צורך להתחבר לטלגרם (למשל docs build). - לא - ``dummy_token`` - ``test_token`` - Bot/WebApp * - ``DRIVE_RESCHEDULE_BOOTSTRAP_DELAY`` - כמה שניות להמתין לפני תחילת משימות ה-Drive rescheduler. - לא - ``5`` - ``1`` - Bot * - ``DRIVE_RESCHEDULE_FIRST_DELAY`` - דילי לכל משימת שמירה/Keepalive הראשונה. - לא - ``60`` - ``10`` - Bot * - ``DRIVE_RESCHEDULE_INTERVAL`` - הפרש זמנים בין הריצות הבאות של ה-Drive rescheduler. - לא - ``900`` - ``300`` - Bot * - ``APSCHEDULER_COLLECTION`` - שם קולקשן ברירת המחדל עבור משימות APScheduler כאשר נשמרות ב-MongoDB. - לא - ``scheduler_jobs`` - ``scheduler_jobs_eu`` - Bot * - ``WEEKLY_REPORT_DELAY_SECS`` - כמה זמן להמתין אחרי עלייה לפני הפעלת job הדו"חות השבועיים. - לא - ``3600`` - ``600`` - Bot * - ``RATE_LIMIT_SHADOW_MODE`` - במצב ``true`` המגביל רק סופר חריגות ולא חוסם משתמשים (לבדיקות/דרג). - לא - ``false`` - ``true`` - Bot/WebApp * - ``ALLOW_SEED_NON_LOCAL`` - מאפשר לסקריפט ה-seed לרוץ גם כשכתובת ה-Mongo אינה לוקאלית (לברירת מחדל אסור). - לא - ``false`` - ``true`` - Scripts * - ``CHATOPS_ALLOW_ALL_IF_NO_ADMINS`` - כאשר ``true`` ואם ``ADMIN_USER_IDS`` ריק, כל משתמש נחשב אדמין (מתאים לסביבות dev). - לא - ``false`` - ``true`` - Bot/ChatOps * - ``USE_NEW_SAVE_FLOW`` - מפעיל את מסלול השמירה המחודש (ניסיוני) בהנדלרים של save. - לא - ``false`` - ``true`` - Bot * - ``REFACTOR_LAYERED_MODE`` - 1/``true`` מחייב את מנוע הרה-פקטור לפעול במצב IA Layered (בדיקות/POC). - לא - ``false`` - ``true`` - Bot * - ``PASTEBIN_API_KEY`` - מפתח API עבור Pastebin ליצירת לינקים שיתופיים. - לא - "" (ריק) - ``pastebin_key`` - Bot/WebApp * - ``WEBAPP_LOGIN_SECRET`` - סוד משותף בין הבוט לוובאפ לטובת אימות single-sign-on. - לא - "" (ריק) - ``super-shared-secret`` - WebApp/Bot * - ``SUPPORT_EMAIL`` - כתובת דוא"ל שמוצגת בהודעות ומספקת fallback ל-``VAPID_SUB_EMAIL``. - לא - "" (ריק) - ``support@example.com`` - Bot/WebApp * - ``TOKEN_ENC_KEY`` - מפתח Fernet (Base64) להצפנת טוקנים רגישים במסד (ראה ``docs/SECURITY_TOKENS``). - לא - "" (ריק) - ``Cr4ZEXxx...`` - Bot * - ``PUSH_CLAIM_TTL_SECONDS`` - משך הזמן שבו claim של תזכורת push נחשב בתוקף לפני שמשחררים אותו. - לא - ``60`` - ``120`` - Bot/WebApp * - ``PUSH_DELIVERY_URGENCY`` - Urgency header לברירת מחדל ב-Web Push (``very-low``/``low``/``normal``/``high``). - לא - ``high`` - ``low`` - WebApp * - ``PUSH_SEND_INTERVAL_SECONDS`` - מרווח ההמתנה בין סריקות מתוזמנות של תזכורות push. - לא - ``60`` (מינימום 20) - ``30`` - WebApp * - ``GITHUB_API_BASE_DELAY`` - דילי בסיסי בין בקשות GitHub כדי להישאר מתחת לרף rate-limit. - לא - ``2.0`` - ``1.0`` - Bot/ChatOps * - ``GITHUB_BACKOFF_DELAY`` - מקדם backoff (שניות) שמתווסף בכל ניסיון כושל לקריאות GitHub. - לא - ``5.0`` - ``3.0`` - Bot/ChatOps * - ``GITHUB_NOTIFICATIONS_PR_MIN_COOLDOWN`` - קירור (דקות) בין שליחת התראות PR באותו ערוץ כדי למנוע הצפה. - לא - ``30`` - ``10`` - Bot/ChatOps * - ``LOG_AGG_ECHO`` - כאשר ``true`` סקריפט ``run_log_aggregator`` ידפיס לשגיאה כל שורה שנקלטה כ-match (לדיבוג). - לא - ``0`` - ``1`` - Scripts * - ``LOG_AGG_RELOAD_SECONDS`` - כל כמה שניות סקריפט הלוג-אגגרטור יטען מחדש את קבצי החתימות. - לא - ``60`` - ``10`` - Scripts * - ``LOCK_MAX_WAIT_SECONDS`` - (Legacy) כמה זמן לחכות ללוק לפני שמתייאשים (``0`` = המתנה אינסופית). הוחלף ע"י ``LOCK_ACQUIRE_MAX_WAIT``. - לא - ``0`` - ``15`` - Bot * - ``LOCK_RETRY_INTERVAL_SECONDS`` - זמן המתנה בין ניסיונות נעילה חוזרים (בעיקר במצב המתנה אקטיבית). נשמר לתאימות. - לא - ``1`` - ``1`` - Bot * - ``SERVICE_ID`` - מזהה ייחודי לשירות/סביבה עבור נעילה מבוזרת (משמש כ־``_id`` במסמך הנעילה). אם לא מוגדר, נופל ל־``code_keeper_bot_lock``. - לא - ``code_keeper_bot_lock`` (fallback) - ``codebot-prod`` - Bot * - ``RENDER_INSTANCE_ID`` - מזהה אינסטנס בפלטפורמת Render (נשמר במסמך הנעילה לצורכי תחקור). ה-``owner`` בפועל הוא מזהה תהליך ייחודי: ``RENDER_INSTANCE_ID:pid``. אם לא מוגדר, ה-``owner`` נופל ל־``hostname:pid``. - לא - ``hostname:pid`` (fallback) - ``srv-abc123`` - Bot * - ``RENDER_SERVICE_NAME`` - תווית host/service לתחקור במסמך הלוק. אם לא מוגדר, נופל ל־``HOSTNAME``/hostname. - לא - ערך מערכת (fallback) - ``codebot`` - Bot * - ``LOCK_LEASE_SECONDS`` - משך ה־lease (שניות) של נעילה מבוזרת ב־MongoDB. - לא - ``10`` - ``10`` - Bot * - ``LOCK_HEARTBEAT_INTERVAL`` - תדירות heartbeat (שניות) לרענון ה־lease. ברירת מחדל: ``3`` (מינימום 3). - לא - ``3`` - ``3`` - Bot * - ``LOCK_WAIT_FOR_ACQUIRE`` - אם ``true``: המתנה אקטיבית ללוק עם retries קצרים; אם ``false``: המתנה פסיבית עם jitter (ברירת מחדל) כדי למנוע restart-loop. - לא - ``false`` - ``true`` - Bot * - ``LOCK_ACQUIRE_MAX_WAIT`` - מגבלת זמן (שניות) במצב המתנה אקטיבית. ``0`` = ללא מגבלה. (אליאס תאימות: ``LOCK_MAX_WAIT_SECONDS``). - לא - ``0`` - ``90`` - Bot * - ``LOCK_WAIT_MIN_SECONDS`` - מינימום זמן המתנה (שניות) במצב המתנה פסיבית עם jitter. - לא - ``15`` - ``10`` - Bot * - ``LOCK_WAIT_MAX_SECONDS`` - מקסימום זמן המתנה (שניות) במצב המתנה פסיבית עם jitter. - לא - ``45`` - ``60`` - Bot * - ``LOCK_FAIL_OPEN`` - אם ``true`` מאפשר עלייה "ללא לוק" במקרה חריגות ברכישת נעילה (לא מומלץ). ברירת מחדל: fail-closed. - לא - ``false`` - ``true`` - Bot * - ``LOCK_WAIT_HEALTH_SERVER_ENABLED`` - אם ``true`` ובקיום ``PORT``: בעת המתנה ללוק מופעל שרת HTTP מינימלי עם ``/health`` ו־``/healthz`` כדי לעבור health checks. - לא - ``true`` - ``false`` - Bot * - ``LOCK_PORT_GUARD_ENABLED`` - אם ``true``: תופס פורט לוקאלי כדי למנוע שני תהליכים באותו worker. אם הפורט תפוס → יציאה. - לא - ``false`` - ``true`` - Bot * - ``LOCK_PORT_GUARD_PORT`` - פורט לוקאלי לשמירה על בלעדיות תהליך (נדרש רק אם ``LOCK_PORT_GUARD_ENABLED=true``). - לא - ``9999`` - ``9999`` - Bot * - ``LOCK_COLLECTION`` - שם קולקציית ה־locks ב־MongoDB (ברירת מחדל legacy: ``locks``). - לא - ``locks`` - ``bot_locks`` - Bot * - ``APP_VERSION`` - מחרוזת גרסה שמוזנת מהפלטפורמה (Render/Heroku) לצורכי Telemetry. - לא - "" (ריק) - ``2025.12.1`` - Bot/WebApp * - ``ASSET_VERSION`` - מזהה לצורך cache-busting של קבצי סטטיק (נוסף ל-query param). - לא - "" (ריק) - ``78f3dea`` - WebApp * - ``DEPLOYMENT_TYPE`` - מחרוזת תיאור (למשל ``render``, ``kubernetes``) שמופיעה בלוגים/טופס סטטוס. - לא - "" (ריק) - ``kubernetes`` - Bot/WebApp * - ``ENV`` - שם סביבת הריצה (fallback כאשר ``ENVIRONMENT`` לא מוגדר). - לא - ``production`` - ``staging`` - Bot/WebApp * - ``GIT_COMMIT`` / ``RENDER_GIT_COMMIT`` / ``HEROKU_SLUG_COMMIT`` / ``SOURCE_VERSION`` - מזהי הקומיט כפי שמוזנים ע"י הפלטפורמה; מופיעים בדוחות גרסה. - לא - "" (ריק) - ``cafe123`` - Bot/WebApp * - ``HOSTNAME`` - שם המכונה המדווח בלוגים / ב-claim של push (לרוב מוזן ע"י התשתית, אבל ניתן לעקוף). - לא - ערך מערכת - ``codebot-worker-1`` - Bot/WebApp * - ``MONGODB_COMPRESSORS`` - רשימת הקומפרסורים שהקליינט יבקש מ-Mongo (למשל ``zstd,snappy``). - לא - "" (Auto) - ``zstd,snappy`` - Bot/WebApp * - ``MONGO_URI`` / ``MONGO_DB_NAME`` - אליאסים המשמשים סקריפטי עזר (כמו setup_bookmarks) כאשר אין ``MONGODB_URL``/``DATABASE_NAME``. - לא - ``""`` / ``code_keeper_bot`` - ``mongodb://localhost:27017`` / ``my_db`` - Scripts דגלי בדיקות ופיתוח ------------------- .. list-table:: Dev & Testing Flags :header-rows: 1 * - משתנה - תיאור - חובה - ברירת מחדל - דוגמה - רכיב * - ``ONLY_LIGHT_PERF`` - כאשר ``1`` תוסף הביצועים מריץ רק טסטים מסומנים כ"קלים" ומדלג על כבדים. - לא - ``0`` - ``1`` - Tests * - ``PERF_HEAVY_PERCENTILE`` - אחוזון שמפריד בין טסטים "כבדים" ל"קלים" (ברירת מחדל 90). - לא - ``90`` - ``75`` - Tests * - ``PYTEST`` / ``PYTEST_CURRENT_TEST`` / ``PYTEST_RUNNING`` - דגלים שמאותתים לקוד שאנו בתוך Pytest (למשל כדי לנטרל Jobs). Pytest מגדיר אותם אוטומטית. - לא - "" (ריק) - ``1`` - Bot/WebApp * - ``SPHINX_MOCK_IMPORTS`` - 1/``true`` גורם ל-build של התיעוד למקם מודולים בעזרת mocks במקום לייבא בפועל. - לא - ``false`` - ``true`` - Docs * - ``SANITY_USER_ID`` - מזהה משתמש לדגימת בדיקת latency בסקריפט ``scripts/db_manager_sanity_check.py`` (לא משפיע על ריצה רגילה של המערכת). - לא - ``123`` - ``6865105071`` - Scripts * - ``PIP_NO_SETUPTOOLS`` / ``PIP_NO_WHEEL`` - דגלים של סקריפט ``get-pip.py`` בלבד; השאירו כבויים אלא אם מריצים את הסקריפט כחלק מאוטומציה. - לא - "" (ריק) - ``1`` - Tooling דוגמאות קונפיגורציה -------------------- Development:: BOT_TOKEN=your_bot_token_here MONGODB_URL=mongodb://localhost:27017 DATABASE_NAME=code_keeper_dev LOG_LEVEL=DEBUG Staging:: BOT_TOKEN=staging_bot_token MONGODB_URL=mongodb+srv://user:pass@cluster.mongodb.net DATABASE_NAME=code_keeper_staging LOG_LEVEL=INFO REDIS_URL=redis://staging-redis:6379 Production:: BOT_TOKEN=prod_bot_token MONGODB_URL=mongodb+srv://user:pass@prod-cluster.mongodb.net DATABASE_NAME=code_keeper_prod LOG_LEVEL=WARNING REDIS_URL=redis://prod-redis:6379 ENCRYPTION_KEY=your-32-byte-encryption-key קישורים ------- - :doc:`installation` - :doc:`configuration` - `SECURITY_TOKENS (מסמך ריפו)` `_ טבלת Scopes לפיצ'רים של GitHub -------------------------------- .. list-table:: Feature → Required Scopes :header-rows: 1 * - Feature - Required Scopes * - Create Pull Request - ``repo``, ``workflow`` * - Write files (Trees/Contents API) - ``repo`` * - Read repository metadata (branches, commits, PRs) - ``repo`` * - Trigger workflows / read checks status - ``workflow`` הערה: הקפידו להעניק הרשאות מינימליות בלבד. לפרטים נוספים ראו :doc:`integrations`.