Gateway
Vertrag für den Anwendungsplan von Geheimnissen
Diese Seite definiert den strikten Vertrag, der von openclaw secrets apply erzwungen wird.
Wenn ein Ziel nicht diesen Regeln entspricht, schlägt apply fehl, bevor die Konfiguration verändert wird.
Plan-Dateiform
openclaw secrets apply --from <plan.json> erwartet ein targets-Array mit Plan-Zielen:
{ version: 1, protocolVersion: 1, targets: [ { type: "models.providers.apiKey", path: "models.providers.openai.apiKey", pathSegments: ["models", "providers", "openai", "apiKey"], providerId: "openai", ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" }, }, { type: "auth-profiles.api_key.key", path: "profiles.openai:default.key", pathSegments: ["profiles", "openai:default", "key"], agentId: "main", ref: { source: "env", provider: "default", id: "OPENAI_API_KEY" }, }, ],}Provider-Upserts und -Löschungen
Pläne können außerdem zwei optionale Felder auf oberster Ebene enthalten, die die
secrets.providers-Map zusätzlich zu den Schreibvorgängen pro Ziel verändern:
providerUpserts— ein Objekt, das nach Provider-Alias verschlüsselt ist. Jeder Wert ist eine Provider-Definition (dieselbe Form, die untersecrets.providers.<alias>inopenclaw.jsonakzeptiert wird, z. B. einexec- oderfile- Provider).providerDeletes— ein Array von Provider-Aliassen, die entfernt werden sollen.
providerUpserts wird vor targets ausgeführt, sodass ein target.ref.provider
auf einen Provider-Alias verweisen kann, den derselbe Plan in
providerUpserts einführt. Ohne dies schlagen Pläne, die auf einen noch nicht in
openclaw.json konfigurierten Alias verweisen, mit provider "<alias>" is not configured fehl.
{ version: 1, protocolVersion: 1, providerUpserts: { onepassword_anthropic: { source: "exec", command: "/usr/bin/op", args: ["read", "op://Vault/Anthropic/credential"], }, }, providerDeletes: ["legacy_unused_alias"], targets: [ { type: "models.providers.apiKey", path: "models.providers.anthropic.apiKey", pathSegments: ["models", "providers", "anthropic", "apiKey"], providerId: "anthropic", ref: { source: "exec", provider: "onepassword_anthropic", id: "credential" }, }, ],}Exec-Provider, die über providerUpserts eingeführt werden, unterliegen weiterhin den
Exec-Zustimmungsregeln in Zustimmungsverhalten für Exec-Provider:
Pläne mit Exec-Providern erfordern im Schreibmodus --allow-exec.
Unterstützter Zielbereich
Plan-Ziele werden für unterstützte Anmeldeinformationspfade akzeptiert in:
Verhalten des Zieltyps
Allgemeine Regel:
target.typemuss erkannt werden und der normalisierten Form vontarget.pathentsprechen.
Kompatibilitäts-Aliasse bleiben für bestehende Pläne akzeptiert:
models.providers.apiKeyskills.entries.apiKeychannels.googlechat.serviceAccount
Regeln zur Pfadvalidierung
Jedes Ziel wird anhand aller folgenden Regeln validiert:
typemuss ein erkannter Zieltyp sein.pathmuss ein nicht leerer Punktpfad sein.pathSegmentskann weggelassen werden. Wenn es angegeben wird, muss es exakt auf denselben Pfad wiepathnormalisieren.- Verbotene Segmente werden abgelehnt:
__proto__,prototype,constructor. - Der normalisierte Pfad muss der registrierten Pfadform für den Zieltyp entsprechen.
- Wenn
providerIdoderaccountIdgesetzt ist, muss es mit der im Pfad kodierten ID übereinstimmen. auth-profiles.json-Ziele erfordernagentId.- Beim Erstellen einer neuen
auth-profiles.json-Zuordnung mussauthProfileProviderenthalten sein.
Fehlerverhalten
Wenn die Validierung eines Ziels fehlschlägt, beendet apply mit einem Fehler wie:
Invalid plan target path for models.providers.apiKey: models.providers.openai.baseUrlFür einen ungültigen Plan werden keine Schreibvorgänge übernommen.
Zustimmungsverhalten für Exec-Provider
--dry-runüberspringt Exec-SecretRef-Prüfungen standardmäßig.- Pläne mit Exec-SecretRefs/Providern werden im Schreibmodus abgelehnt, sofern
--allow-execnicht gesetzt ist. - Beim Validieren/Anwenden von Plänen mit Exec-Inhalten übergeben Sie
--allow-execsowohl in Dry-Run- als auch in Schreibbefehlen.
Hinweise zu Laufzeit- und Audit-Umfang
- Nur-Ref-Einträge in
auth-profiles.json(keyRef/tokenRef) sind in der Laufzeitauflösung und Audit-Abdeckung enthalten. secrets applyschreibt unterstützteopenclaw.json-Ziele, unterstützteauth-profiles.json-Ziele und optionale Bereinigungsziele.
Operator-Prüfungen
# Validate plan without writesopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run # Then apply for realopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json # For exec-containing plans, opt in explicitly in both modesopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-execopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-execWenn apply mit einer Meldung zu einem ungültigen Zielpfad fehlschlägt, generieren Sie den Plan mit openclaw secrets configure neu oder korrigieren Sie den Zielpfad auf eine oben unterstützte Form.