قائمة الإنتاج
قائمة الإنتاج
Section titled “قائمة الإنتاج”استخدمها قبل تعريض كاظمه لما هو أبعد من loopback. تتوافق مع
AUDIT_DEEP_2026-09-01_EXEC.md
(الموجات 0–8 مُنفَّذة) ومع خطة
REMEDIATION_PLAN_2026-07-21.md
التاريخية (المراحل 0–4). الثوابت: AGENTS.md.
الفحص الدخاني للميزات (البحث / مكتبة المعرفة / البروكسي / شرح الذاكرة): انظر مصفوفة الفحص الدخاني — شغّلها بعد عمليات النشر ذات الصلة.
هل التثبيت حيّ فعلًا؟ بطارية النظام الكاملة — أدوات الدردشة (A)، وHTTP/التشغيل (B)، وكتابة HITL واحدة (C). الجزء A الأخضر لا يعني كاظمه خضراء.
P0 — الأسرار والربط
Section titled “P0 — الأسرار والربط”-
KAZMA_HOSTمضبوط بقصد (127.0.0.1أو0.0.0.0خلف بروكسي فقط) -
KAZMA_SECRETقوي وفريد وليسkazma-local-dev-secretالتاريخي - الربط خارج loopback يفشل مغلقًا بلا سر (CLI / serve)
-
KAZMA_PRODUCTION=1 -
KAZMA_VAULT_KEYمضبوط - فحص الصحة يستخدم
/health/live(العملية) و**/health/ready** (الاعتماديات الحرجة). أما/health/detailsفبمصادقة (يفصح عن النموذج/MCP). واستطلع/health/deepبوصفه عُصفور الكناري الصامت بلا أثر (مفتوح، TTL 30 ثانية)
P0 — دورة الحياة والفشل المغلق
Section titled “P0 — دورة الحياة والفشل المغلق”- الإيقاف الرشيق يصرّف السرب/cron (لا مهام يتيمة)
- NullBus يرفض أدوات الخطر (لا موافقة تلقائية في الوضع بلا واجهة)
- YOLO معطّل ما لم يُضبط
KAZMA_ALLOW_YOLO=1(تجنّبه في الإنتاج الحقيقي) - دلالات مسبار نصف الفتح لقاطع الدائرة سليمة (
_probe_in_flight) - انشر عبر
kazma_guard.py --reload— ولا تقتل python/uvicorn يدويًا أبدًا (الحارس يُنعش حامل المنفذ القديم) - خلف nginx/Caddy/Docker:
KAZMA_TRUSTED_PROXIESمضبوط؛ القرين127.0.0.1ليس اعتمادًا - CSRF مفعّل: عدم تطابق مضيف Origin/Referer → 403 على غير-GET من
/api/*
P1 — عمق الأمان
Section titled “P1 — عمق الأمان”- المصادحة ترفض افتراضيًا على
/api/* - حمايات SSRF للاكتشاف مفعّلة
- إجبار Docker لأداة
code_execحيث يلزم (KAZMA_CODE_EXEC_DOCKER=force؛ التشغيل المحلي على المضيف معطّل في الإنتاج/تعدد المستخدمين) - الكود غير الموثوق / متعدد المستخدمين: E2B Firecracker (
E2B_API_KEY+pip install -e ".[sandbox]"؛KAZMA_E2B=0للتعطيل) - الأسراب متعددة الساعات: Temporal (
KAZMA_TEMPORAL_HOST+pip install -e ".[durable]") - إعداد HA: نسخة تشغيل نشطة واحدة وجلسة ملكية Postgres مخصصة ووحدة حالة كاملة مسيّجة؛ اجتياز تمارين العنقود المستهدف قبل ادّعاء التعافي
- قائمة سماح الأوامر + تنظيف متغيرات البيئة مفعّلان
- حصر جذر مساحة العمل في الإنتاج
- معالجة تزامن cron / الإيقاف / حالات RUNNING الراكدة
- تعدد المشغّلين: قوائم سماح المنصات مضبوطة +
KAZMA_GATEWAY_STRICT_ALLOWLIST=1(2026-08-19؛ وإلا فتعمل المُكيّفات بالسماح للجميع للتوافق الرجعي) -
KAZMA_HITL_CANONICAL_FLOORغير مضبوط على0(الأرضية مفعّلة افتراضيًا منذ 2026-09-16: لا يمكن تقليص قائمة الخطر دون القانونية) - النسخ الاحتياطية خارج الموقع/المتزامنة سحابيًا تتحقق من TLS (WebDAV مفعّل افتراضيًا منذ 2026-08-19؛
backups.offsite.webdav.tls_verify=falseللمختبرات ذات الشهادات الموقّعة ذاتيًا فقط) - restic خارج الموقع: مسبار الكتابة ينجح (
rclone:وs3:— البعيد للقراءة فقط يعني نسخة احتياطية فاشلة) - الأدوات الجديدة لها مدخل
TOOL_TIERS(read/write/danger)؛ وغير المصنّفة = مقيَّدة - الكشط (Scraping): تثبيت IP على المسار المباشر؛ ولا تثبّت عبر
proxy=
سياسات مساحة العمل والتنفيذ المحفوظة
Section titled “سياسات مساحة العمل والتنفيذ المحفوظة”يمكن للمشرف استخدام الدفعة الذرية المصادَق عليها PUT /api/settings بدل
تعديل ملف بيئة التثبيت:
[ {"key": "security.workspace_roots", "value": ["/srv/kazma-projects"]}, {"key": "security.execution.container_required", "value": true}]اختر أدلة مطلقة موجودة على الخادم. يمكن للجذور الصريحة المتعددة الحفاظ
على مساحة قائمة وحصر المستودعات الجديدة منفصلة عنها. يجب أن تبقى الروابط
الرمزية المحلولة داخل جذر مضبوط. وإذا وُجد KAZMA_WORKSPACE_ROOT فيجب أن
يبقى المسار داخل جذر البيئة أيضًا؛ ولا يوسعه حفظ الإعدادات. يرفض الإنتاج
إنشاء المساحات وتبديلها دون أي من السياستين. يفشل مخزن السياسة المفقود أو
غير الصالح مغلقًا.
يتطلب ملف الحاوية الصارم Docker لـpython_exec، ويتجاوز E2B، ويعطّل
shell_exec، ويمنع البديل المحلي حتى لو سمحت به متغيرات البيئة القديمة.
ويرفض أيضًا النمط المحلي process لتحليل المستندات وOCR والتحويل وتعديل PDF
(worker_isolation_required): اختر نمط الحاوية في الإعدادات ← المستندات (في
التثبيت الأصلي يشغّل الحارس وسيط عمال المستندات؛ انظر معالجة المستندات، “Isolated
document workers”). تحتفظ أدوات الملفات وGit الأصلية ببوابات الموافقة. افحص خدمة Docker
الفعلية ونفّذ مقطعًا مؤقتًا موافَقًا عليه قبل تأهيل التنفيذ؛ فجاهزية الخدمة
وحدها لا تتحقق من الصورة أو أذونات الربط. يجعل الملف الصارم code_execution
قدرة جاهزية مطلوبة تلقائيًا؛ وترفض خدمة Docker غير المتاحة المرور. هذه
السياسات محمية من أدوات إعداد الوكيل، وتُستبعد من نسخ الإعدادات القابلة
للنقل مع بقية قيم security.*.
تميّز ملاحظات الموافقة وقت التشغيل بين التفويض ونجاح نتيجة الأداة. تستخدم خوادم MCP المرتبطة بمساحة العمل مثيلات منفصلة محددة النطاق عند استهداف مهمة لجذر آخر؛ ولا يصف الربط العام ذلك المثيل. يزوّد هذا النموذج بحقائق متحقق منها، دون ضمان كل جواب حر يولّده.
تعدد المستخدمين / التعافي النشط والاحتياطي (إن انطبق)
Section titled “تعدد المستخدمين / التعافي النشط والاحتياطي (إن انطبق)”-
KAZMA_DATABASE_URLمضبوط؛ وسكربت الترحيل مشغّل - جلسات معتمة / مستخدم مشرف RBAC منشأ
- متغيرات OIDC إن وُجد SSO
-
KAZMA_PUBLIC_URLصحيح لإعادة التوجيه - يحافظ HA compose / LB على مالك نشط واحد؛ تُنسخ Postgres ووحدة الحالة الكاملة وتُستعادان معًا
- الذاكرة: حصر المستأجر تلقائي مع
KAZMA_PRODUCTION=1؛ اضبطKAZMA_MEMORY_ENFORCE_TENANT=1لتثبيتٍ متعدد المستأجرين غير موسوم بالإنتاج - قبل
KAZMA_MEMORY_STATE_ROLE=primary: يمرّpython scripts/reconcile_memory_mirror.py --dry-runنظيفًا (لا صفوف ميتة في المرآة) - جداول كتالوج المستندات ومهامها واستقبالها على
KAZMA_PG_TABLESعندما يكون مخزن المستندات على Postgres (H-13)
ذكاء المستندات (إن فُعّل)
Section titled “ذكاء المستندات (إن فُعّل)”-
documents.enabledمضبوط بقصد (التوافق الافتراضي: مفعّل، لكن ليس المصدر الافتراضي للحقيقة) - التحقق من جاهزية بيانات المستندات الوصفية عبر
GET /api/documents/ops/readiness؛ لا تؤهّل بيانات Postgres الوصفية وحدها نسخ تشغيل نشطة متزامنة -
degraded_reasonsفي الجاهزية فارغة، أو كل سبب منها مفهوم (stranded_intake_reservationsيساوي 0) - نمط التنفيذ مختار عن قصد: نمط
processالافتراضي بلا عزل لنظام الملفات أو الشبكة (الجاهزيةhostile_document_profile: unqualified)؛ للمستندات التي لا تثق بها، انشر وسيط الحاويات (معالجة المستندات ← عمال مستندات معزولون) وتأكد أنworker_isolation.readyوimage_code_matchesصحيحتان -
documents.capacity.storage_free_floor_bytesمضبوط بتحفّظ (الافتراضي 512 ميبيبايت) - معرفة مسار النسخ الاحتياطي للمستندات (النسخة كل 6 ساعات:
kazma-data/backups/document-store-*على SQLite، وdocument-pg-*على Postgres) وتجربة استرداد مرة واحدة؛ والبيانات الوصفية للمستندات ومهامها على الخلفية نفسها (البيانات الوصفية على SQLite بجانب مهام على Postgres ليس لها نسخ احتياطي منسّق للمستندات) - خطة الترحيل تشمل
documents.db+ شجرة المحتوى (الترحيل)؛ ومخزن مستندات Postgres ينتقل بـscripts/document_pg_backup.py، لا بالحزمة - فهم المحركات الاختيارية (fitz / WeasyPrint / LibreOffice قد تكون CONDITIONAL)
- PDF العربي / النص الإلكتروني:
pip install -e ".[document-platform]"(PyMuPDF + pypdfium2)؛ جهوزية المحلّل (GET /api/documents/health) يجب أن تكون ready، لا وضعًا نصيًا متدهورًا - ملفات PDF العربية الممسوحة ضوئيًا: Tesseract نظامي + بيانات
araالمدربة (وeng) على PATH؛ وOCR العربي غير مؤهل للإصدار (لا تُقرأ الأرقام العربية الهندية) - البرمجيات الخبيثة: ثبّت ClamAV (
clamscan/clamdscanعلى PATH) وتحقق من الجهوزيةmalware.available. معKAZMA_PRODUCTION=1يكون الفحص فاشلًا مغلقًا افتراضيًا: دون ماسح يُرفض كل رفع - التحليل البعيد (
documents.security.remote_parse) يبقى معطّلًا ما لم يكن إرسال المستندات الأصلية إلى طرف ثالث مقصودًا - الفحص الدخاني للشهادة: يخرج
python scripts/certify_documents.pyبغير FAIL؛ وسجّل التقرير إن رقّيت الكناري
الدليل: ذكاء المستندات · التشغيل: معالجة المستندات.
الترقيات (تثبيت git)
Section titled “الترقيات (تثبيت git)”- يستخدم المشغّلون
kazma update(لاgit pullارتجاليًا) — انظر تحديث كاظمه - بعد التحديث:
kazma --version/ HEAD يطابقorigin/main؛ وimport kazma_cliيعمل؛ وkazma serveيبدأ - الإضافات الاختيارية ما تزال موجودة (rag / document-platform)؛ استخدم
kazma update --reinstall -yإن مُحيت
الفحص الدخاني
Section titled “الفحص الدخاني”& .venv\Scripts\python.exe scripts\smoke_production.py --base http://127.0.0.1:9090 --secret $env:KAZMA_SECRET# Document platform (optional but recommended when documents.enabled):& .venv\Scripts\python.exe scripts\certify_documents.py# Optional industry smoke (HITL card, health/deep):# scripts\industry_smoke.ps1تأكد أن GET /health/deep يعيد 200 بعد إعادة التحميل. HITL: بطاقة Approve واحدة، والنقرة الثانية 409.
شغّل أيضًا صفوف المستندات في مصفوفة الفحص الدخاني.
عمليات ذات صلة
Section titled “عمليات ذات صلة”- Postgres وSaaS
- تعدد النسخ وبقايا SaaS
- التعافي من الكوارث
- تعدد المناطق
- OIDC
- معالجة المستندات
- متغيرات البيئة
طبقة الالتزام
Section titled “طبقة الالتزام”- التحقق من مفتاح الإيقاف:
KAZMA_COMMITMENT_ENABLED=0يعطّل البوابة (فشل مفتوح) - وتيرة GC تعمل:
_start_commitment_gc_schedulerكل 15 دقيقة (ابحث في السجلات عن ملخصcommitment GC:) - الأعلام:
swarm_scope_enforceمفعّل افتراضيًا (العمال محدودون بـ HIGH منذ 2026-08-15)؛ وenforce_unknown_mutatorsمفعّل افتراضيًا؛ وsoul_requires_confirmمعطّل افتراضيًا في المختبر ومفعّل تلقائيًا في الإنتاج / تعدد المستخدمين — يبدّله المشغّلون عبر ConfigStore / env - نقطة القياس:
GET /metricsتعرضkazma_commitment_decisions_total{decision=...}+kazma_commitment_pending - طابور تأكيد الروح:
GET /api/commitment/soul/pendingيسرد الفروقات المعلّقة؛ وPOST /api/commitment/soul/{cid}/confirmيمنح الموافقة - استثناءات الأدوات الدلالية تفشل مغلقًا (مفتاح الإيقاف نفسه يبقى فاشلًا مفتوحًا)
سجل بوابات HITL وتسليم الأدوار
Section titled “سجل بوابات HITL وتسليم الأدوار”-
kazma-data/hitl_gates.dbيكتب صفوفًا (pending → claimed → settled) - الويب يرسم من
_serverGates— لا ختم Approved وهميًا؛ والمطالبة الثانية 409 - FanOut للسرب (منصتان أو أكثر) ثلاثي الحالة (الرفض صوت، لا تسوية فورية)
-
KAZMA_GATE_REGISTRY=0غير مضبوط في الإنتاج (مسار التنفيذ النحيف احتياطًا فقط) -
close_turnيُبقي الدور مفتوحًا ما دام صف معلّق قائم
النسخ الاحتياطي وتنبيهات التشغيل
Section titled “النسخ الاحتياطي وتنبيهات التشغيل”- وتيرة النسخ الشامل +
native_pg_backupهي 6 ساعات (ليست 24 ساعة)؛ والاحتفاظ الافتراضي بمنصة PG المحلية 3 (restic يحفظ التاريخ) - مع Postgres: تدريب الاستعادة في التمرين العميق الأسبوعي مفعّل (افتراضي منذ 2026-09-27) ودور قاعدة البيانات يملك
CREATEDB؛ وسجل التمرين يسمّيpostgres:restore - مدة الاحتفاظ بـ سجل خطوات الدردشة كما تريد (الإعدادات → النظام؛ الافتراضي 30 يومًا، و0 يحتفظ بكل نقطة تفتيش). تثبيتٌ يُرقّى ومعه سنوات من السجل: اضبطها قبل الترقية إن أردت الاحتفاظ بها
- النسخ الشامل يفحص حداثة تفريغ PG — التفريغ المفقود/القديم ليس
"ok": true -
ops_alertsتصل تيليجرام (وFanOut إن كان Discord/Slack مضبوطًا): الإعدادات ← المحوّلات والمسارات ← إرسال تنبيه تجريبي يسمّي كل مسار وصلته الرسالة؛ ومفتاح الإيقافKAZMA_OPS_ALERTS=0فقط أثناء حادثة صاخبة - تيليجرام الحارس منفصل (سقوط الابن). جودة سبب الـ 503 (
database: …مقابلService Unavailable) مؤجَّلة:GUARD_OPS_ALERTING_CAUSE_QUALITY.md

