---
id: "oci-secure-desktops"
type: "component"
kind: "virtual-desktop"
provider: "oci"
category: "compute"
docs: "https://docs.oracle.com/en-us/iaas/secure-desktops/create-pool.htm"
url: "https://localhost:3000/catalogue/components/oci-secure-desktops"
---

# OCI Secure Desktops

Managed pool of identically configured virtual desktops.

| | |
|---|---|
| Provider | [oci](https://localhost:3000/catalogue?provider=oci) |
| Kind | [Virtual desktop pool](https://localhost:3000/catalogue/kinds/virtual-desktop) |
| Category | Compute |
| Official docs | [https://docs.oracle.com/en-us/iaas/secure-desktops/create-pool.htm](https://docs.oracle.com/en-us/iaas/secure-desktops/create-pool.htm) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `actionOnDisconnect` | enum | `none`, `stop`, `delete` | no | "none" | inherited |
| `audioAccess` | boolean | — | no | false | inherited |
| `clipboardAccess` | boolean | — | no | false | inherited |
| `gracePeriodMinutes` | integer | — | no | 60 | inherited |
| `hostCount` | integer | — | no | — | inherited |
| `loadBalancing` | enum | `breadth-first`, `depth-first` | no | — | inherited |
| `managed` | boolean | — | no | false | **true** |
| `maxSessionsPerHost` | integer | — | no | — | **1** |
| `mfaRequired` | boolean | — | no | — | inherited |
| `persistentProfiles` | boolean | — | no | — | inherited |
| `sessionMode` | enum | `pooled`, `personal` | no | — | inherited |
| `storageSizeGib` | integer | — | no | 50 | inherited |

Bold values are the ones this component pins.

## Rules that apply · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Other products of the same kind · 19

- [Elastic Cloud Phone](https://localhost:3000/catalogue/components/alibaba-elastic-cloud-phone.md) `alibaba-elastic-cloud-phone` — alibabacloud
- [WUYING Workspace](https://localhost:3000/catalogue/components/alibaba-wuying-workspace.md) `alibaba-wuying-workspace` — alibabacloud
- [Amazon WorkSpaces Applications](https://localhost:3000/catalogue/components/aws-appstream.md) `aws-appstream` — aws
- [AWS Cloud9](https://localhost:3000/catalogue/components/aws-cloud9.md) `aws-cloud9` — aws
- [Amazon GameLift Streams](https://localhost:3000/catalogue/components/aws-gamelift-streams.md) `aws-gamelift-streams` — aws
- [Amazon WorkSpaces](https://localhost:3000/catalogue/components/aws-workspaces.md) `aws-workspaces` — aws
- [Amazon WorkSpaces Pools](https://localhost:3000/catalogue/components/aws-workspaces-pools.md) `aws-workspaces-pools` — aws
- [Amazon WorkSpaces Secure Browser](https://localhost:3000/catalogue/components/aws-workspaces-secure-browser.md) `aws-workspaces-secure-browser` — aws
- [Microsoft Dev Box](https://localhost:3000/catalogue/components/azure-dev-box.md) `azure-dev-box` — azure
- [Azure DevTest Labs](https://localhost:3000/catalogue/components/azure-devtest-labs.md) `azure-devtest-labs` — azure
- [Azure Lab Services](https://localhost:3000/catalogue/components/azure-lab-services.md) `azure-lab-services` — azure
- [Azure Virtual Desktop](https://localhost:3000/catalogue/components/azure-virtual-desktop.md) `azure-virtual-desktop` — azure
- [Cloudflare Browser Isolation](https://localhost:3000/catalogue/components/cloudflare-browser-isolation.md) `cloudflare-browser-isolation` — cloudflare
- [Citrix Virtual Apps and Desktops](https://localhost:3000/catalogue/components/citrix-virtual-apps.md) `citrix-virtual-apps` — default
- [Apache Guacamole](https://localhost:3000/catalogue/components/guacamole.md) `guacamole` — default
- [Kasm Workspaces](https://localhost:3000/catalogue/components/kasm.md) `kasm` — default
- [Omnissa Horizon](https://localhost:3000/catalogue/components/omnissa-horizon.md) `omnissa-horizon` — default
- [Generic virtual desktop pool](https://localhost:3000/catalogue/components/virtual-desktop.md) `virtual-desktop` — default
- [Cloud Workstations](https://localhost:3000/catalogue/components/google-cloud-workstations.md) `google-cloud-workstations` — gcp

## Use it in a design

```yaml
nodes:
  - { id: "oci-secure-desktops", component: "oci-secure-desktops" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# OCI Secure Desktops desktop pool: pools of identically configured managed virtual desktops, one
# desktop per user per pool ("Creating a Desktop Pool"). That page gives each desktop a 50 GB
# storage volume with no backup policy, leaves the action on inactivity and on disconnect at None
# with a 60 minute grace period, and turns clipboard, audio, camera and drive mapping off.
schemaVersion: "1"
type: "component"
id: "oci-secure-desktops"
kind: "virtual-desktop"
provider: "oci"
docs: "https://docs.oracle.com/en-us/iaas/secure-desktops/create-pool.htm"
defaults:
  managed: true
  maxSessionsPerHost: 1
properties:
  storageSizeGib:
    type: "integer"
    default: 50
  clipboardAccess:
    type: "boolean"
    default: false
  audioAccess:
    type: "boolean"
    default: false
  actionOnDisconnect:
    type: "enum"
    values: ["none", "stop", "delete"]
    default: "none"
  gracePeriodMinutes:
    type: "integer"
    default: 60
```

Human page: https://localhost:3000/catalogue/components/oci-secure-desktops
