التقسية المتبقية لتعدد النسخ وSaaS
التقسية المتبقية لتعدد النسخ وSaaS
Section titled “التقسية المتبقية لتعدد النسخ وSaaS”يبقى الطابع الافتراضي لكاظمه مشغّلًا واحدًا / عقدة واحدة. الأعمال أدناه تغلق الفجوات المتبقية لتعدد المستخدمين وتعدد النسخ حيث تسمح المعمارية — ولا تدّعي SaaS كامل تعدد المستأجرين.
قوة المضيف بعد HITL
Section titled “قوة المضيف بعد HITL”بعد أن يوافق إنسان على أداة خطرة، يبقى المضيف قويًا بحكم التصميم. التقسية (الدفعة المتبقية 2026-07):
| الضابط | السلوك |
|---|---|
| الثنائيات بقائمة سماح | لا مفسّرات؛ والإنتاج يُسقط ps/kazma |
| أدوات الأرشفة | tar/zip معطلان في وضع الإنتاج الصارم ما لم يُضبط KAZMA_SHELL_ALLOW_ARCHIVE=1 |
| PATH مقيَّد | KAZMA_SHELL_STRICT مُفعَّل افتراضيًا في الإنتاج — أدلة النظام/البناء فقط |
| تحليل الثنائي | shutil.which تحت PATH مقيَّدًا؛ ولا /tmp/evil/git |
| بيئة منظَّفة | لا مفاتيح API للعملية الأب |
| قائمة حجب Git | push/force/credential/reset/rebase/clean -fd محجوبة |
| مسارات مساحة العمل | الوسائط المطلقة يجب أن تبقى داخل جذر مساحة العمل |
| code_exec عبر Docker | إجباري في الإنتاج / KAZMA_CODE_EXEC_DOCKER=force |
لم يُزل: shell_exec / file_write / python_exec المُوافَق عليها ما
زالت تغيّر المضيف من أجل المشغّل الموثوق. تعامل مع YOLO ومنح HITL
الطويلة بوصفها صلاحية مرتفعة.
ذكاء المستندات (المهام + البيانات الوصفية)
Section titled “ذكاء المستندات (المهام + البيانات الوصفية)”| الطبقة | حالة تعدد النسخ |
|---|---|
| حجز/إيجار المهام | نعم على Postgres (documents/jobs_pg.py) عند ضبط KAZMA_DATABASE_URL |
| عمليات CRUD للبيانات الوصفية | نعم عند KAZMA_DOCUMENTS_METADATA_BACKEND=postgres أو auto مع PG (repository_pg.py) |
| كتل المحتوى | نظام ملفات/وحدة تخزين مشتركة على documents.storage_root مطلوبة |
| GC | مستقل عن الخلفية — retention._mark يوزّع إلى repository.gc_mark على SQLite وPostgres معًا |
تحقق دائمًا من GET /api/documents/ops/readiness. انظر عمليات معالجة المستندات وذكاء المستندات.
عزل تعدد المستأجرين
Section titled “عزل تعدد المستأجرين”| الطبقة | الحالة |
|---|---|
| ContextVar المستأجر | tenant_context + البرمجية الوسيطة |
X-Tenant-ID من العميل | يُتجاهَل في الإنتاج أو تعدد المستخدمين؛ JWT / الأصيل فقط |
| الجلسات المعتمة | مفروضة عند تعدد المستخدمين |
| قوائم ACL للمستندات | ACL للمستندات + الأصيل لكل مستأجر على المستودع |
| أسرار الخزنة | عمود المستأجر + فلتر ContextVar |
| الذاكرة المتجهة | فلتر tenant_id في البيانات الوصفية على الاستعلام |
| مهام السرب | يُختم metadata.tenant_id عند الإرسال |
| المعرفة / cron / MCP | ما تزال عالمية إلى حد كبير (غير مُنتَجة لكل مستأجر) |
البيئة: KAZMA_MULTI_USER=1، وKAZMA_PRODUCTION=1، وKAZMA_DATABASE_URL,
وKAZMA_VAULT_KEY، وKAZMA_JWT_SECRET (عند تعدد المستأجرين بـ JWT).
حالة العمليات في تعدد النسخ
Section titled “حالة العمليات في تعدد النسخ”| الحالة | كانت | أصبحت |
|---|---|---|
| موافقات ناقل HITL | حدث داخل العملية فقط | كتابة مزدوجة في ConfigStore عبر swarm/shared_approvals.py + حدث محلي |
| نتائج مهام السرب | TaskStore (SQLite/PG) | دون تغيير — استخدم Postgres لتعدد العقد |
| استئجار قائمة المهام | عالمية | فلتر metadata.tenant_id تلقائي عند تعدد المستخدمين/الإنتاج |
| قواطع الدارة | ذاكرة العملية | مشتركة عبر ConfigStore عند تعدد المستخدمين/الإنتاج (KAZMA_SHARED_BREAKERS) |
| خوادم MCP (المضافة من المستخدم) | ConfigStore عالمي | مفتاح بنطاق المستأجر tenant.<id>.mcp.servers |
| قائمة مهام cron | عالمية | عمود tenant_id؛ قائمة الواجهة مُرشَّحة |
_active_tasks | ذاكرة العملية | ما تزال محلية للعملية؛ ثبّتها عبر TaskStore للتاريخ |
| مهام زحف قاعدة المعرفة | العملية + ConfigStore | ConfigStore دائم (stores/kb_jobs.py) |
| مكتبات المعرفة | عالمية | عمود tenant_id + فلتر list/get عند تعدد المستخدمين/الإنتاج |
| مُكيّفات ناقل السرب | مفرد داخل العملية | توزيع (fan-out) متعدد المنصات؛ وما تزال عملية واحدة |
| ترابط المتصفح | لا شيء | كوكيز kazma-replica (KAZMA_REPLICA_ID، موازنة أحمال لاصقة) |
الحد الأدنى لمكدّس تعدد النسخ: Postgres مشترك (KAZMA_DATABASE_URL)،
وkazma-data مشترك/مُتاح عبر الشبكة أو مخزن كائنات لمساحات العمل، وموازن
أحمال لاصق على كوكيز kazma-replica (أو تجزئة IP المصدر)، ونفس
KAZMA_SECRET / مفتاح الخزنة على كل العقد. اضبط KAZMA_REPLICA_ID
فريدًا لكل عملية.
بيئة حماية code_exec على المضيف
Section titled “بيئة حماية code_exec على المضيف”| الوضع | السلوك |
|---|---|
| الإنتاج أو تعدد المستخدمين | لا python_exec محليًا على المضيف — Docker مطلوب |
KAZMA_CODE_EXEC_DOCKER=force | السلوك نفسه |
| مخرج المختبر | KAZMA_CODE_EXEC_ALLOW_LOCAL=1 (غير موصى به) |
Discord / Slack مقابل Telegram
Section titled “Discord / Slack مقابل Telegram”| الميزة | Telegram | Discord | Slack |
|---|---|---|---|
| الدردشة النصية | كامل | كامل | كامل |
| مؤشر الكتابة | كامل | نعم | نعم |
| الصوت STT/TTS | مسار عميق | العمق نفسه عبر voice_helpers + discord_stt / slack_stt | |
| أزرار HITL للرسم | telegram_keyboards | discord_keyboards | slack_blocks |
| أزرار HITL للسرب | لوحة مفاتيح مضمّنة | Components v2 | Block Kit |
| معرّفات الاستدعاء المشتركة | platform_callbacks | الأنظمة نفسها | الأنظمة نفسها |
| تحليل/إرسال معياري | telegram_parse/send | discord_parse/send | slack_parse/send |
| موافقات مشتركة لتعدد النسخ | نعم | نعم | نعم |
| تفاعلات الرسائل | setMessageReaction | واجهة set_reaction API | واجهة set_reaction API |
التخطيط (وحدات تجربة الاستخدام 2026-07):
adapters/ platform_callbacks.py # hitl: / swarm_ / model_ schemes platform_keyboards.py # Discord components + Slack blocks telegram_{keyboards,callbacks,parse,send,stt}.py discord_{keyboards,callbacks,parse,send}.py slack_{blocks,callbacks,parse,send}.py voice_helpers.py