טיוטה. דורש בדיקת עורך דין לפני פרסום.
| גרסה | 0.2 (טיוטה) |
| נכון ל־ | 2026-08-23 |
| חל על | WIFIX (אפליקציית הלקוח) ו־WIFIX Pro (אפליקציית בעל המקצוע) |
| מקור | נגזר מ־supabase/migrations/*.sql ומ־ADR 0003. אינו תבנית. |
המסמך הזה מתאר את מה שהמערכת אוספת בפועל, לפי סכימת בסיס הנתונים.
כל שדה שמוזכר כאן קיים בקוד, וכל שדה שקיים בקוד מוזכר כאן. כשמשתנה
הסכימה — משתנה גם המסמך הזה, באותו Commit.
מקומות המסומנים … הם פרטים שאין להם עדיין תשובה בפרויקט (ישות
משפטית, כתובת, ספקים שטרם נבחרו). grep -n '\[\[' docs/legal/ מוצא את
כולם.
WIFIX מופעלת על ידי שם החברה המלא + ח.פ., מ־כתובת רשומה
(להלן "אנחנו", "WIFIX").
WIFIX היא פלטפורמת תיווך. אנחנו מחברים בין לקוח שיש לו תקלה לבין
בעל מקצוע עצמאי שיכול לטפל בה. איננו נותני השירות, איננו מעסיקים
את בעלי המקצוע, ואיננו צד לעסקה ביניהם. המשמעות המשפטית המלאה של
ההבחנה הזו — מי אחראי לעבודה, ומה קורה בנזק — מפורטת בתנאי השימוש
(terms-he.md) ואינה חוזרת כאן.
ההבחנה הזו רלוונטית גם לפרטיות: כשאנחנו מעבירים את מספר הטלפון שלך
לצד השני בעסקה, הוא הופך לבעל שליטה עצמאי במידע הזה, ולא רק "מקבל
מידע" מאיתנו. סעיף 5 מסביר בדיוק מתי זה קורה.
המסמך אחד, אבל האיסוף שונה מהותית בין השניים. ההבדל המרכזי:
| לקוח (WIFIX) | בעל מקצוע (WIFIX Pro) | |
|---|---|---|
| מיקום ברקע | לא נאסף. לעולם. | נאסף — רק במצב "זמין" או בעבודה פעילה |
| כתובת מדויקת | נאספת (לשם מגיעים) | לא נאספת |
| הרשאת מיקום | WhenInUse בלבד | Always (נדרש לרקע) |
אפליקציית הלקוח אינה מבקשת מיקום ברקע בכוונה, וזו החלטה מתועדת
(ADR 0004, ADR 0003).
| מה | מאיפה | טבלה · עמודה |
|---|---|---|
| מספר טלפון | אתה מזין אותו לצורך התחברות | auth.users (Supabase Auth), ומשוכפל ל־profiles.phone |
| שם מלא | אתה מזין אותו במסך השלמת הפרופיל | profiles.full_name |
| סוג המשתמש | נקבע לפי האפליקציה שדרכה נרשמת | profiles.role |
| מועד ההרשמה | אוטומטי | profiles.created_at |
| דוא"ל ליצירת קשר | אתה מזין אותו, או שהוא מגיע מהחשבון שאיתו נכנסת | profiles.email |
| דרך הכניסה — SMS, דוא"ל, Google או Apple | נקבע לפי מה שבחרת | auth.identities (Supabase Auth) |
| סיסמה, אם בחרת בכניסה עם דוא"ל | אתה מזין אותה | auth.users, מאוחסנת כגיבוב בלבד — איננו יכולים לקרוא אותה |
מספר הטלפון נדרש תמיד, גם למי שנכנס עם Google או Apple. לא בגלל
מגבלה טכנית: בעל המקצוע מתקשר אליך כשהוא בדלת, וזה הערוץ היחיד
שעובד גם כשהאפליקציה לא. הכניסה עם Google מחליפה את הסיסמה, לא את
האימות בטלפון.
כשאתה נכנס עם Google או Apple איננו מקבלים גישה לחשבון שלך שם.
אנחנו מקבלים מהם מזהה וכתובת דוא"ל, ותו לא — לא אנשי קשר, לא יומן,
לא קבצים. את פרופיל המשתמש המלא שהם שולחים איננו קוראים ואיננו
משתמשים בו.
מה שעדיין לא נאסף: תאריך לידה, מגדר, פרטי בנק.
בסכימה קיימת גם עמודת profiles.avatar_url. **היא אינה נכתבת בשום
מקום בקוד היום** — אין באפליקציות מסלול להעלאת תמונת פרופיל. היא
מופיעה כאן כי היא קיימת, ולא כי היא מלאה.
| מה | טבלה · עמודה |
|---|---|
| שם עסק, שנות ניסיון, תיאור חופשי | professionals.business_name, .years_experience, .bio |
| קטגוריות שירות ומותגים | professional_categories.category_id, .brands |
| אזור שירות: נקודת בסיס ורדיוס | professional_service_areas.base_location, .radius_km |
| סטטוס אימות (זהות · רישיון · ביטוח) | professionals.id_verified, .license_verified, .insurance_verified, .verified_at |
| מדדי ביצוע: דירוג ממוצע, עבודות שהושלמו, שיעור קבלה, שיעור ביטול, זמן תגובה ממוצע | professionals.rating_avg, .jobs_completed, .acceptance_rate, .cancellation_rate, .avg_response_secs |
| חותמות הסכמה: תנאי שימוש, הסכמה למיקום | professionals.terms_accepted_at, .location_consent_at |
| צליל ההתרעה שבחרת | professionals.alert_sound |
גרסה 0.1 של המסמך הזה קבעה ש"המערכת אינה שומרת את המסמכים עצמם".
זה נכון היה עד מיגרציה 0023, ואינו נכון היום. מאז נוסף מסלול
העלאה, והמערכת שומרת את הצילומים. השורה תוקנה כאן ב-23.8.2026.
| מה | איפה |
|---|---|
| צילום תעודת זהות | קובץ בדלי אחסון פרטי. הנתיב ב-professional_documents.storage_path |
| צילום רישיון מקצועי | אותו מקום |
| אישור ביטוח, אם הוגש | אותו מקום |
| מספר הרישיון ותוקפו | professional_category_status |
| החלטת הבודק, מועדה ונימוק הדחייה | professional_documents.status, .reviewed_at, .reject_reason |
למה זה נשמר בכלל: אי אפשר לאשר חשמלאי בלי לראות את הרישיון שלו.
זו חובה כלפי הלקוח שמכניס אותו לבית, ובלעדיה כל אחד יכול להצהיר על
עצמו כבעל מקצוע מורשה.
כמה זמן: הצילום נמחק מהאחסון אחרי שההחלטה התקבלה, בהשהיה שנועדה
לאפשר ערעור על דחייה. ההחלטה נשארת מתועדת — הצילום לא. מרגע
המחיקה, file_present מסומן כבוי והקובץ אינו קיים.
מי רואה: בודק במערכת רואה מסמך רק כל עוד הוא ממתין להחלטה.
אחרי ההכרעה הגישה נסגרת גם לו. בעל המקצוע רואה רק את שלו. הלקוח אינו
רואה מסמכים בשום שלב — הוא רואה את סטטוס האימות בלבד.
מספטמבר 2026 אנחנו רושמים את מספר תעודת הזהות של בעל המקצוע
בעת בדיקת המסמך. הצילום עצמו נמחק מהאחסון אחרי ההחלטה, כפי שהיה
תמיד.
המספר עצמו אינו נשמר. מה שנשמר הוא גיבוב (hash) חד-כיווני
שלו, בשיטת bcrypt. אי אפשר לשחזר ממנו את המספר, וכל מה שאפשר לעשות
איתו הוא להשוות מספר שמישהו מסר עכשיו למול מה שנרשם.
למה בכלל: זהו המזהה היחיד שאדם אינו יכול להחליף. בלעדיו, מי שנחסם
מהאפליקציה בגלל התנהלות מול לקוחות פשוט נרשם מחדש עם מספר טלפון
אחר. הגיבוב משמש אך ורק לשתי בדיקות בעת אישור מסמך: האם המספר
כבר רשום לאדם אחר, והאם הוא ברשימת החסומים.
הוא אינו משמש לשום דבר אחר, אינו נמסר לאיש, ואינו מוצג בשום מסך.
מה שעדיין נכון: אין פרטי בנק. הבריף מזכיר "פרטי בנק" כחלק
מאימות עתידי; הם אינם קיימים בסכימה ואינם נאספים היום.
base_location היא נקודת המוצא שממנה נמדד המרחק לעבודות. בפועל זו
לרוב כתובת העסק או הבית. היא נשמרת עד שתשנה אותה או תמחק את החשבון, והיא
נפרדת מהמיקום החי (סעיף 4).
| מה | טבלה · עמודה |
|---|---|
| שם הכתובת ("בית", "משרד") | customer_addresses.label |
| עיר, רחוב, מספר, דירה, כניסה, קומה | customer_addresses.city, .street, .house_number, .apartment, .entrance, .floor |
| הערות לבעל המקצוע | customer_addresses.notes |
| נקודה גאוגרפית, אם מופתה | customer_addresses.location |
notes הוא השדה הרגיש ביותר בחשבון שלך. הוא נועד ל"קוד בשער",
"הדלת מימין למעלית", "כלב בחצר" — כלומר מידע שמאפשר להיכנס לבית
שלך. הוא מוגן בהרשאות ברמת השורה כמו כל השאר, אך שים לב למה אתה
כותב בו: הוא נמסר לבעל המקצוע ששובץ לעבודה בכתובת הזו.
הכתובות השמורות הן נוחות בלבד. הן ממלאות את הטופס מראש ואינן
מקושרות להזמנות: בקשה שולחת את הכתובת כטקסט משלה, וכך מחיקת כתובת
שמורה אינה מוחקת את הרישום של היכן בוצעה עבודה בעבר.
במחיקת חשבון הן נמחקות במלואן — גם במסלול האנונימיזציה, שבו
רשומת העסקה עצמה נשארת.
| מה | טבלה · עמודה |
|---|---|
| טקסט חופשי שכתבת על התקלה | service_requests.raw_text |
| תמונות שצילמת או העלית | service_requests.media_urls → דלי request-media |
| סוג הקלט | service_requests.input_type |
| מיקום הבקשה (נקודה גאוגרפית) | service_requests.location |
| כתובת שהזנת כטקסט | service_requests.address_text |
| דחיפות, ומועד מבוקש אם תיאמת | service_requests.urgency, .scheduled_for |
| קטגוריה | service_requests.category_id |
| סיכום ה־AI, רמת ביטחון, ומטא־נתונים (מותג, דגם, מורכבות) | service_requests.ai_summary, .ai_confidence, .ai_metadata |
| טווח המחיר שהוצג | service_requests.price_type, .price_min, .price_max |
| סטטוס הבקשה וחותמות הזמן שלה | service_requests.status, .created_at, .dispatching_at, .matched_at |
הטקסט החופשי הוא השדה הרגיש ביותר כאן. אתה כותב אותו, ואיננו
מגבילים את תוכנו. אם תכתוב בו פרטים שאינם נחוצים לתיקון — מתי אתה
לבד בבית, קוד לדלת, מצב בריאותי — הם יישמרו כפי שנכתבו וייחשפו לבעל
המקצוע שיקבל את העבודה. **אל תכתוב שם מה שלא היית אומר לבעל מקצוע
בטלפון.**
התמונות יושבות בדלי אחסון פרטי (request-media), בהגבלה של 10MB
לקובץ. אין להן כתובת ציבורית: הגישה אליהן נשלטת בהרשאות ברמת השורה,
ולקוח יכול לקרוא ולמחוק רק את התיקייה שנושאת את המזהה שלו.
על מיקרופון והקלטה קולית: באפליקציית הלקוח מופיע כפתור "דבר
איתנו", ומניפסט האפליקציה מבקש הרשאת מיקרופון. **הקלטה קולית אינה
ממומשת היום** — הכפתור אינו מקליט דבר, ואין באפליקציית הלקוח ספריית הקלטה.
לכן לא נאספות הקלטות קול. ההרשאה במניפסט מקדימה את המימוש, וזו
אי־התאמה שיש לתקן לפני הגשה לחנויות (ראה
README.md).
| מה | טבלה · עמודה |
|---|---|
| למי נשלחה הצעה, באיזה גל, ומה היה הציון | dispatch_offers.professional_id, .wave_number, .score |
| מרחק וזמן הגעה משוער בהצעה | dispatch_offers.distance_km, .eta_minutes |
| מתי נשלחה, מתי פגה, מתי ואיך נענתה | dispatch_offers.sent_at, .expires_at, .responded_at, .outcome |
| העבודה עצמה: מי, עם מי, ובאיזה שלב | jobs.professional_id, .customer_id, .status |
| חותמות מחזור החיים | jobs.accepted_at, .arrived_at, .started_at, .completed_at, .cancelled_at |
| ביטול: מי ביטל ומה נימק | jobs.cancelled_by, .cancel_reason |
cancel_reason הוא טקסט חופשי, וחלה עליו אותה אזהרה כמו על raw_text.
| מה | טבלה · עמודה |
|---|---|
| סכום שנתפס, סכום סופי, עמלת הפלטפורמה, הנטו לבעל המקצוע | payments.authorized_amount, .final_amount, .platform_fee, .professional_net |
| סטטוס וחותמות זמן | payments.status, .authorized_at, .captured_at, .refunded_at |
| מזהה העסקה אצל ספק הסליקה | payments.provider_ref |
| זהות הספק | payments.provider |
אין אצלנו פרטי כרטיס אשראי. אין בסכימה שדה למספר כרטיס, לתוקף או
ל־CVV, ואיסור השמירה מתועד בהערה בסכימה עצמה ובהחלטה
(ADR 0005). כשתופעל סליקה אמיתית,
הכרטיס יעבור טוקניזציה אצל ספק הסליקה, ואצלנו יישמר רק המזהה
(provider_ref) שמפנה לעסקה שם.
נכון להיום provider הוא mock ולא עוברת דרכנו אגורה. בשלב
הפיילוט התשלום מתבצע ישירות בין הלקוח לבעל המקצוע, והמערכת רק מתעדת
את הסכום. ספק הסליקה למסחרי הוא טרם נבחר.
| מה | טבלה · עמודה |
|---|---|
| ציון 1–5 | reviews.rating |
| טקסט חופשי | reviews.comment |
| מי כתב, על מי, ועל איזו עבודה | reviews.customer_id, .professional_id, .job_id |
הדירוג והטקסט מוצגים בפומבי; זהות הכותב לא. התצוגה הציבורית עוברת
דרך public_reviews, שמחזירה מזהה, בעל מקצוע, ציון, טקסט ותאריך —
ובמכוון אינה מחזירה את customer_id. מי שכתב ביקורת אינו חלק ממה
שהציבור רואה.
אם תכתוב את שמך בתוך הטקסט, הוא יופיע. אנחנו לא מסירים אותו.
| מה | טבלה · עמודה |
|---|---|
| טוקן ההתראות של המכשיר | push_tokens.token |
| פלטפורמה (iOS/Android) | push_tokens.platform |
| מתי נרשם, מתי נראה לאחרונה, ומתי בוטל | push_tokens.created_at, .last_seen_at, .disabled_at |
| החשבון הקודם שהחזיק בטוקן, אם היה | push_tokens.previous_user_id |
previous_user_id נשמר כדי שנוכל לזהות מכשיר שעבר בין חשבונות — הגנה
מפני ניסיון לחטוף התראות של משתמש אחר, לא מעקב אחר המכשיר.
מי שממלא את טופס ההצטרפות באתר מוסר לנו שם, מספר נייד, מקצועות, אזור
עבודה, ואם רצה — הערה חופשית. הפרטים משמשים רק כדי לחזור אליו בנוגע
להצטרפות ל-WIFIX. הם אינם מוצגים לאף אחד מחוץ לצוות, ואינם משמשים
לשיווק. פנייה שלא הבשילה להצטרפות נמחקת שנה אחרי העדכון האחרון בה.
אפשר לבקש למחוק אותה קודם, כמו כל מידע אחר (סעיף 8).
מי שכותב לנו דרך הטופס באתר מוסר שם, נושא, את ההודעה, ומייל או טלפון כדי
שנוכל לחזור אליו. ההודעה נשמרת אצלנו ונשלחת לתיבת הדואר של הצוות (Google
Gmail), ומשמשת רק לטיפול בפנייה. היא נמחקת אצלנו שנה אחרי שהתקבלה.
כדי שלא יהיה ספק, ובניגוד למקובל באפליקציות דומות:
App Tracking Transparency אינו נדרש).נאסף רק כשהאפליקציה פתוחה לפניך (WhenInUse), ורק כדי לקבוע לאן
בעל המקצוע צריך להגיע ולמצוא את הזמינים בקרבתך. הנקודה נשמרת בבקשה
עצמה (service_requests.location). **אפליקציית הלקוח אינה מסוגלת לאסוף
מיקום ברקע** — ההרשאה אינה מבוקשת ואינה מוצהרת במניפסט.
זה האיסוף הרגיש ביותר במערכת, והכלל שמסדיר אותו הוא אחד:
**המיקום נאסף אך ורק כשאתה במצב "זמין" (🟢) או בתוך עבודה פעילה.
במצב "לא זמין" (🔴) הוא אינו נאסף כלל — לא ברקע, ולא בחזית.**
| מצב | תדירות | מה נשמר |
|---|---|---|
| לא זמין | אין איסוף | כלום. המיקום הקודם נמחק |
| זמין, ממתין לעבודה | כל 60–90 שניות, או בתזוזה של 250 מ' | המיקום הנוכחי בלבד |
| בדרך ללקוח | כל 5–10 שניות | המיקום הנוכחי + היסטוריה לעבודה זו |
כיבוי מוחק, לא רק מפסיק. המעבר ל"לא זמין" מאפס את
professional_status.location ואת .location_at. השרת גם דוחה
עדכוני מיקום ממי שאינו במצב זמין, כך שדגימה שיצאה מהמכשיר באיחור אחרי
הכיבוי אינה נשמרת. שני הדברים אכופים בשרת ולא רק באפליקציה, בפונקציות
set_online_status ו־update_my_location.
שתי טבלאות שונות, ובכוונה:
professional_status.location — שורה אחת לכל בעל מקצוע, המיקוםהנוכחי בלבד, נדרסת בכל עדכון. אין בה היסטוריה.
job_location_pings — היסטוריית מסלול, נכתבת **רק במהלך עבודהפעילה**, ומשמשת לבירור מחלוקות ("האם הוא באמת הגיע?"). נמחקת אוטומטית
אחרי 30 יום (purge_old_location_pings).
מחוץ לעבודה פעילה, המערכת אינה מחזיקה שום היסטוריית תנועה של בעל מקצוע.
| מה נחשף | מתי | |
|---|---|---|
| הלקוח → מיקום בעל המקצוע | מיקום חי | רק בעבודה שלו, ורק בין accepted ל־arrived |
| בעל מקצוע → כתובת הלקוח | אזור בלבד (רכיב הכתובת האחרון, בלי רחוב ומספר) | בשלב ההצעה, לפני שהחליט |
| בעל מקצוע → כתובת הלקוח | כתובת מלאה + קואורדינטות | רק אחרי שקיבל את העבודה |
| בעל מקצוע → מיקום עמיתו | לא נחשף. אף פעם | — |
חלוקת השלבים הזו אינה הצהרת כוונות: היא אכופה בפונקציה
my_offer_details, שמחזירה מרחק ואזור ואינה מסוגלת להחזיר כתובת או
קואורדינטות, ובמדיניות requests_read_matched שמתירה קריאת הבקשה
המלאה רק למי שכבר שובץ אליה.
זה השיתוף המשמעותי ביותר, והוא מהות השירות.
| מה | למי | מתי |
|---|---|---|
| שמך | לצד השני בעבודה | רק אחרי שהעבודה שובצה, וכל עוד היא פעילה |
| ~~מספר הטלפון שלך~~ | אינו נמסר עוד | ראה סעיף 8ב |
| כתובתך המלאה + קואורדינטות | לבעל המקצוע ששובץ | אחרי השיבוץ |
| תיאור התקלה והתמונות | לבעל המקצוע ששובץ | אחרי השיבוץ |
| דירוג ממוצע של בעל המקצוע | ללקוח | בשיבוץ |
החשיפה עוברת דרך פונקציה אחת (my_active_job), שמחזירה את פרטי הצד
הנגדי לפי היחס לשורה — לא לפי מה שהאפליקציה מבקשת. היא מפסיקה
להחזיר את הפרטים כשהעבודה נסגרת (הושלמה, שולמה ודורגה).
עד ספטמבר 2026 מסרנו את מספר הטלפון שלך לצד השני בעבודה. הפסקנו.
מה שעובר במקומו הוא צ'אט בתוך האפליקציה. הודעה שנשלחת בו נשמרת
כל עוד ההזמנה קיימת — היא הראיה אם תהיה מחלוקת על מה סוכם.
מספר טלפון שנכתב בתוך הודעה מוסר אוטומטית לפני השמירה. הן שלך
והן של הצד השני. אנחנו מסמנים שההסרה קרתה, כדי לזהות ניסיונות
חוזרים לעקוף את האפליקציה; איננו שומרים את המספר עצמו.
שיחה קולית מתוך האפליקציה, דרך מספר ביניים שאינו של אף אחד מהצדדים,
תיפתח בהמשך. היא אינה פעילה היום.
_(האמור להלן נשאר תקף לתקופה שבה המספרים כן נמסרו, ולכל מקרה שבו
מסרת את מספרך בעצמך.)_
**מרגע שמסרנו את מספר הטלפון שלך לצד השני, אין לנו שליטה על מה שהוא
עושה בו.** אם תתקשרו זה לזה ישירות, השיחה אינה עוברת דרכנו ואיננו
מתעדים אותה.
| ספק | מה מגיע אליו | איפה |
|---|---|---|
| Supabase — בסיס נתונים, אימות, אחסון | הכול | פרנקפורט, גרמניה (eu-central-1) |
| Anthropic — סיווג התקלה (Claude) | הטקסט החופשי שכתבת והתמונות בלבד. לא שם, לא טלפון, לא כתובת, לא מזהה משתמש | ארה"ב — לאמת מול תנאי Anthropic |
| Anthropic — עוזר התמיכה (Claude), כשהוא פעיל | ההודעות שכתבת בפנייה לתמיכה, ופרטי ההזמנות האחרונות שלך כפי שהם מוצגים לך באפליקציה: מספר הזמנה, סוג השירות, תיאור התקלה, מצב, זמנים, מחירים ודמי ביטול. לבעל מקצוע — גם מצב המסמכים והמקצועות. לא שם, לא טלפון, לא כתובת, לא מזהה משתמש, ולא שם הצד השני | ארה"ב — לאמת מול תנאי Anthropic |
| Expo — התראות Push | טוקן המכשיר, וכותרת ההודעה. עבור הלקוח היא כוללת את שם בעל המקצוע וזמן הגעה משוער; עבור בעל המקצוע — שם הקטגוריה בלבד | ארה"ב |
| ספק SMS | מספר הטלפון וקוד ה־OTP | טרם נבחר |
| ספק סליקה | טרם נבחר. אינו פעיל היום — provider = mock | — |
עוזר התמיכה (מאוקטובר 2026, כשהוא פעיל): תשובה אוטומטית מסומנת
באפליקציה "תשובה אוטומטית", ובכל שלב אפשר ללחוץ "להעביר לנציג" ולקבל
מענה מבן אדם. פנייה בנושא נגישות, וכל עניין של כסף, תלונה או בטיחות,
מגיעים תמיד לבן אדם. עורך דין: האם נדרשת הסכמה נפרדת, או שהודעה במדיניות ובמסך מספיקה
מה שאינו נשלח ל־Anthropic ראוי לציון מפורש, כי זו שאלה שנשאלת:
בסיווג, הבקשה מכילה את טקסט התקלה והפניה לתמונות, ותו לא. אין בה שם, טלפון,
כתובת או מזהה משתמש. לאמת מול Anthropic: שמירת נתונים ואי־אימון על פלטי לקוחות בתוכנית המסחרית
דיוק שנוסף ב-0.2, כי הניסוח הקודם היה מטעה: התמונות אינן נשלחות
כקובץ. הבקשה נושאת כתובת URL, והשרת של Anthropic מושך ממנה את
הקובץ מהאחסון שלנו (services/intake/src/classify.ts, type: 'url').
מבחינת המשתמש התוצאה זהה — התמונה מגיעה לספק — אבל התיאור "התמונה
נשלחת" מחמיץ את העובדה שיש גישה יוצאת אל האחסון, וזה הבדל שחשוב
לעורך דין ולבודק אבטחה.
איננו מוכרים מידע אישי, ואיננו משתפים אותו לצורכי פרסום. אין
במערכת מפרסמים, אין רשתות פרסום ואין תיווך נתונים.
נמסור מידע לרשות מוסמכת רק לפי דין מחייב, ובהיקף המזערי הנדרש.
עורך דין: מדיניות בקשות רשויות — האם מודיעים למשתמש, מי מאשר
בסיס הנתונים, האימות והתמונות יושבים בפרנקפורט, גרמניה, בפרויקט
Supabase באזור eu-central-1. גרמניה נמצאת ב־EEA, וכפופה ל־GDPR.
חלק מהספקים בסעיף 5.2 מעבדים מחוץ ל־EEA (Anthropic, Expo). המנגנון
המשפטי להעברה — SCCs או מנגנון אחר — הוא עורך דין: לאמת מול תנאי כל ספק ולתעד.
| מה | כמה זמן | לפי |
|---|---|---|
היסטוריית מיקום בעבודה (job_location_pings) | 30 יום, ואז נמחקת אוטומטית | purge_old_location_pings, ADR 0003 |
| מיקום נוכחי של בעל מקצוע | עד המעבר ל"לא זמין", ואז נמחק מיידית | set_online_status |
| חשבון, בקשות, עבודות, תשלומים, דירוגים | כל עוד החשבון קיים | — |
| טוקן התראות | עד יציאה מהחשבון או ביטול הרשמה | — |
| צילומי תעודה ורישיון | נמחקים מהאחסון אחרי ההכרעה, בהשהיה שמאפשרת ערעור | admin_documents_to_purge, services/purge |
הערת אמת: מלבד היסטוריית המיקום וצילומי התעודות, **אין היום
במערכת מחיקה אוטומטית לפי זמן.** כל השאר נשמר עד מחיקת חשבון.
מדיניות שמירה מלאה — כמה זמן שומרים רשומות תשלום לצורכי מס, מתי
מוחקים חשבון נטוש — היא
עורך דין + רואה חשבון, ומפורטתב־
README.md.
הטלפון אינו ניתן לשינוי** — הוא מזהה החשבון, וטריגר בשרת חוסם את
שינויו.
(מאז 23.8.2026): פרופיל → מחיקת חשבון, בשתי האפליקציות. המסך מציג
מה נמחק ומה נשאר לפני האישור, ולא אחריו.
חשבון ללא היסטוריה נמחק במלואו. חשבון עם היסטוריה עובר אנונימיזציה:
השם, הטלפון, התמונות והטקסטים שכתבת נמחקים; רשומות העסקאות — סטטוס,
סכום, ציון מספרי — נשארות בלי שם ובלי דרך לקשר אותן אליך, כי הן
נושאות חובת תיעוד וכי הצד השני לעסקה אינו אמור לאבד את הדירוג שצבר.
עבודה פעילה חוסמת מחיקה עד לסיומה. הפירוט המלא
ב־data-deletion-he.md.
והאיסוף נפסק והמיקום נמחק מיידית.
לפנייה: privacy@… — לפתוח תיבה. נענה תוך X ימים — לפי הדין החל.
זכות תלונה: הרשות להגנת הפרטיות במשרד המשפטים, ולמי שחל עליו GDPR —
גם רשות הפיקוח באיחוד. עורך דין: איזה דין חל, והאם נדרש נציג באיחוד
כל גישה נדרשת לפוליסה מפורשת.
מקצוע אינו יכול לכתוב לשדות שהמערכת מנהלת — דירוג, שיעור קבלה,
סטטוס אימות — טריגר בשרת חוסם זאת.
הסכימה עברה שלוש סבבי ביקורת אבטחה מתועדים
(ADR 0007,
ADR 0012, ומיגרציות
0006, 0011, 0012, 0015).
טרם קיים: נוהל תגובה לאירוע אבטחה ודיווח על דליפה. עורך דין + מאור
השירות מיועד לבני 18 ומעלה. איננו אוספים ביודעין מידע מקטינים.
איננו מאמתים גיל היום — אין בהרשמה שדה תאריך לידה.
עורך דין: האם נדרש אימות גיל, ומה גיל ההסכמה הרלוונטי
נעדכן את המסמך כשהמערכת תשתנה. שינוי מהותי יובא לידיעתך באפליקציה
לפני כניסתו לתוקף. גרסאות קודמות נשמרות בהיסטוריית הגיט של המאגר.
שם החברה · כתובת · privacy@…
| נושא | קובץ |
|---|---|
| סכימה מלאה | supabase/migrations/0001_initial_schema.sql |
| הרשאות ברמת השורה | supabase/migrations/0002, 0006, 0015 |
| מיקום, הסכמות וזמינות | supabase/migrations/0005_auth_and_location.sql |
| הפרדת שלבי חשיפת הכתובת | supabase/migrations/0011_lifecycle_hardening.sql §5 |
| חשיפת פרטי הצד הנגדי | supabase/migrations/0012_close_open_findings.sql |
| החלטת המיקום החי | docs/decisions/0003-professional-live-location.md |
| החלטת התשלומים | docs/decisions/0005-payments.md |