Endpoint ليس موضع الثقة
تبقى Session وتنفيذ workload داخل بيئة مضبوطة، ولا يمثّل Endpoint إلا طبقة التفاعل.

ZERO-TRUST WORKSPACE DELIVERY
يفصل Workspace بيئة العمل والوصول البعيد عن Endpoint المستخدم؛ إذ تجتمع Identity وPolicy وDLP وScheduling وSession وExecution في نموذج منتج واحد قابل للإدارة.
مكوّنات 4SO Workspace: المتصفّح والسياسة ومستويا التحكم والتنفيذ المنفصلان
مشكلة المنتج
تعتمد الفرق عادةً على أدوات منفصلة لكلٍّ من Browser وDesktop وRemote Access وPolicy وSession. يجمعها Workspace في تجربة واحدة موحّدة ويفصل التنفيذ المحمي عن جهاز المستخدم.
تبقى Session وتنفيذ workload داخل بيئة مضبوطة، ولا يمثّل Endpoint إلا طبقة التفاعل.
يتوفر Browser وLinux Desktop/Application وRDP/VNC/SSH من تجربة ويب واحدة.
DLP وIdentity وNetwork Path وPeripheral access حاضرة في نموذج المنتج.
تُدار Capacity والعُقد وScheduling وAudit ودورة الحياة من لوحة المشغّل.
لمحة عن القدرات
يجمع Workspace قدرات User Experience وInfrastructure Operations جنباً إلى جنب في منتج واحد.
بيئات Linux مؤقتة (disposable) للعمل اليومي وأحمال العمل المضبوطة.
الوصول إلى الأنظمة القائمة عبر المتصفح دون عملاء متفرقين.
Authentication وAuthorization ونطاق الصلاحية للمستخدم والمشغّل.
يمكن التحكم في File وClipboard وPeripheral وNetwork Path وفق Policy.
اختيار عقدة التنفيذ والسعة والتوسّع بناءً على حالة البنية التحتية.
توسيع Execution Plane دون تحويل Control Plane إلى بيئة لتشغيل أحمال العمل.
قدرات على مستوى Session للمراقبة والتعاون وAudit.
يتابع المشغّل البنية التحتية ودورة حياة Session من رؤية واحدة.
Control Plane وExecution Plane دوران مستقلان. لا يرتبط Workspace Intent ببيئة تنفيذ بعينها؛ وSingle-node نموذج نشر من الدرجة الأولى.
نموذج النشر
يبدأ نموذج النشر بخادم واحد وينمو بإضافة عُقد تنفيذ. Kubernetes خيار للنشر، وليس شرطاً مسبقاً لتجربة المستخدم.
| الملف التعريفي | Control Plane | Execution | الاستخدام |
|---|---|---|---|
| عقدة واحدة | الخادم نفسه | الخادم نفسه | بداية بسيطة وبيئة صغيرة |
| Control + عُقد التنفيذ | Control Plane مستقل | عدة عُقد تنفيذ | فصل الإدارة عن تنفيذ Workspace |
| Multi-zone | Control Plane مركزي | Execution في عدة Zones | القرب من المستخدم وتوزيع السعة |
| HA Control Plane | متعدد العُقد | Execution Pool مستقل | تكرار Control Plane والعمليات المؤسسية |
المعمارية
يبقى Intent وPolicy في Control Plane؛ وتتولى الوكلاء (Agents) الإدارة، بينما تعمل Session الفعلية في Execution Plane.
| الطبقة | Component / Protocol | الدور | العقد |
|---|---|---|---|
| State Authority | PostgreSQL | Workspace intent وSession lifecycle وPolicy وNode/Capacity وdurable operations | لا تُنشئ UI ولا Agent مصدراً مستقلاً للحالة |
| Control Plane | Go services + Product API | Identity وAuthorization وScheduling وlifecycle وaudit | Control Plane ≠ Execution Plane |
| Agent Plane | Outbound-first mTLS agents | Node management وobserved state وتنفيذ bounded action | صلاحية Agent تمر عبر Product API/RBAC |
| Linux Streaming | KasmVNC | Browser/Desktop/Application workspace streaming | يبقى Protected execution على Execution Plane |
| Remote Access | Apache Guacamole ecosystem | RDP / VNC / SSH من المتصفح | يقع Remote protocol خلف سطح Identity/Policy نفسه |
Install & Runtime Contract. لا يُثبَّت Workspace من Source checkout؛ فـ release artifact وpreflight وresume boundary جزء من Product Contract نفسه.
| الحد | Mechanism | العقد التقني |
|---|---|---|
| Release artifact | MANIFEST.json + SHA256SUMS | تُسلَّم API وController وEdge وCLI وmigration ومدخلات runtime كحزمة deterministic. |
| Preflight 1 | Read-only boundary preflight | تُفحص release cache والمضيف وحدود التثبيت قبل أي mutation. |
| Release authority | Exact cached artifact | يُنشر Artifact المتحقَّق منه، بهوية مرتبطة بـ commit/manifest، في cache يملكه installer؛ وتُرفض hard-link وpermission غير الآمنة. |
| Preflight 2 | Cached-artifact preflight | يُفحص Artifact نفسه بدقة مرة أخرى قبل convergence كي لا ينفصل مسار Source عن مسار Runtime. |
| Host exposure | Loopback TLS edge | PostgreSQL وControl API غير منشورين على المضيف (host-published)؛ ويبقى endpoint المعتمد للمنتج على TLS edge المحدود. |
| Diagnosis / resume | Doctor + status-json | يُبلَّغ عن resume_required وlast_safe_resume_point من durable owner boundary، لا من تخمين المتصفح. |
| Execution | Docker Engine first · Kubernetes optional | يعمل KasmVNC وGuacamole في Execution Plane. |
دورة الحياة
من المصادقة إلى Scheduling وتطبيق Policy وResume وRecording وEnd، كل ذلك جزء من دورة حياة المستخدم والبنية التحتية.
ملفات Workspace
يدخل المستخدم من Catalog واحد، وتُدار اختلافات بيئة التنفيذ خلف العملية نفسها.
متصفح Linux مضبوط للوصول إلى تطبيقات الويب.
Desktop أو Application لينكس عبر Streaming.
اتصال آمن بالأنظمة القائمة من المتصفح.
Control وExecution على Host واحد.
عُقد تنفيذ مستقلة تحت Control Plane واحد.
Execution أقرب إلى المستخدم أو Resource.
تدفق Session والاستعادة
تنتقل Launch وStop وRestart وRecovery من Product API إلى Operation/Outbox، وتُرصد حالة Session بمعزل عن حالة الطلب.
لا تُنشأ Session إلا على Node مصرَّح بها وجاهزة.
Identity/Policy مشتركة، أما Execution Path فمختلف.
تحدد Failure class ما إذا كان سيُنفَّذ repair أو cleanup.
لا تُنشأ Session فعلياً إلا بعد admission وscheduling.
يتصل Browser بـ protocol runtime دون أن يصبح endpoint موضع الثقة.
يرتبط Restart بـ successor session قابلة للتتبع.
Recovery ليست مثل Restart العادي.
تتغير بنية Session التحتية دون ترك workload يتيماً (orphan).
Policy وCapacity أيضاً جزء من Runtime Session، وليستا إعدادات هامشية.
يبقى تغيير Policy قابلاً للتتبع من Authority حتى تطبيقه على Session.
لا تدخل Capacity الجديدة إلى Pool إلا بعد Trust وHealth وScheduling eligibility.
| Action / Flow | Admission / Preconditions | Execution / Lock | Success Criterion | Failure / Recovery |
|---|---|---|---|---|
| Launch Workspace | يجب أن تسمح صلاحية Actor/Project وCatalog entry وPolicy وCapacity | Idempotency-Key → durable Operation/Outbox → scheduler/Agent | يُعاد Session ID وobserved session/runtime state لـ Workspace نفسه | يمكن أن ينشئ Failure حدث retry/recovery؛ ولا تخمّن UI حالة Session من Operation |
| Stop Session | Session قائمة وصلاحية صالحة | تنتقل Operation مستقلة للإيقاف إلى Agent/runtime | لم تعد Session في حالة serving/running وتصبح Operation نهائية (terminal) | قابلة للإلغاء قبل lease؛ وبعد side effect يجب أن تُستخلص النتيجة عبر reconcile من runtime |
| Restart Session | Source session صالحة وrestart مسموح | ترتبط Operation بـ restart attempt وsuccessor session | تكون successor session مرصودة وقابلة للاستخدام | يُحفظ correlation بين Source/successor؛ ولا يُعلن الفشل Session السابقة نجاحاً جديداً |
| Recover Runtime | Session لديها failure/recovery condition | إجراء صريح RECOVER_RUNTIME؛ ولا يحل generic restart محل recovery semantics | يعود Runtime إلى observed-ready وتخرج Session من recovery state | تبقى Recovery attempt ووقت آخر retry في history |
| Recover Cleanup | Stale/partial runtime cleanup قابل للإثبات | إجراء صريح RECOVER_CLEANUP على Session نفسها | تُنظَّف الموارد غير المكتملة وتتقارب authority مع runtime | لا يتحول Cleanup دون evidence إلى Session جديدة أو إلى نجاح |
| Node Capacity Lifecycle | تُفحص سلامة Node/Execution Plane وسعتها قبل Add/Drain/Remove | Scheduling منفصل عن node lifecycle لكنه منسَّق معه | تبقى Sessions المحتفظ بها (retained) سليمة وتُقرأ placement/capacity من observed state | يجب ألا يترك Drain/Remove Session نشطة يتيمة بصمت؛ وreconciliation هو مسار العودة |
الإلغاء (Cancellation) ممكن فقط عند الحد الآمن المبكر: أن تكون Operation في REQUESTED/ADMITTED، وبلا lease owner، وقبل تجاوز side-effect boundary. ويحتفظ History بـ Launch/Stop/Restart/Recover وretry count وآخر recovery.
كتالوج العمليات
يرى المستخدم Session؛ وفي الوقت نفسه يدير المشغّل السعة والعُقد وPolicy وAudit.
يحوّل 4SO Workspace الوصول الآمن من اتصالات متفرقة إلى منتج واحد قابل للإدارة.