
نظام تشغيل ضمان العملاء. أجب على استبيانات الأمان التي يرسلها إليك عملاؤك، مرة واحدة فقط.
أجب على استبيانات الأمان التي يرسلها عملاؤك، مرة واحدة.
كل شركة تتعامل مع بيانات العملاء تتلقى الطلبات نفسها مرارًا وتكرارًا: استبيانات الأمان، وتقييمات الخصوصية، ومراجعات مخاطر الموردين، والعناية الواجبة في المشتريات، وطلبات الأدلة. تجيب معظم المؤسسات عليها يدويًا — جدول بيانات من العميل، ومجلّف من السياسات، وسلسلة رسائل بريد إلكتروني، وذاكرة أحدهم لما قاله في المرة السابقة.
يحوّل CAOS ذلك إلى نظامٍ مرجعيٍّ معتمد (system of record). تتحول الاستبيانات إلى أعمال مهيكلة قابلة للإجابة. وتصبح الإجابات المكتملة ووثائق الامتثال لديك مستودعًا معرفيًا قابلًا للبحث والاستشهاد. يبدأ الاستبيان التالي مما قلته سابقًا، مع إمكانية تتبع كل ادعاء إلى المستند أو الإجابة السابقة التي جاء منها.
إنه يُستضاف ذاتيًا (self-hosted). تبقى سياساتك وإجاباتك واستبيانات عملائك على بنيتك التحتية.
الحالة: v0. يعمل CAOS في الإنتاج، لكن هذا المستودع أصبح عامًا للتو. لا تزال الواجهات والمخطط (schema) والإعدادات قيد التغيير. المساهمات الخارجية غير مفتوحة بعد — انظر المساهمة.
يقرأ الاستبيانات دون تخمين. ارفع ملف XLSX الخاص بالعميل وسيعرضه CAOS بأمانة — الأوراق والصفوف والخلايا والأعمدة المخفية وقوائم التحقق المنسدلة. ثم تحدد الصفوف القابلة للإجابة والخلايا المطلوب ملؤها، في نطاقات بدلًا من خلية واحدة في كل مرة. لا يوجد محلل (parser) مخصص لكل عميل، لأنه لا يوجد معيار: قد يكون الصف الغامق سؤالًا، وقد يكون العمود الفارغ هدف الإجابة، وكل استدلال (heuristic) يُصيب مع دفتر عمل يُخطئ بثقة مع آخر.
يبني مستودعًا معرفيًا من العمل الذي أنجزته بالفعل. عند إغلاق استبيان، تُنشر صفوفه المُجابة كأسئلة وأجوبة قابلة لإعادة الاستخدام. وتصبح السياسات والشهادات والتقارير المرفوعة مقاطع قابلة للاستشهاد. كلاهما مُصدَر بإصدارات غير قابلة للتغيير، لذا فإن الإجابة التي أرسلتها في الربع الماضي تظل تفسّر نفسها في مقابل المستند الذي كان ساريًا حينها.
يجد الإجابة السابقة الصحيحة. يجري الاسترجاع البحثَ المعجمي والدلالي معًا، ويدمج ترتيبيهما، ويعيد ترتيب أفضل المرشحين. لغة الامتثال تحتاج إلى كليهما: رموز دقيقة مثل "SOC 2 Type II" تشوّهها التضمينات (embeddings)، وإعادة صياغات يفوّتها البحث بالكلمات المفتاحية تمامًا.
يصوغ إجابات مُسنَدة. اختياري. يبحث النموذج في مستودعك المعرفي عبر أدوات محدودة ومدرجة في قائمة مسموحة، ويصوغ إجابة مع استشهادات — بالإضافة إلى تسمية توضح مصدر سلطتها: Knowledge grounded، أو Mixed، أو General guidance، أو Based on current answer. إجابة General guidance لا تدّعي أي شيء عن مؤسستك، وتقول ذلك صراحةً.
يجيب في Google Chat. أمر الشرطة المائلة /ciso يصل إلى نفس مستودع المعرفة المُسنِد، مع رابط إلى محادثة مستمرة في تطبيق الويب.
يصدّر النتائج إلى دفتر عمل العميل نفسه. تُكتب الإجابات في بنية الملف الأصلية، في الخلايا التي حددتها — وليس في نسخة تقريبية على شكل CAOS منها.
يسجّل كل شيء. سجل تدقيق للكتابة فقط (append-only) مع عدم قابلية للتغيير تفرضها قاعدة البيانات، ويتضمن قيم الإجابات الدقيقة قبل التعديل وبعده.
يُنظَّم CAOS في تسع وحدات نطاقية (domain modules). ثلاث منها — الأدلة (Evidence)، والمعرفة (Knowledge)، والمهام (Tasks) — عامة (global): لا تملكها المشاريع، لأن قيمتها تنبع من عملها عبر التعاملات.
Internet
│
┌─────┴─────┐
│ nginx │ TLS · static frontend · /api proxy
└─────┬─────┘
┌──────────────┼──────────────┐
│ │ │
┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴──────┐
│ Frontend │ │ API │ │ Taskiq │
│ React │ │ FastAPI │ │ workers │
│ static │ │ :18800 │ │ │
└───────────┘ └─────┬─────┘ └─────┬──────┘
│ │
┌─────┴──────────────┴─────┐
│ │
┌─────┴──────┐ ┌──────┴─────┐
│ PostgreSQL │ │ Redis │
│ pgvector │ │ queue+cache│
└────────────┘ └────────────┘
│
┌─────┴─────┐
│ Providers │ Bedrock · local models · Google Chat
└───────────┘
الواجهة الخلفية (Backend) — Python 3.12+، FastAPI، SQLAlchemy 2 غير المتزامن، PostgreSQL مع pgvector، Redis، عمال Taskiq. تنقسم كل وحدة إلى domain → application → infrastructure → presentation، مع تبعيات أحادية الاتجاه. لا يعتمد domain على أي شيء.
الواجهة الأمامية (Frontend) — React 19، TypeScript، Vite، Tailwind v4، shadcn/ui، Zustand. توجد حالة الجلسة والغلاف (shell) على مستوى التطبيق في src/app؛ وتوجد حالة الميزات وذاكرة التخزين المؤقت للخادم في مخازن الميزات (feature stores)؛ وتوجد مهام سير عمل الصفحات طويلة الأمد في وحدات تحكم الميزات (feature controllers).
توجد قناتا الاسترجاع كلتاهما في PostgreSQL. لا توجد قاعدة بيانات متجهات منفصلة — مخزن واحد يعني حدّ معاملةٍ واحدًا ونسخة احتياطية واحدة.
يُبقى الموردون الخارجيون على مسافة آمنة. يفصل كل تكامل بين بروتوكول المنصة (Platform Protocol) — ما يتوقعه CAOS، بلغة المنتج — وبروتوكول المحول (Adapter Protocol)، وتنفيذ البائع (Vendor Implementation) — وهي الطبقة الوحيدة التي تستورد SDK. لهذا السبب تعمل التضمينات وإعادة الترتيب على نماذج محلية مثبتة أو على Bedrock دون أن يكون أي كود تطبيقي على علمٍ بأيهما.
التفاصيل: البنية المعمارية · حدود التكامل
يصبح المستند قابلًا للاسترجاع. رفع → إصدار غير قابل للتغيير → مهمة استيعاب دائمة → commit → إرسال إلى عامل → استخراج مقاطع بطول ≤1,500 حرفًا، يحتفظ كل منها بمعرّف موضع للاستشهاد (صفحة PDF، وفقرة DOCX، ورقة/صف/خلية XLSX) → توليد التضمينات → قابل للبحث. تنفّذ المهمة عملية commit قبل الإرسال، لذا يتحول فشل قائمة الانتظار إلى حالة مرئية قابلة لإعادة المحاولة بدلًا من صف معلّق غير مرئي.
يصبح الاستبيان عملًا مُجابًا عنه. رفع → عروض صفوف أمينة → تحدد الصفوف وأهداف الإجابة → عنصر مساحة عمل واحد لكل صف قابل للإجابة، يشير كلٌّ منها إلى خلاياه المصدرية الدقيقة → حفظ تلقائي للمسودات → إكمال صريح عبر مقارنة-وتعيين (compare-and-set) للمراجعة المتوقعة، بحيث يحصل التبويب القديم على 409 بدلًا من الكتابة فوق عمل زميل.
يصبح العمل المكتمل معرفة. إغلاق استبيان (أو مشروع، وهو ما يُغلقها جميعًا) ينشر الصفوف المُجابة كأسئلة وأجوبة قابلة لإعادة الاستخدام. الصفوف غير المُجابة لا تنشر شيئًا. لا يُستوعَب دفتر العمل الخام أبدًا — إنه عمل تشغيلي، وليس مادة إسناد.
يصبح السؤال إجابة مُسنَدة. يعمل الاسترجاع المعجمي والدلالي بالتوازي → يدمج Reciprocal Rank Fusion ترتيبهما → تعزيز الوسوم → مرشحات الاستبعاد → إعادة ترتيب نافذة محدودة من 50 مرشحًا → يبحث النموذج ويفحص ثم يبحث مجددًا ضمن ميزانية ثابتة → مسودة مع استشهادات تشير إلى إصدارات المصدر غير القابلة للتغيير، وتسمية إسناد.
تتدهور كل مرحلة نحو وضع أضعف لكنه صادق: تعطّل مُعيد الترتيب يعني ترتيبًا مدمجًا دون شارة ثقة؛ وتعطّل التضمينات يعني الرجوع إلى البحث المعجمي، ويُبلَّغ عن ذلك كما هو.
التفاصيل: تدفق البيانات
المتطلبات الأساسية: Docker مع Compose. لأعمال الواجهة الأمامية، Node.js >=22.22.0 و pnpm 11.9.0. يستخدم تطوير الواجهة الخلفية أيضًا uv.
لا حاجة لحساب AWS أو مزوّد LLM — التوليد معطّل افتراضيًا وكل ما يلي يعمل بدونه.
git clone https://github.com/DigiCred-OSS/caos-os.git
cd caos-os/backend
cp .env.example .env
استبدل قيمة BACKEND_USERS_SECRET المؤقتة في backend/.env بما لا يقل عن 32 بايتًا عشوائيًا:
python3 -c 'import secrets; print(secrets.token_urlsafe(48))'
شغّل PostgreSQL وRedis وAPI والعمال. تعمل الترحيلات تلقائيًا عبر خدمة migrator:
cd backend && docker compose up --build
أول تشغيل ينزّل ~500 MB من قطع النماذج المثبتة. عندها يكون API على http://localhost:18800، وSwagger على /api/docs، وPostgreSQL على منفذ المضيف 15432.
لا توجد لدى CAOS صفحة تسجيل — أنشئ المسؤول الأول من المضيف:
./caos-cli user create-superadmin --email [email protected]
cd frontend && pnpm install && pnpm dev
افتح http://localhost:5173.
استخدم
localhostباستمرار لكلٍّ من الواجهة الأمامية وAPI. ملفات تعريف ارتباط الجلسة مرتبطة بالمضيف، لذا فإن خلطlocalhostو127.0.0.1يُسقط جلستك بصمت — وهي المشكلة الأكثر شيوعًا في الإعداد المحلي.
التالي: درس البدء يأخذك من هنا إلى استبيان مُجاب عنه ومُصدَّر.
local في Compose (نموذج Nomic مثبّت و miniLM cross-encoder مدمجان في الصورة). أما الافتراضي في الإنتاج فهو AWS Bedrock. لا ينزّل وقت التشغيل النماذج أبدًا.BACKEND_KNOWLEDGE_GENERATION_PROVIDER و_MODEL لتفعيله.كل إعداد موثق داخل backend/.env.example ومجمّع في مرجع الإعدادات.
cd backend && uv sync --locked
uv run ruff check caos
uv run mypy caos
cd frontend && pnpm install && pnpm lint && pnpm build
لا يتضمن هذا التوزيع المنشور مجموعة اختبارات CAOS الداخلية. الفحص (lint) وفحص الأنواع والبناء النظيف هي بوابات التحقق هنا.
استخدم ./caos-cli في جميع أعمال الترحيل بدلًا من استدعاء Alembic مباشرة — فهو يختار البيئة والحاوية وقاعدة البيانات الصحيحة.
الاتفاقيات الخاصة بالمشروع غير الواضحة من الكود موجودة في AGENTS.md، مع قواعد خاصة بكل وحدة في ملف AGENTS.md الخاص بها.
يتبع docs/ منهجية Diátaxis — فكل صفحة إما درس تعليمي أو إرشاد عملي أو مرجع أو شرح، والفئات الأربع تبقى منفصلة.
يرجى عدم فتح قضايا عامة (issues) للثغرات الأمنية. راجع SECURITY.md للإبلاغ الخاص.
CAOS برنامج مفتوح المصدر، لكنه ليس مفتوحًا بعد للمساهمات الخارجية. نتوقع قبول طلبات السحب (pull requests) الخارجية في عام 2027. وحتى ذلك الحين، تقارير الأخطاء والأسئلة عبر القضايا (issues) مرحّب بها ومفيدة حقًا — انظر CONTRIBUTING.md.
رخصة أباتشي 2.0. حقوق النشر 2026 DigiCred Technologies Pvt Ltd.
| الوحدة | تملك | التوثيق |
|---|
| الهوية (Identity) | أوضاع المصادقة، الجلسات، الأدوار، المستخدمون، ربط الموضوعات الخارجية | الوثائق |
| المشاريع (Projects) | حاوية التعامل؛ سلسلة الإغلاق | الوثائق |
| الاستبيانات (Questionnaires) | قراءة دفاتر العمل، تحديد الصفوف، مساحة عمل الإجابة، التصدير | الوثائق |
| الأدلة (Evidence) | المستودع العام لمواد الامتثال القابلة لإعادة الاستخدام | الوثائق |
| المعرفة (Knowledge) | المصادر، المقاطع، التضمينات، الاسترجاع، الاستثناءات، الاستشهادات | الوثائق |
| الذكاء الاصطناعي (AI) | محادثات CISO، التوليدات، تسميات الإسناد | الوثائق |
| الدردشة (Chat) | التحقق من Google Chat، ربط الهوية، التسليم | الوثائق |
| المهام (Tasks) | العمل البشري المطلوب عبر الوحدات | الوثائق |
| التدقيق (Audit) | سجل الأحداث للكتابة فقط | الوثائق |
| ابدأ | البدء |
| انشر | النشر في الإنتاج · الإعدادات |
| فعّل | توليد الإجابات · Google SSO · Google Chat |
| افهم | البنية المعمارية · تدفق البيانات · عدم قابلية التغيير |
| راجع | HTTP API · الأدوار · CLI المشغِّل |