Skip to main content

Overview

Workspaces are isolated cloud desktop environments that provide secure access to various computing resources. NeoSC supports multiple workspace types including Linux desktops, Windows environments, secure browsers, and specialized admin panels.

Workspace Types

NeoSC provides five pre-configured workspace types:

Linux Desktop

Ubuntu 22.04 LTS with full desktop environment, ideal for development and general computing tasks.

Windows Desktop

Remote Desktop access via TSPlus HTML5, supporting Windows applications and SAP environments.

Secure Browser

Isolated browser environment with privacy and security controls for secure web access.

Admin Panel

Infrastructure management panels like 1Panel for system administration tasks.

Workspace Model

Each workspace contains the following properties:
backend/server.py
class Workspace(BaseModel):
    id: str                    # Unique workspace identifier
    name: str                  # Display name
    type: str                  # linux, windows, browser, dev, admin
    description: str           # Workspace description
    image_url: str            # Preview image URL
    status: str               # available, running, stopped, error
    cpu: str                  # CPU allocation (e.g., "2 vCPU")
    memory: str               # Memory allocation (e.g., "4 GB")
    storage: str              # Storage allocation (e.g., "50 GB")
    url: str                  # Connection URL
    connection_type: str      # html5, rdp, web, vnc, browser
    requires_netbird: bool    # NetBird VPN requirement
    icon: str                 # Icon identifier

Connection Types

Workspaces support multiple connection protocols:
TypeDescriptionUse Case
html5TSPlus HTML5 DesktopSAP and enterprise applications
rdpRemote Desktop ProtocolWindows desktops
webWeb ApplicationAdmin panels and web apps
vncVNC ProtocolLinux desktops
browserSecure BrowserIsolated web browsing

Listing Workspaces

Retrieve all available workspaces for the authenticated user:
curl -X GET "https://api.neosc.com/api/workspaces" \
  -H "Authorization: Bearer YOUR_TOKEN"

Response Example

[
  {
    "id": "ws-sap-neogenesys",
    "name": "SAP Neogénesys",
    "type": "html5",
    "description": "TSPlus HTML5 Desktop para acceso a SAP",
    "status": "available",
    "cpu": "4 vCPU",
    "memory": "8 GB",
    "storage": "100 GB",
    "url": "http://tsplus.intranet.neosc/",
    "connection_type": "html5",
    "requires_netbird": true,
    "icon": "sap"
  }
]

Launching Workspaces

Launch a workspace and create an active session:
curl -X POST "https://api.neosc.com/api/workspaces/{workspace_id}/launch" \
  -H "Authorization: Bearer YOUR_TOKEN"

Launch Response

{
  "session_id": "550e8400-e29b-41d4-a716-446655440000",
  "workspace": { /* workspace object */ },
  "stream_url": "/viewer/550e8400-e29b-41d4-a716-446655440000",
  "tunnel_status": "encrypted",
  "security": {
    "encrypted_tunnel": true,
    "identity_verified": true,
    "mfa_enforced": true,
    "session_recording": true,
    "no_open_ports": true
  }
}
Launching a workspace automatically creates a new Session and updates the workspace status to running.

Stopping Workspaces

Stop a running workspace and terminate the active session:
frontend/src/pages/WorkspacesPage.jsx
const handleStop = async (workspaceId) => {
  await axios.post(
    `${API}/workspaces/${workspaceId}/stop`,
    {},
    { headers: getAuthHeader() }
  );
  
  toast.success('Workspace detenido');
};
curl -X POST "https://api.neosc.com/api/workspaces/{workspace_id}/stop" \
  -H "Authorization: Bearer YOUR_TOKEN"

Creating Workspaces (Admin)

Administrators can create custom workspaces:
Example: Create Workspace
const workspaceData = {
  name: "Development Environment",
  type: "dev",
  description: "Node.js development container",
  url: "http://dev.internal.neosc:8080",
  connection_type: "web",
  requires_netbird: true,
  cpu: "2 vCPU",
  memory: "4 GB",
  storage: "50 GB",
  icon: "default"
};

await axios.post(`${API}/workspaces`, workspaceData, {
  headers: { Authorization: `Bearer ${token}` }
});
Workspace creation requires admin role. Regular users will receive a 403 Forbidden error.

Updating Workspaces (Admin)

Modify workspace configuration:
backend/server.py:574
PUT /api/workspaces/{workspace_id}
Example: Update Workspace
const updates = {
  name: "Updated SAP Desktop",
  description: "New description",
  cpu: "8 vCPU",
  memory: "16 GB"
};

await axios.put(`${API}/workspaces/${workspaceId}`, updates, {
  headers: { Authorization: `Bearer ${token}` }
});

Deleting Workspaces (Admin)

Remove a workspace permanently:
backend/server.py:593
DELETE /api/workspaces/{workspace_id}
Deleting a workspace is permanent and cannot be undone. Active sessions will be terminated.

Reset to Defaults (Admin)

Reset all workspaces to the default configuration:
frontend/src/pages/WorkspacesPage.jsx:213
const handleReset = async () => {
  await axios.post(`${API}/workspaces/reset`, {}, {
    headers: getAuthHeader()
  });
  
  toast.success('Workspaces reseteados');
};

NetBird Integration

Workspaces with requires_netbird: true can only be accessed when the NetBird VPN client is active:
1

Install NetBird Client

Download and install the NetBird client on your local machine
2

Connect to Network

Authenticate and connect to your organization’s NetBird network
3

Launch Workspace

Once connected, launch workspaces that require NetBird access

Workspace Status Flow

Best Practices

Choose CPU, memory, and storage based on your workload:
  • Light browsing: 1 vCPU, 2 GB RAM
  • Office applications: 2 vCPU, 4 GB RAM
  • Development: 4 vCPU, 8 GB RAM
  • Heavy workloads: 8+ vCPU, 16+ GB RAM
  • Always enable NetBird for internal resources
  • Use MFA for sensitive workspaces
  • Review audit logs regularly
  • Implement session recording for compliance
  • Use HTML5 for legacy Windows applications
  • Choose VNC for Linux desktops
  • Use web type for cloud-native applications
  • Browser type for isolated web browsing

Sessions

Manage active workspace sessions

Security Policies

Configure workspace access policies

Audit Logs

Track workspace usage and actions

Organizations

Multi-tenant workspace isolation

Build docs developers (and LLMs) love