CH5-006 · Least Privilege, התאוששות ובדיקת קבלה משולבת

גרסה 0.2 · 9.8.2026, 13:18 · המפרט השישי והאחרון של CH5 — שער הקבלה המשולב

נכון לעדכון אחרון: 23.10.2026, 21:39

Approved v0.2

✅ Approved for Implementation — Version 0.2 (09.08.2026)

מפרט CH5-006 v0.2 אושר לביצוע ב-09.08.2026. לא נדרש סבב Review נוסף. חמשת התיקונים יושמו במלואם: (1) Permission Matrix — Broker Adapter יחיד ל-Fill/BrokerEvent; Execution Engine יוצר Order ומעבד Fill דרך State Machine אך אינו יוצר עובדת ברוקר; רכיבים אינם כותבים ישירות ל-AuditEvent אלא ל-Audit Logger/Outbox (CH5-005); Admin פוצל ל-System Admin, Security Admin, Operator, Auditor; ברירת מחדל DENY; חריג חירום מחייב Break-Glass. (2) RPO/RTO — כל הערכים מסומנים Proposed Baseline; RPO=0 הוא יעד ("אין אובדן של פעולה שאושרה") באמצעות Transaction/Outbox/Reconciliation; נוספה מדיניות גיבוי (תדירות, הצפנה, Off-site, Retention, Restore תקופתי). (3) Rollback — מוגבל למסלולי קריאה הפיכים; אין Rollback ל-Corporate Action שיושם, אין עקיפת asset_id, אין מחיקת Audit/Version History; פעולות שבוצעו דורשות Corrective Event/Reconciliation. (4) מפת תנאי קבלה — כל תנאי מקבל criterion_id, מפרט מקור, בדיקה, ראיית ביצוע, תוצאה, מאמת ותאריך, חריגה/בעלים/מועד תיקון; סגירת CH5 רק כאשר כל התנאים המחייבים עברו או קיבלו חריגה מאושרת שאינה קריטית. (5) עדכון תלויות — CH5-004 v0.4 Approved, CH5-005 v0.2 Approved; נוסף CH3-004. ניתן לאשר את המפרט לפני המימוש, אך אסור להריץ את שער הקבלה ולסגור את CH5 עד ש-CH5-001–005 מומשו ודוחות הביצוע אושרו. Version 1.0 ייקבע לאחר המימוש ואישור דוח הביצוע.

עיקרון מחייב: שער קבלה — לא הצהרה

CH5-006 אינו נסגר על בסיס הצהרה בלבד. כל תנאי קבלה מקבל criterion_id, בדיקה, ראיית ביצוע, תוצאה, מאמת/תאריך וחריגה/בעלים/תיקון. סגירת CH5 רק כאשר כל התנאים המחייבים עברו או קיבלו חריגה מאושרת שאינה קריטית. חריגה קריטית מונעת סגירה. ניתן לאשר את המפרט לפני המימוש, אך אסור להריץ את שער הקבלה ולסגור את CH5 עד ש-CH5-001–005 מומשו ודוחות הביצוע אושרו. יציאה, צמצום וחירום אינם נחסמים גם תחת Global Freeze או מחסור בהון פנוי. רק לאחר סגירת CH5-006 ניתן להכריז על פרק 5 כולו כ-Version 1.0.

0.1 · היסטוריית גרסאות
גרסהתאריך ושעהמהות השינויסטטוס
v0.109.08.2026 09:35טיוטה ראשונה — הגדרת Permission Matrix (Least Privilege), RPO/RTO, Restore Runbook, בדיקות Recovery/Reconciliation, Smoke Test ב-Paper/Simulation, מפת תנאי קבלה מפרק 5 אל ראיית ביצוע, ודוח סגירת CH5 כולל. תלויות: CH5-001 עד CH5-005 מאושרים וממומשים.Review
v0.209.08.2026 13:18חמישה תיקונים מהותיים: (1) Permission Matrix — Broker Adapter יחיד ל-Fill/BrokerEvent; Execution Engine אינו יוצר עובדת ברוקר; רכיבים אינם כותבים ישירות ל-AuditEvent (דרך Audit Logger/Outbox CH5-005); Admin פוצל ל-4 תפקידים; DENY default + Break-Glass. (2) RPO/RTO — Proposed Baseline; RPO=0 כיעד; מדיניות גיבוי מלאה. (3) Rollback — מוגבל למסלולי קריאה; אין Rollback ל-Corporate Action/Audit/Version History. (4) מפת תנאי קבלה — criterion_id + מפרט מקור + בדיקה + ראיית ביצוע + תוצאה + מאמת/תאריך + חריגה/בעלים/תיקון. (5) תלויות — CH5-004 v0.4, CH5-005 v0.2 Approved; נוסף CH3-004.Review
v0.209.08.2026 13:18אישור סופי — Version 0.2 Approved for Implementation. לא נדרש סבב Review נוסף. חמשת התיקונים יושמו במלואם ובעקביות. ניתן לאשר מפרט לפני מימוש, אך אסור להריץ שער קבלה ולסגור CH5 עד ש-CH5-001–005 מומשו ודוחות הביצוע אושרו. Version 1.0 ייקבע לאחר המימוש ואישור דוח הביצוע.Approved
1 · בעיה ויעד

