Endpoint محل اعتماد نیست
Session و اجرای workload در محیط کنترلشده باقی میمانند و Endpoint فقط لایهی تعامل است.

ZERO-TRUST WORKSPACE DELIVERY
Workspace محیط کار و دسترسی راهدور را از Endpoint کاربر جدا میکند؛ هویت، Policy، DLP، Scheduling، Session و Execution در یک مدل محصولی قابلاداره قرار میگیرند.
اجزای 4SO Workspace: مرورگر، سیاست، Control Plane و Execution Plane جدا
مسئلهی محصول
تیمها معمولاً برای 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 و دامنه برای User و Operator.
فایل، Clipboard، Peripheral و Network Path بر اساس Policy قابلکنترلاند.
انتخاب نود اجرایی، ظرفیت و Scale بر اساس وضعیت زیرساخت.
گسترش Execution Plane بدون تبدیل Control Plane به محیط اجرای بار کاری.
قابلیتهای Session-level برای مشاهده، همکاری و Audit.
اپراتور زیرساخت و چرخهی عمر Session را از یک دید واحد دنبال میکند.
Control Plane و Execution Plane دو نقش مستقلاند. Workspace Intent به محیط اجرای خاص قفل نمیشود؛ Single-node یک مدل استقرار درجهیک است.
مدل استقرار
مدل استقرار از یک Server شروع میشود و با افزودن نودهای اجرایی رشد میکند. Kubernetes یک گزینهی استقرار است، نه پیششرط تجربهی کاربر.
| پروفایل | Control Plane | Execution | کاربرد |
|---|---|---|---|
| تکنود | همان Server | همان Server | شروع ساده و محیط کوچک |
| Control + نودهای اجرایی | Control Plane مستقل | چند نود اجرایی | تفکیک مدیریت از اجرای Workspace |
| Multi-zone | Control Plane مرکزی | Execution در چند Zone | نزدیکی به کاربر و توزیع ظرفیت |
| HA Control Plane | چندنودی | Execution Pool مستقل | افزونگی Control Plane و عملیات سازمانی |
معماری
Intent و Policy در Control Plane میمانند؛ Agentها مدیریت را انجام میدهند و 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 authority از 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 surface قرار میگیرد |
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 inputs بهصورت deterministic bundle تحویل میشوند. |
| Preflight 1 | Read-only boundary preflight | پیش از هر mutation در release cache، host و boundaryهای نصب بررسی میشوند. |
| Release authority | Exact cached artifact | Artifact تأییدشده با identity وابسته به commit/manifest در cache مالک installer منتشر میشود؛ hard-link و permission ناامن رد میشوند. |
| Preflight 2 | Cached-artifact preflight | همان artifact دقیق پیش از convergence دوباره بررسی میشود تا Source و Runtime path از هم جدا نشوند. |
| Host exposure | Loopback TLS edge | PostgreSQL و Control API host-published نیستند؛ endpoint canonical محصول روی TLS edge محدود باقی میماند. |
| Diagnosis / resume | Doctor + status-json | resume_required و last_safe_resume_point از durable owner boundary گزارش میشوند، نه از حدس browser. |
| Execution | Docker Engine first · Kubernetes optional | KasmVNC و Guacamole در Execution Plane کار میکنند. |
چرخهی عمر
از احراز هویت تا Scheduling، اجرای Policy، Resume، Recording و End، همه بخشی از چرخهی عمر کاربر و زیرساختاند.
پروفایل Workspace
کاربر از یک Catalog واحد وارد میشود و تفاوت محیط اجرا در پشت همان فرایند مدیریت میشود.
مرورگر Linux کنترلشده برای دسترسی به Web اپلیکیشنها.
Desktop یا Application لینوکسی از طریق Streaming.
اتصال امن به سیستمهای موجود از مرورگر.
Control و Execution روی یک Host.
نودهای اجرایی مستقل زیر یک Control Plane.
Execution نزدیکتر به User یا Resource.
فلو Session و Recovery
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 بدون orphan کردن workload تغییر میکند.
Policy و Capacity نیز بخشی از Runtime Session هستند، نه تنظیمات حاشیهای.
تغییر Policy از Authority تا اعمال روی Session قابلردیابی میماند.
Capacity جدید فقط پس از Trust، Health و Scheduling eligibility وارد Pool میشود.
| Action / Flow | Admission / Preconditions | Execution / Lock | Success Criterion | Failure / Recovery |
|---|---|---|---|---|
| Launch Workspace | Actor/Project permission، Catalog entry، Policy و Capacity باید مجاز باشند | Idempotency-Key → durable Operation/Outbox → scheduler/Agent | Session ID و observed session/runtime state برای همان Workspace برگردد | Failure میتواند retry/recovery event بسازد؛ UI وضعیت Session را از Operation حدس نمیزند |
| Stop Session | Session موجود و permission معتبر | Operation مستقل stop به Agent/runtime میرود | Session دیگر serving/running نباشد و Operation terminal شود | قبل از lease قابل cancel است؛ پس از side effect نتیجه باید از runtime reconcile شود |
| Restart Session | Source session معتبر و restart مجاز | Operation به restart attempt و successor session متصل میشود | Successor session مشاهدهشده و قابل استفاده باشد | Source/successor correlation حفظ میشود؛ failure session قبلی را success جدید اعلام نمیکند |
| Recover Runtime | Session دارای failure/recovery condition | Action صریح RECOVER_RUNTIME؛ generic restart جای recovery semantics را نمیگیرد | Runtime دوباره observed-ready و Session از recovery state خارج شود | Recovery attempt و زمان آخرین retry در history باقی میماند |
| Recover Cleanup | Stale/partial runtime cleanup قابل اثبات | Action صریح RECOVER_CLEANUP روی همان Session | Resourceهای نیمهکاره پاک و authority با runtime همگرا شود | Cleanup بدون evidence به Session جدید یا success تبدیل نمیشود |
| Node Capacity Lifecycle | Node/Execution Plane health و ظرفیت قبل از Add/Drain/Remove بررسی میشود | Scheduling از node lifecycle جدا ولی هماهنگ است | Sessionهای retained سالم و placement/capacity از observed state خوانده شود | Drain/Remove نباید Session فعال را بیصدا orphan کند؛ reconciliation مسیر بازگشت است |
Cancellation فقط در مرز امن اولیه ممکن است: Operation در REQUESTED/ADMITTED، بدون lease owner و پیش از عبور از side-effect boundary. History برای Launch/Stop/Restart/Recover، retry count و آخرین recovery را نگه میدارد.
کاتالوگ عملیات
کاربر Session را میبیند؛ اپراتور همزمان ظرفیت، نود، Policy و Audit را اداره میکند.
4SO Workspace دسترسی امن را از یک اتصال پراکنده به یک محصول قابلاداره تبدیل میکند.