You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/gateway/configuration-reference.md
+46Lines changed: 46 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -732,6 +732,52 @@ See [Multiple Gateways](/gateway/multiple-gateways).
732
732
733
733
---
734
734
735
+
## Cloud worker environments
736
+
737
+
Cloud workers are opt-in. If `cloudWorkers` is absent, or `profiles` is empty, OpenClaw accepts no new worker creation. Durable records created earlier still reconcile and remain visible; the existing gateway/node projection is unchanged.
738
+
739
+
```json5
740
+
{
741
+
cloudWorkers: {
742
+
profiles: {
743
+
development: {
744
+
provider:"static-ssh",
745
+
settings: {
746
+
host:"worker.example.test",
747
+
port:22,
748
+
user:"openclaw",
749
+
keyRef: {
750
+
source:"env",
751
+
provider:"default",
752
+
id:"OPENCLAW_WORKER_SSH_KEY",
753
+
},
754
+
},
755
+
lifetime: {
756
+
idleTimeoutMinutes:60,
757
+
maxLifetimeMinutes:1440,
758
+
},
759
+
},
760
+
},
761
+
},
762
+
}
763
+
```
764
+
765
+
-`profiles`: named worker profiles with non-empty, whitespace-trimmed ids. Each profile selects a provider registered by a plugin.
766
+
-`provider`: non-empty worker provider id. The example uses the `static-ssh` provider from the QA Lab plugin.
767
+
- Bundled provider plugins are enabled automatically when selected. External provider plugins must be installed and explicitly enabled (and included in `plugins.allow` when that allowlist is set).
768
+
-`settings`: provider-owned bounded JSON. The selected plugin defines and validates its keys; use [SecretRef objects](/gateway/secrets) for secret-bearing values. The static SSH provider requires `host`, `user`, and `keyRef`; `port` defaults to `22`.
769
+
-`lifetime.idleTimeoutMinutes`: positive integer minutes stored for later idle-reclamation policy.
770
+
-`lifetime.maxLifetimeMinutes`: positive integer minutes stored for later lifecycle policy.
771
+
772
+
Lifetime values are data only in the first cloud-worker release; automatic enforcement lands with later lifecycle work. Profile changes require a gateway restart.
773
+
774
+
<Warning>
775
+
The `static-ssh` provider is a source-tree QA Lab development harness and is excluded from packaged distributions. A worker running on its shared host can read unrelated host data, so do not use this provider as a production isolation boundary.
776
+
Destroying its lease only releases OpenClaw's logical record; it does not stop or clean the host.
Copy file name to clipboardExpand all lines: docs/gateway/protocol.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -451,7 +451,8 @@ methods. Treat this as feature discovery, not a full enumeration of
451
451
- `agents.workspace.list` and `agents.workspace.get` (`operator.read`) expose read-only, paginated browsing of an agent's workspace directory for clients in the trusted operator domain described in [Operator scopes](/gateway/operator-scopes). Requests accept workspace-relative paths only; reads stay confined to the realpathed workspace root (symlink and hardlink escapes rejected), size-capped, and limited to UTF-8 text plus common image types (base64). Responses do not expose the host workspace path. There are no write operations in this namespace.
452
452
- `tasks.list`, `tasks.get`, and `tasks.cancel` expose the gateway task ledger to SDK and operator clients. See [Task ledger RPCs](#task-ledger-rpcs) below.
453
453
- `artifacts.list`, `artifacts.get`, and `artifacts.download` expose transcript-derived artifact summaries and downloads for an explicit `sessionKey`, `runId`, or `taskId` scope. Run and task queries resolve the owning session server-side and only return transcript media with matching provenance; unsafe or local URL sources return unsupported downloads instead of fetching server-side.
454
-
- `environments.list` and `environments.status` expose read-only gateway-local and node environment discovery for SDK clients.
454
+
- `environments.list` and `environments.status` preserve gateway-local and node environment discovery. Configured cloud workers and durable records left by earlier profiles add `worker` metadata with `providerId`, optional `leaseId`, `state`, `ageMs`, optional `idleMs`, and `attachedSessionIds`. Worker lifecycle states are `requested`, `provisioning`, `bootstrapping`, `ready`, `attached`, `idle`, `draining`, `destroying`, `destroyed`, `failed`, and `orphaned`.
455
+
- `environments.create` (`{ profileId, idempotencyKey }`) provisions a worker from a configured plugin provider profile; retries with the same key reuse the durable operation. `environments.destroy` (`{ environmentId }`) requests idempotent teardown of a durable worker environment. Both require `operator.admin`, are control-plane writes, and return the same environment summary shape used by status responses.
455
456
- `agent.identity.get` returns the effective assistant identity for an agent or session.
456
457
- `agent.wait` waits for a run to finish and returns the terminal snapshot when available.
0 commit comments