-
Notifications
You must be signed in to change notification settings - Fork 2.2k
openclaw.json locked root:root 444 at build time blocks post-onboard channel configuration #915
Copy link
Copy link
Open
Labels
Getting StartedUse this label to identify setup, installation, or onboarding issues.Use this label to identify setup, installation, or onboarding issues.bugSomething isn't workingSomething isn't workingpriority: highImportant issue that should be resolved in the next releaseImportant issue that should be resolved in the next releasesecuritySomething isn't secureSomething isn't secure
Description
Summary
openclaw.json is baked into the sandbox image as root:root 444 at build time.
This is intentional for protecting auth tokens and CORS config, but it also blocks
any post-onboard configuration that writes to the same file — specifically, adding
channel integrations (Telegram, WhatsApp, etc.).
Steps to reproduce
- Run
nemoclaw onboard(no channels configured at this stage) - Inside the sandbox, run
openclaw channels add --channel telegram --token <token> - Result: "Unknown channel: telegram" — because
channels.telegrammust
pre-exist inopenclaw.jsonbeforechannels addcan update it - Attempt to add
channels.telegramdirectly toopenclaw.json:
— file isroot:root 444, unwritable by thesandboxuser
Workaround
Requires raw kubectl exec from the host, where <sandbox-name> is the name
given to the sandbox at onboard time (e.g. the value passed to nemoclaw onboard):
docker exec openshell-cluster-nemoclaw \
kubectl exec -n openshell <sandbox-name> -- \
chmod 644 /sandbox/.openclaw/openclaw.json
docker exec openshell-cluster-nemoclaw \
kubectl exec -n openshell <sandbox-name> -- \
chown sandbox:sandbox /sandbox/.openclaw/openclaw.jsonThen manually edit openclaw.json to add the channel config, and restart the gateway.
This access path is undocumented and requires knowledge of the internal k3s cluster
structure that NemoClaw manages.
Expected behavior
Either:
nemoclaw onboardaccepts channel tokens as arguments and pre-populates `openclaw.json`
before locking it, OR- A supported command exists (e.g.
nemoclaw config set channels.telegram.token <token>)
that can write to the protected file with appropriate privilege, OR - The channel config section of
openclaw.jsonis separated from the auth/CORS config
and stored in/sandbox/.openclaw-data(already writable bysandbox)
Environment
- NemoClaw v0.1.0
- OpenShell v0.0.14
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Getting StartedUse this label to identify setup, installation, or onboarding issues.Use this label to identify setup, installation, or onboarding issues.bugSomething isn't workingSomething isn't workingpriority: highImportant issue that should be resolved in the next releaseImportant issue that should be resolved in the next releasesecuritySomething isn't secureSomething isn't secure