CH5-001 זיהה פערים קריטיים: אין Permission Matrix מיושמת — הרשאות קריאה/כתיבה אינן מופרדות בין Scanner, Agent, CIO Shadow, Risk Gate, Execution Engine ו-Broker Adapter; אין RPO/RTO מוגדרים ברמת האפליקציה; אין תוכנית גיבוי/Restore מתועדת; אין בדיקות Recovery מתועדות לאחר כשל באמצע כתיבה, Snapshot, Audit או אירוע ברוקר; ואין בדיקת קבלה כוללת המכסה את כל תנאי הקבלה של פרק 5 ב-Paper/Simulation. בנוסף, לא קיים מפת כיסוי המקשר כל תנאי קבלה בפרק 5 לראיית ביצוע ספציפית. ללא CH5-006, אין ודאות שהמערכת עומדת בכל דרישות פרק 5 כמכלול — רק כרכיבים נפרדים.

להוות שער קבלה משולב אחרון — לאשר שכל CH5-001 עד CH5-005 ממומשו, מבודקים ופועלים יחד ב-Paper/Simulation ללא נסיגה בהגנות. המפרט מגדיר Permission Matrix מיושמת (Least Privilege — DENY default, Admin מפוצל, Break-Glass), RPO/RTO כ-Proposed Baseline, מדיניות גיבוי מלאה, Restore Runbook, בדיקות Recovery ו-Reconciliation, Smoke Test מלא (Rollback מוגבל), מפת תנאי קבלה מפורטת (criterion_id לכל תנאי), ודוח סגירת CH5 כולל חריגות. רק לאחר שער זה ניתן להכריז על CH5 כמאושר כמכלול — ולא על בסיס הצהרה בלבד.

2 · Permission Matrix (Least Privilege — DENY Default)
רכיבקריאהכתיבהאיסורים
ScannerMarketData, WatchListCandidate, AgentLogTrade, Order, Fill, Portfolio.cash, SystemSettings, כתיבה ישירה ל-AuditEvent (דרך Audit Logger/Outbox של CH5-005)
Agent (Analysis)Snapshots (CH5-003), CanonicalMarketData (CH5-004), Versioned Stores (CH5-005)AnalysisOutput, AgentLogTrade, Order, Fill, Portfolio.cash, Risk Gate override, SystemSettings, כתיבה ישירה ל-AuditEvent
CIO ShadowSnapshots (CH5-003), AnalysisOutput— (Shadow בלבד)Trade, Order, Fill, Portfolio, Risk Gate override, Broker, SystemSettings, executeTrade, כתיבה ישירה ל-AuditEvent
Risk GateSnapshots (CH5-003), Trade, Portfolio, SystemSettings, Cash LedgerRiskResult (Audit דרך Audit Logger/Outbox CH5-005)Order, Fill, Broker, executeTrade (חסימת Order בלבד; אין שליחת Order)
Execution EngineTrade, SystemSettings, BrokerConnectionOrder, PositionUpdate (עיבוד Fill דרך State Machine; Audit דרך Audit Logger/Outbox)יצירת Fill/BrokerEvent (רק Broker Adapter), Risk Gate override, SystemSettings, Candidate→Order ישיר, Cash Ledger ישיר, כתיבה ישירה ל-AuditEvent
Broker Adapter (יחידי ל-Fill/BrokerEvent)Order, BrokerConnectionFill/BrokerEvent (יחידי), Inbox/Outbox (CH3-003), Audit דרך Audit Logger/OutboxTrade, Portfolio, SystemSettings, Risk Gate, Candidate, AnalysisOutput
System AdminSystemSettings, AgentConfig, User, BrokerageConnectionSystemSettings (גרסאי CH5-005), AgentConfig, Userעקיפת Risk Gate, מחיקת AuditEvent/Tombstone (Append-Only), גישה ל-Fill/BrokerEvent, שינוי הרשאות Security
Security AdminAuditEvent, Tombstone, PermissionMatrix, Break-Glass LogPermissionMatrix, Break-Glass אישורTrade, Order, Fill, Portfolio, SystemSettings תפעולי, עקיפת Risk Gate
OperatorTrade, Portfolio, Alerts, Messages, SystemSettingsGlobal Freeze, Trade approval/rejectionמחיקת AuditEvent/Tombstone, שינוי PermissionMatrix, גישה ל-Fill/BrokerEvent, שינוי הרשאות
Auditor (Read-Only)כל הישויות (Read-Only)— (Read-Only בלבד)כל כתיבה — Trade, Order, Fill, Portfolio, SystemSettings, PermissionMatrix, מחיקה

ברירת המחדל לכל הרשאה היא DENY. כל רכיב מקבל רק את ההרשאות המפורטות במפורש במטריצה. חריג חירום מחייב Break-Glass — אישור, תיעוד סיבה, ו-Audit מלא.

אינווריאנטים

  • ברירת מחדל: DENY — כל פעולה שאינה מופיעה במטריצה כמותרת אסורה.
  • רק Broker Adapter רשאי ליצור Fill/BrokerEvent — אף רכיב אחר אינו יוצר עובדת ברוקר.
  • Execution Engine רשאי ליצור Order ולעבד תוצאת Fill דרך State Machine, אך אינו יוצר Fill/BrokerEvent.
  • רכיבים אינם כותבים ישירות ל-AuditEvent — הם מוסרים אירוע ל-Audit Logger/Outbox של CH5-005.
  • Admin פוצל לארבעה תפקידים: System Admin, Security Admin, Operator, Auditor — אין Admin יחיד עם קריאת כל הישויות (סותר Least Privilege).
  • חריג חירום (Break-Glass): מחייב אישור, תיעוד סיבה, Audit מלא, וסקירה לאחר האירוע.
  • Auditor הוא Read-Only — אין כתיבה או מחיקה כלל.
  • Permission Matrix אינה מחליפה RLS — RLS נשאר המנגנון הטכני; Permission Matrix היא המודל העסקי.
