كل عقدة وكل سلك مستخرجان آلياً من الكود عبر tools/extract_features.py — الأسلاك الباهتة مفترَضة (اتجاه غير مثبت بفعل صريح)، والمتقطعة الحمراء مسار خطر مسجَّل في سجل المخاطر، والمنقّطة الرمادية ميتة/معطّلة معروضة ليُقرَّر فيها.
المنصة ثلاثة مستودعات مستقلة تتشارك مشروع Supabase واحداً (oikxumknibvcyxbtvqmq) كمصدر الحقيقة الوحيد. هذه الصفحة تعرض المعمارية الحيّة وتدفق البيانات — مبنية على تدقيق ساكن كامل (63 ميزة، 28 مصدراً، 17 نواة).
كل مورد له «نواة» واحدة تمر منها كل كتابة. الدليل الكامل في contracts/.
المسار الوحيد لكل إرسال طلابي: بوابة + معدّل + هوية Business + سجل.
بوابة الاعتماد fail-closed (مثبت تجريبياً).
المستهلك الوحيد لطابور tg_event_queue كل 30ث.
نموذج الليدجر الدائم المرجعي (يُعمَّم في W2).
البث بليدجر مستلمين دائم + استئناف keyset.
الكاتب الوحيد لحالة الفاتورة (تُشتق من الدفعات، قفل صف).
التحكم الإداري + token bump للطرد ≤10ث.
فهرسة موحّدة + تريجرات توافق عكسية.
الكاتبان الوحيدان لتقدم المشاهدة.
اعتماد ذرّي — jsonb ok:false لا استثناء.
القرار الجهازي الخادمي الوحيد.
البوابة الوحيدة لجلسة الطالب.
كاشف رفض RLS الصامت (ZERO_ROWS) — إلزامي لكل كتابة أدمن.
جسر الفوترة الموحّد (rollback مفحوص).
الأمر القانوني للالتحاق (6 مصادر).
عرض محتوى الطالب عبر مهايئ موحّد.
مربعات الرئيسية + القارئ الإحصائي للطالب.
اقرأ كل تدفق من اليمين لليسار (اتجاه الأسهم). اللون العلوي = المكوّن المسؤول.
من يُنتج كل حدث، وهل يمر بطابور/ليدجر دائم أم يُرسل مباشرة. الليدجر الدائم (4 مسارات) هو النمط الآمن ضد التكرار.
| الحدث | المُنتِج | الطابور / الليدجر | محلّل الجمهور |
|---|---|---|---|
| invoice.auto_created | تريجر الفاتورة | tg_event_queue | student من الفاتورة |
| invoice.daftra_created | daftra poller | tg_event_queue | student من metadata |
| smart.new_video | smart_scheduler | tg_event_queue | tg_resolve_playlist_audience |
| smart.daily_encouragement | smart_scheduler 16:00 | tg_event_queue | جمهور نشط |
| smart.weekly_report | smart_scheduler الخميس | tg_event_queue | جمهور |
| request.notification | request_notification_service | ليدجر دائم | student من الطلب |
| fingerprint.alert | fingerprint/service | ليدجر دائم | tg_fp_admin_targets |
| broadcast.campaign | broadcast_handlers | ليدجر دائم | tg_resolve_audience |
| wafeq.batch_invoice | wafeq_send_batch | ليدجر ذرّي | قائمة الدفعة |
| auth.login_otp | web_server | مباشر | student |
| auth.password_reset | web_server | مباشر | student |
| exam.announce | exam_endpoints | مباشر · بلا بوابة | جمهور مباشر |
| quick.custom_send | quick_send_endpoints | مباشر | student محدد |
| keyword.reply | handlers | مباشر | المرسِل |
| owner.exec_report | daily/exec/briefing | مباشر | OWNER_USER_ID |
Supabase مصدر الحقيقة الوحيد. SQLite بالبوت طبقة مستقلة لثلاثة جداول. localStorage/SWR كاش عرض لا قرار.
الطلاب + الهوية + token_version.
كاتب وحيد record_watch_progress.
الحالة مشتقة لا تُكتب مباشرة.
مصدر اشتقاق حالة الفاتورة.
قرار الحد عبر verify_student_device_limit.
tg_dequeue_pending (خارجي).
تولد موقوفة.
+ تريجرات توافق عكسية.
مشاهدة المواد التطويرية.
ربط telegram_user_id ↔ الطالب.
+ tg_student_health + tg_crisis_alerts.
بعضها مفتوح لـanon (خطر).
الليدجر المرجعي.
ليدجر تنبيهات البصمة.
حملات + مستلمون (ليدجر).
replies · admin_config · message_log.
النموذج: reachability × severity × likelihood × blast_radius. بنود P0/P1 = رقعة أمنية مستقلة بموافقة منفصلة.
| # | المعرّف | الخطر | الشدّة | الأولوية |
|---|---|---|---|---|
| 1 | R-BOT-OWNER | ربط البوت كـBusiness يضيف مالكاً كاملاً بلا allowlist | P0 | 75.0 |
| 2 | R-SEC-IDENTITY | هوية bearer-UUID قابلة للانتحال عبر anon | P0 | 67.5 |
| 3 | R-BOT-PASSWORD | كلمة مرور لوحة البوت مضمّنة بالكود | P0 | 64.0 |
| 4 | R-BOT-WEBHOOK | سرّ webhook واحد + CORS يعكس أي Origin | P0 | 60.0 |
| 5 | R-BOT-EXAM-RAW | exam_announce بثّ خام + فحص سرّه fail-open | P1 | 54.0 |
| 6 | R-EDGE-UUID | حدود Edge حسّاسة تصادق بترويسة UUID خام | P1 | 40.8 |
| 7 | R-DATA-NO-BASELINE | لا schema baseline: جداول النواة + 40 RPC بلا CREATE | P1 | 36.0 |
| 8 | R-STU-REG-BYPASS | مسار التسجيل يتجاوز البصمة ويكتب الجلسة مباشرة | P2 | 27.0 |
| 9 | R-SEC-EXEC-ANON | 14 دالة قيادة مفتوحة لـanon تُرجع إيراد/ذمم | P2 | 25.6 |
| 10 | R-STU-SDL-SWALLOW | غلاف SDL يبتلع الطرد القسري لطلاب multi-device | P2 | 25.2 |
| 11 | R-BOT-GATE-FAILOPEN | أغلفة استدعاء البوابة fail-open عند الاستثناء | P2 | 24.3 |
| 12 | R-UIPERF-RT-XLEAK | قنوات الطالب المالية بلا فلتر خادمي (UNKNOWN حي) | P2 | 16.0 |
كلها تربط مكوّنات موجودة فعلاً (جداول/نوى/أحداث) لتنتج قيمة أكبر. مرتّبة بنسبة القيمة إلى الجهد.