feat(security): add external secrets management#26155
Merged
Conversation
Contributor
|
Too many files changed for review. ( |
b4185f6 to
f33c483
Compare
8fedead to
722338f
Compare
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
(cherry picked from commit f1d6a7a)
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
(cherry picked from commit f1d6a7a)
7 tasks
vincentkoc
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 28, 2026
vincentkoc
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 28, 2026
vincentkoc
pushed a commit
to rylena/rylen-openclaw
that referenced
this pull request
Feb 28, 2026
vincentkoc
pushed a commit
to rylena/rylen-openclaw
that referenced
this pull request
Feb 28, 2026
This was referenced Feb 28, 2026
This was referenced Mar 1, 2026
hughdidit
pushed a commit
to hughdidit/DAISy-Agency
that referenced
this pull request
Mar 1, 2026
(cherry picked from commit 0f9c602) # Conflicts: # CHANGELOG.md
steipete
added a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
steipete
added a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
robertchang-ga
pushed a commit
to robertchang-ga/openclaw
that referenced
this pull request
Mar 2, 2026
hughdidit
pushed a commit
to hughdidit/DAISy-Agency
that referenced
this pull request
Mar 3, 2026
(cherry picked from commit 0f9c602) # Conflicts: # CHANGELOG.md
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
This was referenced Mar 4, 2026
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
thebenjaminlee
pushed a commit
to escape-velocity-ventures/openclaw
that referenced
this pull request
Mar 7, 2026
thebenjaminlee
pushed a commit
to escape-velocity-ventures/openclaw
that referenced
this pull request
Mar 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add external secrets management as an additive superset of existing credential behavior.
This branch introduces provider-based SecretRefs (
env,file,exec) for static credentials, eager in-memory runtime snapshot activation, strict startup fail-fast for unresolved required refs, and atomic reload with last-known-good fallback.Plaintext remains supported and default; refs are opt-in.
What ships
1. SecretRef contract + provider model
{ source, provider, id }.envfileexec2. Runtime activation model
SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED3. In-scope static secret fields
models.providers.<provider>.apiKeyskills.entries.<skillKey>.apiKeychannels.googlechat.serviceAccountchannels.googlechat.accounts.<accountId>.serviceAccountauth-profiles.jsonvalue refs:api_key.keyReftoken.tokenRef4. Resolver behavior + hardening
env: explicit var resolution with optional allowlist.file: secure path checks, timeout/maxBytes, and modes:json(JSON Pointer ids)singleValue(id must bevalue)exec: no-shell absolute command execution with fixed argv semantics, minimal env by default, timeout/no-output timeout, output-size limits, protocol-versioned JSON contract, and strict path checks.allowSymlinkCommandis required (for example Homebrew shim paths), with resolved-target validation.5. Gateway + CLI surfaces
secrets.reload.openclaw secrets reloadopenclaw secrets auditopenclaw secrets configureopenclaw secrets apply --from <plan.json>secrets configuresupports provider setup, SecretRef mapping, preflight, and optional immediate apply.6. Apply/audit workflow (replaces migrate flow)
secrets applyexecutes one-way ref migration for selected targets in a plan.auth-profiles, legacy staticauth.json, known.envlines) where applicable.7. Onboarding/auth UX updates
plaintext(default)ref8. Redaction + persistence safety
9. Documentation
docs/gateway/secrets.mddocs/cli/secrets.mdCompatibility guarantees
api_key,token,oauth); refs are value-level additions.Out of scope
Validation
Rollback / operational note