3 · RPO/RTO (Proposed Baseline) + מדיניות גיבוי
שכבת נתוניםRPORTOהערות
AuditEvent (Append-Only)0 — יעד (לא הבטחה)1 שעה (Proposed)Proposed Baseline; RPO=0 = אין אובדן של פעולה שאושרה — Transaction + Outbox + Reconciliation
Trade / Order / Fill0 — יעד1 שעה (Proposed)Proposed Baseline; פעולה שאושרה אינה אובדת; Cash Ledger
Decision Snapshot (CH5-003)0 — יעד2 שעות (Proposed)Proposed Baseline; שחזור מחזורי החלטה
Portfolio5 דקות (Proposed)2 שעות (Proposed)Proposed Baseline; ניתן לשחזר מ-Cash Ledger + Trades
MarketData / Canonical (CH5-004)15 דקות (Proposed)4 שעות (Proposed)Proposed Baseline; ניתן להוריד מחדש מספק
Versioned Stores (CH5-005)0 — יעד2 שעות (Proposed)Proposed Baseline; Append-Only גרסאי
AgentConfig / AgentProfile1 שעה (Proposed)4 שעות (Proposed)Proposed Baseline; ניתן לשחזר מ-ArchiveRecord
Message30 דקות (Proposed)4 שעות (Proposed)Proposed Baseline; Audit trail תפעולי; 30 יום Retention

RPO=0 הוא יעד, לא הבטחה אוטומטית. כל הערכים מסומנים Proposed Baseline עד בדיקת תשתית. RPO=0 פירושו "אין אובדן של פעולה שכבר אושרה" — באמצעות Transaction, Outbox ו-Reconciliation.

דרישות גיבוי

  • תדירות גיבוי — מוגדרת לכל שכבת נתונים לפי RPO Proposed; AuditEvent ו-Snapshots כל שעה.
  • הצפנת גיבויים — כל הגיבויים מוצפנים במנוחה; ניהול מפתחות נפרד מגישה לנתונים.
  • עותק נפרד/Off-site — גיבוי נפרד מונע אובדן בכשל אתר; Off-site לפחות ל-AuditEvent ו-Snapshots.
  • Retention של גיבויים — מוגדר לפי סוג נתונים ודרישות רגולטוריות; גיבוי AuditEvent — 7 שנים (Proposed).
  • בדיקת Restore תקופתית — Restore נבדק לפחות פעם ברבעון; תוצאה מתועדת ב-RestoreLog.
  • ניהול מפתחות — מפתחות הצפנה מנוהלים בנפרד; גישה מוגבלת ל-Security Admin; Audit לכל גישה.
4 · Restore Runbook

Restore Runbook מתועד ונבדק — כל שכבת נתונים מקבלת הליך שחזור ברור עם RPO/RTO, בעלים ובדיקת שלמות.

שלבים

  1. זיהוי היקף הכשל — איזו שכבת נתונים אבדה או נפגעה.
  2. הפעלת Global Freeze אם הכשל משפיע על ביצוע או פוזיציות — חסימת פתיחת/הגדלת עמדות.
  3. שחזור מגיבוי לפי RPO/RTO של השכבה — AuditEvent ו-Snapshots ראשונים.
  4. אימות שלמות — Hash verification על Snapshots (CH5-003) ו-Lineage (CH5-004/005).
  5. Reconciliation מול הברוקר — אימות פוזיציות ומזומן מול המצב החי.
  6. בדיקת מחזור החלטה מלא — recoverFullLineage(decision_cycle_id) לאימות שרשרת ראיות.
  7. הפעלת Recovery Tests — בדיקה ש-Idempotency עובד (Retry אינו יוצר כפילויות).
  8. שחרור Global Freeze — רק לאחר אימות שלמות ואישור.
  9. יצירת AuditEvent RESTORE לתיעוד השחזור.

אינווריאנטים

  • Restore אינו משנה timestamps או versions מקוריים (CH5-005).
  • Restore יוצר רשומת AuditEvent נפרדת (RESTORE).
  • לא ניתן לשחזר עמדה ללא Reconciliation מול הברוקר.
  • Global Freeze חוסם פתיחת עמדות אך אינו חוסם יציאה/צמצום/חירום.
