Gateway
Kontrakt planu apply sekretów
Ta strona definiuje ścisły kontrakt wymuszany przez openclaw secrets apply.
Jeśli cel nie pasuje do tych reguł, apply kończy się błędem przed modyfikacją konfiguracji.
Kształt pliku planu
openclaw secrets apply --from <plan.json> oczekuje tablicy targets z celami planu:
{
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" },
},
],
}
Obsługiwany zakres celu
Cele planu są akceptowane dla obsługiwanych ścieżek poświadczeń w:
Zachowanie typu celu
Reguła ogólna:
target.typemusi być rozpoznawany i musi pasować do znormalizowanego kształtutarget.path.
Aliasy zgodności są nadal akceptowane dla istniejących planów:
models.providers.apiKeyskills.entries.apiKeychannels.googlechat.serviceAccount
Reguły walidacji ścieżki
Każdy cel jest walidowany z użyciem wszystkich poniższych reguł:
typemusi być rozpoznawanym typem celu.pathmusi być niepustą ścieżką dot.pathSegmentsmożna pominąć. Jeśli są podane, muszą normalizować się dokładnie do tej samej ścieżki copath.- Zabronione segmenty są odrzucane:
__proto__,prototype,constructor. - Znormalizowana ścieżka musi pasować do zarejestrowanego kształtu ścieżki dla typu celu.
- Jeśli ustawiono
providerIdalboaccountId, musi pasować do identyfikatora zakodowanego w ścieżce. - Cele
auth-profiles.jsonwymagająagentId. - Przy tworzeniu nowego mapowania
auth-profiles.jsonuwzględnijauthProfileProvider.
Zachowanie przy błędzie
Jeśli cel nie przejdzie walidacji, apply kończy się błędem podobnym do:
Invalid plan target path for models.providers.apiKey: models.providers.openai.baseUrl
Dla nieprawidłowego planu nie są zatwierdzane żadne zapisy.
Zachowanie zgody dla providera exec
--dry-rundomyślnie pomija kontrole SecretRef exec.- Plany zawierające SecretRef/providerów exec są odrzucane w trybie zapisu, chyba że ustawiono
--allow-exec. - Przy walidacji/stosowaniu planów zawierających exec przekaż
--allow-execzarówno w poleceniach dry-run, jak i zapisu.
Uwagi o runtime i zakresie audytu
- Wpisy
auth-profiles.jsonzawierające tylko ref (keyRef/tokenRef) są uwzględniane przy rozwiązywaniu runtime i w zakresie audytu. secrets applyzapisuje obsługiwane celeopenclaw.json, obsługiwane celeauth-profiles.jsonoraz opcjonalne cele scrub.
Kontrole operatora
# Zweryfikuj plan bez zapisów
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
# Następnie zastosuj go naprawdę
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
# Dla planów zawierających exec jawnie wyraź zgodę w obu trybach
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-exec
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-exec
Jeśli apply kończy się błędem z komunikatem o nieprawidłowej ścieżce celu, wygeneruj plan ponownie przez openclaw secrets configure albo popraw ścieżkę celu do jednego z obsługiwanych kształtów podanych powyżej.