The endpoint is not the place of trust
The session and workload execution stay in a controlled environment; the endpoint is only the interaction layer.

ZERO-TRUST WORKSPACE DELIVERY
Workspace separates the work environment and remote access from the user's endpoint; identity, policy, DLP, scheduling, session and execution sit in one manageable product model.
4SO Workspace components: browser, policy, and separate control and execution planes
Product problem
Teams usually run separate tools for Browser, Desktop, Remote Access, Policy and Session. Workspace brings them under one unified experience and separates protected execution from the user's device.
The session and workload execution stay in a controlled environment; the endpoint is only the interaction layer.
Browser, Linux Desktop/Application and RDP/VNC/SSH are all available from one web experience.
DLP, Identity, Network Path and Peripheral access are built into the product model.
Capacity, nodes, Scheduling, Audit and lifecycle are managed from the operator panel.
Capability snapshot
Workspace keeps User Experience and Infrastructure Operations capabilities side by side in one product.
Disposable Linux environments for everyday work and controlled workloads.
Access to existing systems through the browser, without scattered clients.
Authentication, Authorization and scope for users and operators.
File, Clipboard, Peripheral and Network Path can be controlled by Policy.
Execution node selection, capacity and scale based on infrastructure state.
Extend the Execution Plane without turning the Control Plane into a workload runtime.
Session-level capabilities for observation, collaboration and Audit.
Operators follow infrastructure and session lifecycle from a single view.
Control Plane and Execution Plane are two independent roles. Workspace Intent is not locked to a specific execution environment; Single-node is a first-class deployment model.
Deployment model
The deployment model starts with one server and grows by adding execution nodes. Kubernetes is a deployment option, not a prerequisite for the user experience.
| Profile | Control Plane | Execution | Use |
|---|---|---|---|
| Single node | Same server | Same server | Simple start and small environments |
| Control + execution nodes | Dedicated Control Plane | Multiple execution nodes | Separate management from workspace execution |
| Multi-zone | Central Control Plane | Execution in multiple zones | Proximity to users and distributed capacity |
| HA Control Plane | Multi-node | Independent Execution Pool | Control Plane redundancy and enterprise operations |
Architecture
Intent and Policy stay in the Control Plane; agents carry out management, and the real session runs in the Execution Plane.
| Layer | Component / Protocol | Role | Contract |
|---|---|---|---|
| State Authority | PostgreSQL | Workspace intent, Session lifecycle, Policy, Node/Capacity and durable operations | UI and Agent do not create independent sources of state |
| Control Plane | Go services + Product API | Identity, Authorization, Scheduling, lifecycle and audit | Control Plane ≠ Execution Plane |
| Agent Plane | Outbound-first mTLS agents | Node management, observed state and bounded action execution | Agent authority passes through the Product API/RBAC |
| Linux Streaming | KasmVNC | Browser/Desktop/Application workspace streaming | Protected execution stays on the Execution Plane |
| Remote Access | Apache Guacamole ecosystem | RDP / VNC / SSH from the browser | Remote protocols sit behind the same Identity/Policy surface |
Install & Runtime Contract. Workspace is not installed from a source checkout; the release artifact, preflight and resume boundary are part of the Product Contract itself.
| Boundary | Mechanism | Technical contract |
|---|---|---|
| Release artifact | MANIFEST.json + SHA256SUMS | API, Controller, Edge, CLI, migration and runtime inputs are delivered as a deterministic bundle. |
| Preflight 1 | Read-only boundary preflight | The release cache, host and installation boundaries are checked before any mutation. |
| Release authority | Exact cached artifact | The verified artifact, with an identity bound to the commit/manifest, is published into the installer-owned cache; unsafe hard links and permissions are rejected. |
| Preflight 2 | Cached-artifact preflight | The same exact artifact is checked again before convergence so source and runtime paths do not diverge. |
| Host exposure | Loopback TLS edge | PostgreSQL and the Control API are not host-published; the canonical product endpoint stays on the bounded TLS edge. |
| Diagnosis / resume | Doctor + status-json | resume_required and last_safe_resume_point are reported from the durable owner boundary, not from browser guesswork. |
| Execution | Docker Engine first · Kubernetes optional | KasmVNC and Guacamole run in the Execution Plane. |
Lifecycle
From authentication to Scheduling, Policy enforcement, Resume, Recording and End, everything is part of the user and infrastructure lifecycle.
Workspace profiles
Users enter from a single Catalog, and differences in the execution environment are managed behind the same process.
A controlled Linux browser for accessing web applications.
A Linux desktop or application delivered through streaming.
Secure connection to existing systems from the browser.
Control and Execution on one host.
Independent execution nodes under one Control Plane.
Execution closer to the user or resource.
Session and recovery flow
Launch, Stop, Restart and Recovery go from the Product API to Operation/Outbox, and session state is observed separately from request state.
A session is created only on an authorized, ready node.
Identity/Policy is shared; the Execution Path differs.
The failure class determines whether repair or cleanup is performed.
The session is actually created only after admission and scheduling.
The browser connects to the protocol runtime without the endpoint becoming the place of trust.
A restart is linked to a traceable successor session.
Recovery is not the same as an ordinary restart.
Session infrastructure changes without orphaning workloads.
Policy and Capacity are also part of the session runtime, not peripheral settings.
A policy change remains traceable from the authority to its enforcement on the session.
New capacity enters the pool only after Trust, Health and Scheduling eligibility.
| Action / Flow | Admission / Preconditions | Execution / Lock | Success Criterion | Failure / Recovery |
|---|---|---|---|---|
| Launch Workspace | Actor/Project permission, Catalog entry, Policy and Capacity must all allow it | Idempotency-Key → durable Operation/Outbox → scheduler/Agent | A Session ID and observed session/runtime state are returned for the same Workspace | A failure can create a retry/recovery event; the UI does not guess session state from the Operation |
| Stop Session | Existing session and valid permission | A separate stop Operation goes to the Agent/runtime | The session is no longer serving/running and the Operation becomes terminal | Cancellable before lease; after a side effect the outcome must be reconciled from the runtime |
| Restart Session | Valid source session and restart allowed | The Operation is linked to the restart attempt and the successor session | The successor session is observed and usable | Source/successor correlation is preserved; a failure does not report the previous session as a new success |
| Recover Runtime | Session has a failure/recovery condition | Explicit RECOVER_RUNTIME action; a generic restart does not replace recovery semantics | The runtime is observed-ready again and the session leaves the recovery state | The recovery attempt and the time of the last retry remain in history |
| Recover Cleanup | Provable stale/partial runtime cleanup | Explicit RECOVER_CLEANUP action on the same session | Half-finished resources are cleaned up and the authority converges with the runtime | Cleanup without evidence is not turned into a new session or a success |
| Node Capacity Lifecycle | Node/Execution Plane health and capacity are checked before Add/Drain/Remove | Scheduling is separate from, but coordinated with, the node lifecycle | Retained sessions are healthy and placement/capacity is read from observed state | Drain/Remove must not silently orphan an active session; reconciliation is the return path |
Cancellation is possible only at the early safe boundary: the Operation is in REQUESTED/ADMITTED, has no lease owner and has not crossed the side-effect boundary. History keeps Launch/Stop/Restart/Recover, the retry count and the latest recovery.
Operations catalog
The user sees the session; at the same time the operator manages capacity, nodes, Policy and Audit.
4SO Workspace turns secure access from scattered connections into one manageable product.