5 · בדיקות Recovery
בדיקהתיאורתוצאה צפויה
כשל באמצע כתיבהכתיבת Trade נקטעת באמצע — CAS (CH3-002) מונע מצב חלקי; Reconciliation דרושTrade אינו במצב חלקי; status_version עקבי; Recovery אוטומטי או ידני
כשל באמצע Snapshotבניית DecisionContextSnapshot (CH5-003) נכשלת באמצע — build_status=FAILEDSnapshot חלקי אינו מתפרסם; מחזור נחסם; נדרש מחזור חדש
כשל באמצע Auditכתיבת AuditEvent נכשלת — Transaction + Outbox (CH5-005) מונעים המשך ללא Auditפעולה חוזרת או נחסמת; אין פעולה ללא Audit Trail; שינוי קריטי אינו מוצלח בלי Audit
כשל באירוע ברוקר מאוחרLate broker event מגיע לאחר סגירת מחזור — Reconciliation Caseמזהה מחזור מקורי נשמר; Corrective Trade (CH3-003); אין מחזור חדש
Retry כפולאותה פקודה נשלחת פעמיים — Idempotency (CH3-003)אין Order כפול; אין Fill כפול; client_order_id מונע כפילויות
Fill חוזרFill מגיע לאחר ביטול — Reconciliation (CH3-003)execution_state מתעדכן; Corrective Trade אם נדרש; Audit מלא
Rollback (מוגבל — מסלולי קריאה בלבד)כיבוי Feature Flag — מותר רק למסלולי קריאה הפיכים; אין Rollback ל-Corporate Action שיושם, אין עקיפת asset_id לאחר Cutover, אין מחיקת/ביטול Audit/Version Historyחזרה למסלול קריאה קודם; פעולות שבוצעו אינן הפיכות — נדרש Corrective Event או Reconciliation (CH5-003/004/005)
Global Freeze באמצע מחזורGlobal Freeze מופעל באמצע מחזור החלטהמחזור מסומן SUPERSEDED; פתיחת/הגדלת עמדות חסומה; יציאה/צמצום/חירום פתוחים
6 · בדיקות Reconciliation
תרחישתיאורפעולה
UNKNOWN broker stateמצב ברוקר אינו ודאי — RECONCILIATION_REQUIRED (CH3-003)חסימת Retry עד Reconciliation; שליחת שאילתה לברוקר; עדכון execution_state
Position mismatchפוזיציה במערכת אינה תואמת לברוקרReconciliation Case; Corrective Trade אם נדרש; Audit מלא
Cash mismatchמזומן ב-Portfolio אינו תואם ל-Cash LedgerCash Ledger כמקור אמת; עדכון תצוגה; Audit
Duplicate FillFill מגיע פעמיים — Idempotencylast_fill_id מונע עיבוד כפול; לוג מתעד; אין עדכון כפול
Corporate Action mismatchפוזיציה אינה תואמת לאחר Corporate ActionReconciliation מול ברוקר; Corrective Event אם נדרש (CH5-004)
7 · Smoke Test ב-Paper/Simulation

Smoke Test מלא ב-Paper/Simulation — מסלול שלם מ-Orchestrator דרך ניתוח, Risk Gate, Order, Fill, Position Update ו-Audit. כולל Retry כפול, Fill חוזר ו-Rollback מוגבל (מסלולי קריאה בלבד).

שלבתיאור
1 · יצירת מחזורOrchestrator יוצר decision_cycle_id + correlation_id; חמשת Snapshots נבנים אטומית (CH5-003)
2 · ניתוח סוכניםסוכנים צורכים מ-Snapshots בלבד; AnalysisOutput מקושר לגרסאות (CH5-005) ולמזהים
3 · CIO ShadowCIO פועל ב-Shadow בלבד; אין העברת סמכות; אין שליחת Order
4 · Decision + Risk GateDecision נוצר; Risk Gate עדכני לפני Order — בודק מצב חי, לא Snapshot (CH5-003)
5 · Order + FillTrade נוצר; Execution Engine שולח Order דרך Broker Adapter; Fill מתקבל מ-Broker Adapter בלבד; Position מתעדכן (CH3-003)
6 · Corporate Actionאירוע תאגידי מעובד — State Machine מלא עם Saga; Cash Ledger מתעדכן; RECONCILIATION_REQUIRED לכשל חלקי; canonical_action_id יציב (CH5-004)
7 · Audit + Lineageכל אירוע Audit מקושר; recoverFullLineage משחזר הכל (CH5-005); שרשרת Hash תקינה
8 · Recovery + Reconciliationכשל מדומה; Retry כפול; Fill חוזר; Rollback מוגבל (מסלולי קריאה בלבד) — כל הבדיקות עוברות

אינווריאנטים

  • Retry כפול אינו יוצר Order או Fill כפול.
  • Fill חוזר מטופל דרך Reconciliation — אין מחזור חדש.
  • Rollback מוגבל למסלולי קריאה הפיכים — אין Rollback ל-Corporate Action שיושם, אין עקיפת asset_id לאחר Cutover, אין מחיקת/ביטול Audit/Version History; פעולות שבוצעו דורשות Corrective Event או Reconciliation (CH5-003/004/005).
  • יציאה/צמצום/חירום אינם נחסמים גם תחת Global Freeze או מחסור בהון פנוי.
  • אין נסיגה בבדיקות CH3 ובחוזי CH4.
