# Mosad360 — Data Dictionary (plain-text mirror) # קישור מקור: https://mosad360.com/data-dictionary # גרסה JSON מלאה ומובנית: https://mosad360.com/data-dictionary.json # מילון הנתונים מתאר את הישויות (Entities) המרכזיות וקשרי הגומלין ביניהן. ## ישויות מרכזיות ### mosad (מוסד) מייצג מוסד חינוך יחיד. בסיס הבידוד Cross-tenant של כל המערכת. שדות: id (uuid), name, type, address, license_status, mosad_number, created_at, updated_at, owner_user_id ### user_roles (תפקידי משתמש) שמירת תפקיד במנותק מטבלת ה-profiles, למניעת privilege escalation. שדות: id, user_id (→ auth.users), mosad_id (→ mosadot), role (enum app_role) enum app_role: super_admin | admin | manager | staff | viewer | parent ### profiles (פרופיל משתמש) פרטים אישיים בלבד — לעולם לא role. שדות: id (= auth.users.id), display_name, avatar_url, locale, timezone ### obligations (חובות/משימות רגולטוריות) ליבת מנוע ה-Mission Control. כל סיכון, חובה או פעולה רגולטורית. שדות: id, mosad_id, title, description, due_date, sla_status, severity, category, source_agent, status (open|in_progress|done|dismissed), letter_draft_id (→ letter_drafts) ### documents (מסמכים) שדות: id, mosad_id, title, type, file_url, uploaded_by, ocr_extracted_dates[] ניהול גרסאות בטבלה נפרדת: document_versions ### letter_templates / letter_drafts תבניות מכתבים בעברית + טיוטות פעילות לכל obligation. ### agent_schedules (תזמון סוכנים) שדות: id, agent_name, cron_expression, last_run_at, next_run_at, enabled ### tabarim (תב"רים) ניהול תקציבים ייעודיים. שדות: id, mosad_id, name, budget, spent, status ### api_health_checks תוצאות בדיקות בריאות API לאורך זמן. ## פוליסות RLS (תמצית) - כל טבלה תחת public schema עם RLS פעיל. - כל policy בודקת mosad_id = ANY (SELECT mosad_id FROM user_roles WHERE user_id = auth.uid()) - super_admin רואה את כל המוסדות (דרך has_role()). - שום policy לא נשענת על role בתוך profiles. ## הרשאות (Grants) לכל טבלה public: GRANT SELECT, INSERT, UPDATE, DELETE ON