1. عائلتا المسارات
وحدة التحكم — اضبط
/api/workspace/firewall/*. مُصادَق بـرمز جلستك / وصولك
(UserAuth)، ضمن نطاق مساحة عملك النشطة. ألّف سياسات، اقرأ أحداثاً،
سجّل خوادم MCP، حُلّ موافقات. كل إجراء مُقيَّد بالدور.البوابة — افرِض
/api/v1/firewall/*. مُصادَق بـمفتاح ضمن نطاق بوابة جدار الحماية
(مفتاح بـ is_firewall_gateway مضبوط). السطح من آلة إلى آلة الذي
يستدعيه وكيلك أو عميل MCP وقت التشغيل. مفتاح ترحيل عادي يحصل على
403 هنا.مسارات وحدة التحكم لا تأخذ أبداً مفتاح ترحيل
sk-orca-…، ومسارات البوابة
لا تأخذ أبداً رمز جلسة. خلطهما هو أشيع 401/403 عند توصيل جدار الحماية
أول مرة. مفتاح sk-orca-… الوحيد الذي ينتمي إلى استدعاء /v1/firewall/*
هو مفتاح مسكوك بـ is_firewall_gateway مفعّلاً — انظر
النطاق والمفاتيح والسياسات.2. الأدوار في لمحة
تحلّ مسارات وحدة التحكم دور مساحة عملك وتقيّد تبعاً لذلك. القراءات التي لا تحمل أصل استدعاء أداة مفتوحة لأي عضو؛ والكتابات وأي شيء يكشف وسائط استدعاء الأداة تتطلب Developer+.| الدور | يمكنه فعل |
|---|---|
| Viewer / member | قراءة الإعدادات، والسياسات، والإعدادات المسبقة، والأدوات المكتشفة، والمحاكاة، والشذوذ. |
| Developer+ | كل ما سبق، بالإضافة إلى كل كتابة، وسطح events/runs/trace، وتشغيل test التجريبي. |
| Admin+ | إضافةً، ضبط علامة is_firewall_gateway على مفتاح وقراءة النص الصريح لمفتاح بوابة. |
3. اضبط سياسة من وحدة التحكم
مسارات وحدة التحكم هي كيف تؤلّف وتفحص السياسة. تضبط كل شيء في واجهة لوحة التحكّم — هذه هي نفس نقاط النهاية التي تستدعيها.السياسات والإعدادات
| الطريقة والمسار | الدور | الغرض |
|---|---|---|
GET /api/workspace/firewall/settings | Member | وضع observe + الأعداد. |
PUT /api/workspace/firewall/settings | Developer+ | تحديث إعدادات جدار حماية مساحة العمل. |
GET /api/workspace/firewall/policies | Member | سرد السياسات. |
GET /api/workspace/firewall/policies/:id | Member | تفاصيل سياسة واحدة. |
POST /api/workspace/firewall/policies | Developer+ | إنشاء سياسة. |
PUT /api/workspace/firewall/policies | Developer+ | تحديث سياسة. |
DELETE /api/workspace/firewall/policies/:id | Developer+ | حذف سياسة. |
POST /api/workspace/firewall/rules | Developer+ | إضافة قاعدة. |
PUT /api/workspace/firewall/rules | Developer+ | تحديث قاعدة. |
DELETE /api/workspace/firewall/rules/:id | Developer+ | حذف قاعدة. |
الموقف والإعدادات المسبقة وصناديق الرمل
| الطريقة والمسار | الدور | الغرض |
|---|---|---|
GET /api/workspace/firewall/presets | Member | الإعدادات المسبقة المدمجة للقواعد. |
GET /api/workspace/firewall/templates | Member | معرض قوالب حالات الاستخدام. |
POST /api/workspace/firewall/templates/apply | Developer+ | تطبيق قالب ← سياسة واحدة + قواعدها. |
POST /api/workspace/firewall/autonomy | Developer+ | تطبيق مستوى استقلالية (tight / balanced / permissive). |
POST /api/workspace/firewall/autonomy/undo/:audit_id | Developer+ | تراجع بنقرة واحدة من لقطة التدقيق. |
GET /api/workspace/firewall/simulate | Member | ما الذي سيحجبه مستوى (?level=). |
POST /api/workspace/firewall/test | Developer+ | تشغيل تجريبي لسياسة مقابل استدعاء عينة. |
القابلية للملاحظة
| الطريقة والمسار | الدور | الغرض |
|---|---|---|
GET /api/workspace/firewall/discovered-tools | Member | الأدوات المرئية، مُعلَّمة covered / gap. |
GET /api/workspace/firewall/events | Developer+ | سرد أحداث جدار الحماية (قابلة للتصفية). |
GET /api/workspace/firewall/events/by-request/:request_id | Developer+ | أحداث طلب واحد. |
GET /api/workspace/firewall/events/aggregate | Developer+ | تجميع التشغيلات / الجلسات. |
GET /api/workspace/firewall/trace/by-run | Developer+ | عقد التتبّع لتشغيل (?run_id=). |
GET /api/workspace/firewall/anomalies | Member | تغذية الشذوذ. |
POST /api/workspace/firewall/anomalies/snooze | Developer+ | تأجيل التغذية (≤ 7 أيام). |
خوادم MCP
سجّل خوادم Model Context Protocol التي يصل إليها وكلاؤك، خلف بوابة واحدة مدقَّقة. تُخزَّن بيانات الاعتماد مشفّرة وتُخفى عند القراءة.| الطريقة والمسار | الدور | الغرض |
|---|---|---|
GET /api/workspace/firewall/mcp_servers | Member | سرد الخوادم المسجّلة. |
GET /api/workspace/firewall/mcp_servers/:id | Member | تفاصيل خادم. |
POST /api/workspace/firewall/mcp_servers | Developer+ | تسجيل خادم (409 على name مكرّر). |
PUT /api/workspace/firewall/mcp_servers | Developer+ | تحديث خادم. |
DELETE /api/workspace/firewall/mcp_servers/:id | Developer+ | إزالة خادم. |
POST /api/workspace/firewall/mcp_servers/:id/probe | Developer+ | قابلية الوصول + مصافحة tools/list. |
name فريداً، وendpoint، وauth_mode
(none / bearer / oauth / basic)، وحالة صحة status
(ok / degraded / down). انظر Firewall MCP
لدورة الحياة الكاملة وحجر المهارة الصحي.
4. افرِض عند البوابة
هذه تعمل على مفتاح ضمن نطاق بوابة جدار الحماية، لا جلستك. إنها ما تستدعيه حلقة وكيلك أو عميل MCP وقت التشغيل.| الطريقة والمسار | الغرض |
|---|---|
POST /api/v1/firewall/evaluate | حكم ما قبل الإرسال لاستدعاء أداة واحد. |
POST /api/v1/firewall/evaluate_plan | فحص ما قبل التنفيذ لخطة متعددة الخطوات. |
ANY /api/v1/firewall/mcp | نقطة نهاية بوابة MCP الموحَّدة. |
GET /api/v1/firewall/mcp_servers | تعداد خوادم مساحة العمل المسجّلة. |
GET /api/v1/firewall/approvals/:id | استطلاع حالة موافقة استدعاء مُعلَّق. |
POST /api/v1/firewall/approvals/:id/callback | استدعاء موافقة مُوقَّع بـ HMAC. |
مثال واحد ملموس: قيّم استدعاء أداة
قبل أن يرسل وكيلك أداة، اطلب من البوابة حكماً. مرّر المفتاح ضمن نطاق بوابة جدار الحماية — لا مفتاح الترحيلsk-orca-… لديك:
allow أو audit أو deny أو sanitize أو
pending_approval. على deny تتخطّى الاستدعاء وتُظهر السبب للنموذج؛ وعلى
sanitize تمرّر الوسائط المنظَّفة التي تعيدها البوابة (sanitize ينقّح
وسائط استدعاء الأداة فقط — لا المحتوى الذي تعيده أداة)؛ وعلى
pending_approval تدخل حلقة الموافقة أدناه.
5. مصافحة الموافقة (HITL)
حكمpending_approval يعلّق الاستدعاء لإنسان. خطأ HTTP أثناء التعليق هو
firewall_approval_pending. تجاوزه حلقة من ثلاث خطوات مقسومة عبر عائلتي
المسارات:
يحلّ مراجِع التعليق
من وحدة التحكم (
PATCH /api/workspace/firewall/approvals/:id،
Developer+)، أو ينشر نظامك الخاص استدعاءً راجعاً مُوقَّعاً بـ HMAC
إلى POST /api/v1/firewall/approvals/:id/callback. يتحقّق الاستدعاء
الراجع من HMAC مضمّناً — لا تُقبل مصادقة أخرى.يستطلع وكيلك الموافقة
GET /api/v1/firewall/approvals/:id بمفتاح البوابة، حتى تنقلب
الحالة إلى approved أو rejected.6. كيف يبدو الحجب
| النتيجة | HTTP | الرمز |
|---|---|---|
| استدعاء أداة مرفوض (سطح inbound) | 400 | firewall_blocked |
| مرفوض عبر بوابة MCP | خطأ أداة | firewall deny: <reason> |
| مُعلَّق للموافقة | 400 | firewall_approval_pending |
firewall_blocked معلَّم skip-retry — إعادة تشغيل الاستدعاء المطابق
تماماً ستحجب مجدداً فحسب، فيتراجع العميل المعيد للمحاولة بدلاً من القرع.
قائمة الرموز الكاملة تعيش في رموز الأخطاء.
7. مراجع ذات صلة
Guardrail API
نظير سياسة المحتوى — مسارات
/api/guardrail/* لمستوى النص.مسرد الأحكام
كل حكم وماذا يفعل باستدعاء.
Glob وJSONPath
قواعد المطابقة خلف
tool_name_glob وargs_match.Compliance API
الحزم، والتقارير المُوقَّعة، والإقامة، والمحو.
8. الأسئلة الشائعة
لماذا يحصل مفتاح الترحيل لديّ على 403 على /api/v1/firewall/evaluate؟
لماذا يحصل مفتاح الترحيل لديّ على 403 على /api/v1/firewall/evaluate؟
تتطلب مسارات البوابة مفتاحاً ضمن نطاق بوابة جدار الحماية — مفتاحاً
مسكوكاً بـ
is_firewall_gateway مضبوطاً (إجراء Admin+). مفتاح ترحيل
عادي، حتى الصالح، يحصل على 403. اسكُك مفتاح بوابة مخصّصاً لوقت تشغيل
وكيلك.هل يستطيع viewer قراءة أحداث جدار الحماية؟
هل يستطيع viewer قراءة أحداث جدار الحماية؟
لا. مسارات
events وevents/aggregate وtrace هي Developer+ لأن
السجلات تحمل أصل وسائط استدعاء الأداة. يستطيع المشاهدون قراءة
الإعدادات، والسياسات، والإعدادات المسبقة، والأدوات المكتشفة، والمحاكاة،
وتغذية الشذوذ.أين أحلّ موافقة مُعلَّقة — وحدة التحكم أم البوابة؟
أين أحلّ موافقة مُعلَّقة — وحدة التحكم أم البوابة؟
أيّهما. يحلّها إنسان في وحدة التحكم عبر
PATCH /api/workspace/firewall/approvals/:id (Developer+)، أو ينشر
نظامك الخاص قراراً مُوقَّعاً بـ HMAC إلى
POST /api/v1/firewall/approvals/:id/callback. يستطلع الوكيل
GET /api/v1/firewall/approvals/:id بغض النظر عن أي مسار حلّها.هل ينظّف sanitize ما تعيده أداة؟
هل ينظّف sanitize ما تعيده أداة؟
لا. حكم
sanitize ينقّح وسائط استدعاء الأداة فقط — لا المحتوى الذي
تعيده أداة أبداً. على سطح inbound، حيث لا توجد بعد وسائط وقت
الاستدعاء، يتصاعد sanitize إلى حجب. انظر
قواعد جدار الحماية.لكيفية تركيب هذه التحكّمات مع حواجز الحماية وبقية البوابة، انظر تأمين وكلاء الذكاء الاصطناعي و حواجز الحماية مقابل جدار الحماية.