8 · מפת תנאי קבלה מפורטת מפרק 5
מזההסעיף פרק 5מפרט מקורבדיקהראיית ביצועתוצאהמאמת/תאריךחריגה/בעלים/תיקון
5.1-0015.1 — Data InventoryCH5-001 v0.1אימות Data Inventory מלא + SoT matrix + Gap Analysisדוח CH5-001 מאושרPASS— / —— / — / —
5.2-0015.2 — Asset IdentityCH5-002 v0.3אימות asset_id יציב ל-100% נכסים פעילים + Compatibility Layerדוח CH5-002 מאושרPASS— / —— / — / —
5.3-0015.3 — Decision SnapshotCH5-003 v0.3Snapshots קפואים; decision_cycle_id; Risk Gate עדכני לפני Orderדוח CH5-003 (לאחר מימוש)PENDING— / —— / — / —
5.4-0015.4 — Data Layers & QualityCH5-004 v0.4Raw/Canonical/Adjusted/Derived/ExecutableQuote; Data Quality; Corporate Actions; Saga; canonical_action_idדוח CH5-004 (לאחר מימוש)PENDING— / —— / — / —
5.5-0015.5 — Audit & LineageCH5-005 v0.2Versioned Stores; Audit Append-Only (שרשרת Hash); Lineage; Retention; Tombstoneדוח CH5-005 (לאחר מימוש)PENDING— / —— / — / —
5.6-0015.6 — Least PrivilegeCH5-006 v0.2Permission Matrix מיושמת; בדיקות חיוביות ושליליות; DENY default; Break-Glass; Admin מפוצלדוח CH5-006 (לאחר מימוש)PENDING— / —— / — / —
5.7-0015.7 — Recovery & RPO/RTOCH5-006 v0.2Restore Runbook; RPO/RTO (Proposed Baseline); בדיקות Recovery; מדיניות גיבוי; Restore תקופתידוח CH5-006 (לאחר מימוש)PENDING— / —— / — / —
5.8-0015.8 — ReconciliationCH5-006 v0.2בדיקות Reconciliation לפני Retry ב-UNKNOWN/RECONCILIATION_REQUIREDדוח CH5-006 (לאחר מימוש)PENDING— / —— / — / —
5.9-0015.9 — Integrated AcceptanceCH5-006 v0.2Smoke Test מלא ב-Paper/Simulation; רגרסיה CH3/CH4; Rollback מוגבלדוח CH5-006 (לאחר מימוש)PENDING— / —— / — / —
5.10-0015.10 — Production ReadinessCH5-006 v0.2Production Readiness Report; דוח סגירת CH5 כולל חריגותדוח CH5-006 (לאחר מימוש)PENDING— / —— / — / —

כלל סגירה: סגירת CH5 תותר רק כאשר כל התנאים המחייבים עברו (PASS) או קיבלו חריגה מאושרת שאינה קריטית. חריגה קריטית פתוחה מונעת סגירה.

9 · תכולת המימוש

הגדרת ויישום Permission Matrix — DENY default; הרשאות קריאה/כתיבה נפרדות ל-Scanner, Agent, CIO Shadow, Risk Gate, Execution Engine, Broker Adapter; Admin פוצל ל-System Admin, Security Admin, Operator, Auditor.

רק Broker Adapter רשאי ליצור Fill/BrokerEvent; Execution Engine יוצר Order ומעבד Fill דרך State Machine אך אינו יוצר עובדת ברוקר.

רכיבים אינם כותבים ישירות ל-AuditEvent — מוסרים ל-Audit Logger/Outbox (CH5-005).

חריג חירום (Break-Glass) מחייב אישור, תיעוד סיבה, Audit מלא וסקירה.

RPO/RTO כ-Proposed Baseline — כל הערכים מסומנים עד בדיקת תשתית; RPO=0 כיעד ("אין אובדן של פעולה שאושרה").

מדיניות גיבוי מלאה — תדירות, הצפנה, ניהול מפתחות, Off-site, Retention, בדיקת Restore תקופתית.

בדיקות Recovery לאחר כשל באמצע כתיבה, Snapshot, Audit ואירוע ברוקר — Transaction + Outbox.

בדיקות Reconciliation לפני Retry במצב UNKNOWN/RECONCILIATION_REQUIRED.

בדיקת מסלול מלא ב-Paper/Simulation — כולל Retry כפול, Fill חוזר ו-Rollback מוגבל (מסלולי קריאה בלבד).

מפת תנאי קבלה מלאה מפרק 5 — כל תנאי מקבל criterion_id, מפרט מקור, בדיקה, ראיית ביצוע, תוצאה, מאמת ותאריך, חריגה/בעלים/מועד תיקון.

סגירת CH5 רק כאשר כל התנאים המחייבים עברו או קיבלו חריגה מאושרת שאינה קריטית.

רגרסיה מול בדיקות CH3 וחוזי CH4 — אין נסיגה.

דוח סגירת CH5 כולל — חריגות פתוחות, בעלים, חומרה ותאריך יעד; חריגה קריטית מונעת סגירה.

Production Readiness Report — אישור או חסימת מעבר ל-Live (מחוץ לתכולה).

10 · תוצרים מחייבים
Permission Matrix מיושמת — DENY default; 10 רכיבים עם הרשאות ואיסורים; Break-Glass.מודל הרשאות — ברירת מחדל DENY; Break-Glass עם אישור ו-Audit.RPO/RTO כ-Proposed Baseline — לכל שכבת נתונים; RPO=0 כיעד.מדיניות גיבוי — תדירות, הצפנה, Off-site, Retention, Restore תקופתי.Restore Runbook — הליך שחזור מתועד ונבדק.ערכת בדיקות אינטגרציה — Recovery, Reconciliation, Smoke Test (Rollback מוגבל).מפת תנאי קבלה מפורטת — criterion_id לכל תנאי; תוצאה, מאמת, חריגה.Production Readiness Report — סטטוס מערכת, חריגות, המלצת סגירה.דוח סגירת CH5 כולל — כיסוי 5.1 עד 5.10, חריגות ואישור.רגרסיה CH3/CH4 — אין נסיגה בהגנות, State Machine או Idempotency.
11 · מגבלות והגנות

אין מעבר ל-Live Trading במסגרת הבדיקה — ללא אישור נפרד.

אין ל-CIO, Agent או Execution Engine יכולת לעקוף Risk Gate.

יציאה, צמצום ופעולת חירום אינם נחסמים בשל הון פנוי או Global Freeze.

כשל בבדיקת Restore או הרשאה חוסם Production.

כל חריגה פתוחה מקבלת בעלים, חומרה ותאריך יעד; חריגה קריטית מונעת סגירת CH5.

