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
+45-2Lines changed: 45 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -736,6 +736,47 @@ See [Multiple Gateways](/gateway/multiple-gateways).
736
736
737
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
738
739
+
### Crabbox profile
740
+
741
+
The bundled `crabbox` provider provisions an SSH-capable lease through the local Crabbox CLI. The inner `settings.provider` selects the Crabbox backend; it is separate from the outer OpenClaw provider id.
742
+
743
+
```json5
744
+
{
745
+
cloudWorkers: {
746
+
profiles: {
747
+
production: {
748
+
provider:"crabbox",
749
+
settings: {
750
+
provider:"aws",
751
+
class:"standard",
752
+
ttl:"24h",
753
+
idleTimeout:"60m",
754
+
// Optional absolute path. Default: sibling ../crabbox/bin/crabbox, then PATH.
755
+
binary:"/usr/local/bin/crabbox",
756
+
},
757
+
lifetime: {
758
+
idleTimeoutMinutes:60,
759
+
maxLifetimeMinutes:1440,
760
+
},
761
+
},
762
+
},
763
+
},
764
+
}
765
+
```
766
+
767
+
-`settings.provider` (required): Crabbox backend passed through `--provider`. Use a backend whose inspect output includes an SSH endpoint; `aws` selects the direct AWS backend.
768
+
-`settings.class` (required): Crabbox machine class passed to `--class`.
769
+
-`settings.ttl` and `settings.idleTimeout` (required): positive Go duration strings passed to `--ttl` and `--idle-timeout`. These provider-side failsafes are distinct from OpenClaw's stored `lifetime` policy below.
770
+
-`settings.binary`: optional absolute Crabbox executable path. Without it, OpenClaw checks the sibling Crabbox checkout, then executable entries on `PATH`, and finally invokes `crabbox` so a missing CLI remains a visible provider error.
771
+
772
+
Unknown settings are rejected. Crabbox credentials and backend-specific account configuration remain owned by Crabbox; do not place them in `settings`. OpenClaw invokes only the local CLI and makes no provider network calls from this plugin. Provisioning always passes `--keep=true`; OpenClaw owns the external lifecycle and destroys the lease with `crabbox stop`.
773
+
774
+
<Warning>
775
+
This milestone surfaces the SSH endpoint and a file `SecretRef`, but the current generic file-secret contract does not resolve Crabbox's dynamic key path, and Crabbox `inspect` does not expose host-key material. The later tunnel milestone must define direct-file key resolution and host-key pinning before connecting; this profile alone is not yet a complete SSH trust boundary.
776
+
</Warning>
777
+
778
+
### Static SSH development profile
779
+
739
780
```json5
740
781
{
741
782
cloudWorkers: {
@@ -763,12 +804,14 @@ Cloud workers are opt-in. If `cloudWorkers` is absent, or `profiles` is empty, O
763
804
```
764
805
765
806
-`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).
807
+
-`provider`: non-empty worker provider id. The examples use the bundled `crabbox` provider and the QA Lab `static-ssh` provider.
808
+
- Bundled provider plugins are selected automatically when configured, but explicit disables and `plugins.allow` still apply. Include the provider id (for example, `crabbox`) when an allowlist is configured. External provider plugins must also be installed and explicitly enabled.
768
809
-`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
810
-`lifetime.idleTimeoutMinutes`: positive integer minutes stored for later idle-reclamation policy.
770
811
-`lifetime.maxLifetimeMinutes`: positive integer minutes stored for later lifecycle policy.
771
812
813
+
Each durable environment record retains its validated provider settings snapshot for later inspection and destruction. Changing or removing a named profile affects new creates; existing records continue lifecycle reconciliation with their creation-time settings, provided the owning plugin remains available.
814
+
772
815
Lifetime values are data only in the first cloud-worker release; automatic enforcement lands with later lifecycle work. Profile changes require a gateway restart.
0 commit comments