Permission Matrix אינה מחליפה RLS — RLS נשאר המנגנון הטכני; Permission Matrix היא המודל העסקי.

RPO/RTO הם Proposed Baseline — אינם נעולים לפני בדיקת תשתית/רישוי/משפט/עלות.

Rollback מוגבל למסלולי קריאה הפיכים — אין Rollback ל-Corporate Action שיושם, אין עקיפת asset_id, אין מחיקת Audit/Version History.

Smoke Test חייב לעבור ב-Paper/Simulation לפני כל אישור Live.

ניתן לאשר את המפרט לפני המימוש, אך אסור להריץ את שער הקבלה ולסגור את CH5 עד ש-CH5-001–005 מומשו ודוחות הביצוע אושרו.

12 · שינויי סכמה
ישותשינוישדות
PermissionMatrix (Planned)ישות חדשה — מודל עסקי; DENY defaultcomponent (Scanner/Agent/CIO/RiskGate/Execution/Broker/SystemAdmin/SecurityAdmin/Operator/Auditor), role, allowed_reads[], allowed_writes[], prohibitions[], default_policy (DENY), break_glass (boolean), version, approved_by, effective_from (UTC)
BreakGlassEvent (Planned)ישות חדשה — חריג חירוםevent_id, actor, requested_action, reason, approver, approved_at, audit_event_id, reviewed (boolean), reviewed_by, reviewed_at
RpoRtoPolicy (Planned)ישות חדשה — Proposed Baselinepolicy_id, data_layer, rpo, rto, proposed_baseline (boolean), approved_by, effective_from (UTC), infrastructure_verified (boolean)
BackupPolicy (Planned)ישות חדשה — מדיניות גיבויpolicy_id, data_layer, backup_frequency, encryption (boolean), key_management, off_site (boolean), retention_period, restore_test_frequency, last_restore_test (UTC)
RestoreLog (Planned)ישות חדשהrestore_id, data_layer, triggered_by, started_at, completed_at, rpo_met (boolean), rto_met (boolean), hash_verified (boolean), audit_event_id
RecoveryTestResult (Planned)ישות חדשהtest_id, test_name, scenario, expected, actual, passed (boolean), tested_at, notes
SmokeTestResult (Planned)ישות חדשהsmoke_id, phase, status (PASS/FAIL/SKIP), details, decision_cycle_id, tested_at
AcceptanceMapEntry (Planned)ישות חדשה — מפה מפורטתmap_id, criterion_id (unique), ch5_section, spec_ref, test, evidence_ref, result (PASS/FAIL/PENDING/EXCEPTION), verifier, verify_date, exception, exception_owner, fix_date
Ch5ClosureReport (Planned)ישות חדשהreport_id, generated_at, total_criteria, passed, failed, pending, open_exceptions[], critical_exceptions (boolean), closure_recommendation (APPROVED/BLOCKED)
13 · מודולים משותפים
קובץתיאור
base44/shared/permissionMatrix.ts (חדש)checkPermission(component, entity, operation): בודק הרשאה לפי Permission Matrix — DENY default. enforceProhibition(component, action): חוסם פעולה אסורה. requestBreakGlass(actor, action, reason): חריג חירום עם אישור ו-Audit.
base44/shared/backupPolicy.ts (חדש)getBackupPolicy(data_layer): מחזיר מדיניות גיבוי (תדירות, הצפנה, Off-site, Retention). checkRestoreTestDue(data_layer): בודק אם בדיקת Restore תקופתית דרושה. verifyBackupEncryption(backup_id): אימות הצפנה.
base44/shared/restoreRunbook.ts (חדש)executeRestore(data_layer, trigger): מבצע שחזור לפי Runbook. verifyHash(snapshot_id): אימות שלמות. reconcileWithBroker(): Reconciliation לאחר Restore. יוצר AuditEvent RESTORE.
base44/shared/recoveryTests.ts (חדש)runRecoveryTests(): מריץ בדיקות Recovery — כשל בכתיבה/Snapshot/Audit/ברוקר; Transaction + Outbox. runReconciliationTests(): UNKNOWN, Position, Cash, Duplicate Fill. Idempotency בדיקה.
base44/shared/smokeTestRunner.ts (חדש)runSmokeTest(): מריץ Smoke Test מלא ב-Paper/Simulation — 8 שלבים; Rollback מוגבל (מסלולי קריאה בלבד). runRegressionTests(): רגרסיה CH3/CH4. דוח תוצאות מלא.
base44/shared/acceptanceMap.ts (חדש)getAcceptanceMap(): מחזיר מפת 5.1–5.10 עם criterion_id, מפרט, בדיקה, ראיה, תוצאה, מאמת, חריגה. verifyAcceptance(criterion_id): בודק תוצאה. generateClosureReport(): דוח סגירת CH5; חריגה קריטית מונעת סגירה.
14 · תנאי קבלה

בדיקות הרשאה חיוביות ושליליות עברו — כל רכיב יכול/אינו יכול לפי Permission Matrix; DENY default.

רק Broker Adapter יוצר Fill/BrokerEvent — Execution Engine אינו יוצר עובדת ברוקר.

רכיבים אינם כותבים ישירות ל-AuditEvent — דרך Audit Logger/Outbox (CH5-005).

Admin מפוצל ל-System Admin, Security Admin, Operator, Auditor — אין Admin יחיד עם קריאת כל הישויות.

Break-Glass — אישור, תיעוד סיבה, Audit מלא, סקירה לאחר האירוע.

Restore עומד ב-RPO/RTO (Proposed Baseline) לכל שכבת נתונים.

Restore אינו משנה timestamps או versions מקוריים (CH5-005).

Restore יוצר רשומת AuditEvent RESTORE.

Retry זהה אינו יוצר Order או Fill כפול (Idempotency — CH3-003).

מחזור Paper מלא ניתן לשחזור — recoverFullLineage(decision_cycle_id) מחזיר הכל.

Rollback מוגבל למסלולי קריאה הפיכים — אין Rollback ל-Corporate Action/Audit/Version History; פעולות שבוצעו דורשות Corrective Event/Reconciliation.

כל תנאי קבלה בפרק 5 (5.1 עד 5.10) מקבל criterion_id, מפרט מקור, בדיקה, ראיית ביצוע, תוצאה, מאמת/תאריך, חריגה/בעלים/תיקון.

סגירת CH5 רק כאשר כל התנאים המחייבים עברו או קיבלו חריגה מאושרת שאינה קריטית.

אין נסיגה בבדיקות CH3 ובחוזי CH4.

יציאה/צמצום/חירום אינם נחסמים תחת Global Freeze או מחסור בהון פנוי.

בדיקות Recovery עברו — כשל באמצע כתיבה/Snapshot/Audit/ברוקר; Transaction + Outbox.

בדיקות Reconciliation עברו — UNKNOWN/RECONCILIATION_REQUIRED חוסם Retry עד אימות.

Smoke Test מלא ב-Paper/Simulation עבר — כולל Retry כפול, Fill חוזר ו-Rollback מוגבל.

מדיניות גיבוי — תדירות, הצפנה, Off-site, Retention, Restore תקופתי.

דוח סגירת CH5 כולל — חריגות פתוחות מקבלו בעלים, חומרה ותאריך יעד.

חריגה קריטית פתוחה מונעת סגירת CH5 כולל.

Secrets אינם נשמרים ב-Audit/Snapshot/Prompt — סריקה אוטומטית (CH5-005).

15 · ראיות נדרשות בדוח הביצוע
דוח Permission Matrix — בדיקות חיוביות ושליליות; DENY default; Break-Glass.הוכחה — רק Broker Adapter יוצר Fill/BrokerEvent; Execution Engine אינו.הוכחה — רכיבים אינם כותבים ישירות ל-AuditEvent (דרך Logger/Outbox).הוכחה — Admin מפוצל (4 תפקידים); Auditor Read-Only.לוח RPO/RTO — Proposed Baseline; RPO=0 כיעד.דוח מדיניות גיבוי — תדירות, הצפנה, Off-site, Retention, Restore תקופתי.לוג Restore מתועד — RPO/RTO לכל שכבה; Hash verification.דוח בדיקות כפילות/Recovery — Retry, Fill חוזר, Rollback מוגבל.דוח בדיקות Reconciliation — UNKNOWN, Position mismatch, Cash mismatch.דוח Smoke משולב — Paper/Simulation, 8 שלבים.דוח רגרסיה CH3/CH4 — אין נסיגה.מפת תנאי קבלה 5.1–5.10 — criterion_id + תוצאה + מאמת + חריגה.Production Readiness Report.דוח סגירת CH5 כולל חריגות.אישור סגירה — חתימת Review.
16 · Definition of Done

המפרט אושר לפני תחילת ביצוע.

כל שינוי זוהה לפי קובץ/Entity/Function/Workflow וכולל תוכנית Rollback.

כל תנאי קבלה קיבל בדיקה ותוצאה — criterion_id, מפרט מקור, בדיקה, ראיית ביצוע, תוצאה, מאמת/תאריך, חריגה/בעלים/תיקון.

סגירת CH5 רק כאשר כל התנאים המחייבים עברו או קיבלו חריגה מאושרת שאינה קריטית.

לא נוצרה נסיגה בהגנות, ב-State Machine או ב-Idempotency של CH3.

חוזי הסוכנים וה-CIO Shadow של CH4 נשמרו.

Permission Matrix מיושמת ונבדקה — DENY default; בדיקות חיוביות ושליליות; Break-Glass; Admin מפוצל.

רכיבים אינם כותבים ישירות ל-AuditEvent — דרך Audit Logger/Outbox (CH5-005).

רק Broker Adapter יוצר Fill/BrokerEvent — נבדק.

RPO/RTO — Proposed Baseline; RPO=0 כיעד; מדיניות גיבוי מלאה.

Rollback מוגבל למסלולי קריאה — אין Rollback ל-Corporate Action/Audit/Version History — נבדק.

Restore Runbook נבדק ועומד ב-RPO/RTO.

Smoke Test מלא עבר ב-Paper/Simulation.

רגרסיה CH3/CH4 — אין נסיגה.

מפת תנאי קבלה 5.1–5.10 מלאה עם ראיית ביצוע.

הופק דוח ביצוע הכולל ראיות, חריגות והמלצת סגירה.

חריגה קריטית פתוחה מונעת סגירה.

רק לאחר אישור דוח הביצוע משתנה סטטוס המפרט ל-Version 1.0 — Closed.

לאחר סגירת CH5-006, פרק 5 כולו נסגר כ-Version 1.0 — מבלי לשנות את הארכיטקטורה הנעולה.

17 · קבצים מושפעים

base44/entities/PermissionMatrix.jsonc — ישות חדשה (DENY default; Admin מפוצל).

base44/entities/BreakGlassEvent.jsonc — ישות חדשה (חריג חירום עם אישור ו-Audit).

base44/entities/RpoRtoPolicy.jsonc — ישות חדשה (Proposed Baseline).

base44/entities/BackupPolicy.jsonc — ישות חדשה (תדירות, הצפנה, Off-site, Retention, Restore תקופתי).

base44/entities/RestoreLog.jsonc — ישות חדשה.

base44/entities/RecoveryTestResult.jsonc — ישות חדשה.

base44/entities/SmokeTestResult.jsonc — ישות חדשה.

base44/entities/AcceptanceMapEntry.jsonc — ישות חדשה (criterion_id + תוצאה + מאמת + חריגה).

base44/entities/Ch5ClosureReport.jsonc — ישות חדשה.

base44/shared/permissionMatrix.ts (חדש) — DENY default + Break-Glass + אכיפת הרשאות.

base44/shared/backupPolicy.ts (חדש) — מדיניות גיבוי + Restore תקופתי.

base44/shared/restoreRunbook.ts (חדש) — שחזור + Reconciliation.

base44/shared/recoveryTests.ts (חדש) — בדיקות Recovery + Reconciliation; Transaction + Outbox.

base44/shared/smokeTestRunner.ts (חדש) — Smoke Test + Rollback מוגבל + רגרסיה.

base44/shared/acceptanceMap.ts (חדש) — מפת תנאי קבלה (criterion_id) + דוח סגירה.

src/pages/Ch5Spec006.jsx — עמוד מפרט זה (תיעוד).

18 · סדר ביצוע

1. יצירת ישויות: PermissionMatrix, BreakGlassEvent, RpoRtoPolicy, BackupPolicy, RestoreLog, RecoveryTestResult, SmokeTestResult, AcceptanceMapEntry, Ch5ClosureReport.

2. יצירת base44/shared/permissionMatrix.ts — DENY default + Break-Glass + אכיפת הרשאות.

3. יצירת base44/shared/backupPolicy.ts — מדיניות גיבוי + Restore תקופתי.

4. יצירת base44/shared/restoreRunbook.ts — שחזור + Reconciliation.

5. יצירת base44/shared/recoveryTests.ts — בדיקות Recovery + Reconciliation; Transaction + Outbox.

6. יצירת base44/shared/smokeTestRunner.ts — Smoke Test + Rollback מוגבל + רגרסיה CH3/CH4.

7. יצירת base44/shared/acceptanceMap.ts — מפת תנאי קבלה (criterion_id) + דוח סגירה.

8. יישום Permission Matrix בכל רכיבי המערכת — DENY default; Break-Glass; Admin מפוצל.

9. הגדרת RPO/RTO (Proposed Baseline) ומדיניות גיבוי — כולל בדיקת תשתית/רישוי/משפט/עלות.

10. תיעוד Restore Runbook ובדיקתו.

11. הרצת Recovery Tests — כשל בכתיבה/Snapshot/Audit/ברוקר; Transaction + Outbox.

12. הרצת Reconciliation Tests — UNKNOWN, Position, Cash, Duplicate Fill.

13. הרצת Smoke Test מלא ב-Paper/Simulation — 8 שלבים; Rollback מוגבל.

14. הרצת רגרסיה CH3/CH4 — אין נסיגה.

15. בניית מפת תנאי קבלה 5.1–5.10 — criterion_id לכל תנאי; תוצאה, מאמת, חריגה.

16. הפקת Production Readiness Report ודוח סגירת CH5.

17. אישור סגירה או חסיבה — חריגה קריטית מונעת סגירה; רק לאחר CH5-001–005 ממומשים ודוחות אושרו.

תלות

CH5-001 v0.1 Approved; CH5-002 v0.3 Approved; CH5-003 v0.3 Approved; CH5-004 v0.4 Approved for Implementation; CH5-005 v0.2 Approved for Implementation — כולם נדרשים ממומשים ודוחות הביצוע שלהם אושרו לפני הרצת שער הקבלה וסגירת CH5. CH3 (001/002/003/004/005) נעולים — כולל CH3-004. CH4 (001) מאושר. ניתן לאשר את מפרט CH5-006 לפני המימוש, אך אסור להריץ את שער הקבלה ולסגור את CH5 עד ש-CH5-001–005 מומשו ודוחות הביצוע אושרו. ניתן להכין Permission Matrix ו-RPO/RTO במקביל, אך Smoke Test מלא דורש את כל המפרטים ממומשים.

מחוץ לתכולה

מעבר ל-Live Trading, שינוי Risk Gate, שינוי לוגיקת השקעה, או שינוי חוזי סוכן. Production Readiness Report הוא תוצר; אישור מעבר ל-Live הוא החלטה נפרדת מחוץ למפרט זה.

Approved v0.2 — Ready for Implementationמפרט שישי ואחרון מתוך ששת מפרטי CH5. v0.2 אושר לביצוע ב-09.08.2026 — לא נדרש סבב Review נוסף. חמשת התיקונים יושמו במלואם: Permission Matrix (DENY default, Admin מפוצל, Break-Glass), RPO/RTO (Proposed Baseline + מדיניות גיבוי), Rollback מוגבל, מפת תנאי קבלה מפורטת (criterion_id), ועדכון תלויות (CH5-004 v0.4, CH5-005 v0.2 Approved, CH3-004). ניתן לאשר לפני מימוש, אך אסור להריץ שער קבלה ולסגור CH5 עד ש-CH5-001–005 מומשו ודוחות אושרו. Version 1.0 ייקבע לאחר המימוש ואישור דוח הביצוע.