Düz metin hâlâ çalışır. SecretRefs, her kimlik bilgisi için isteğe bağlıdır.
Hedefler ve çalışma zamanı modeli
Secret’lar, bellek içi bir çalışma zamanı anlık görüntüsüne çözümlenir.- Çözümleme, istek yollarında tembel değil, etkinleştirme sırasında isteklidir.
- Etkin olarak aktif bir SecretRef çözümlenemediğinde başlatma hızlı başarısız olur.
- Yeniden yükleme atomik takas kullanır: tam başarı ya da bilinen son iyi anlık görüntüyü koru.
- SecretRef ilke ihlalleri (örneğin SecretRef girdisiyle birleştirilmiş OAuth modunda auth profilleri) çalışma zamanı takasından önce etkinleştirmeyi başarısız kılar.
- Çalışma zamanı istekleri yalnızca aktif bellek içi anlık görüntüden okur.
- İlk başarılı yapılandırma etkinleştirmesi/yüklemesinden sonra, çalışma zamanı kod yolları başarılı bir yeniden yükleme onu değiştirene kadar bu aktif bellek içi anlık görüntüyü okumayı sürdürür.
- Giden teslim yolları da bu aktif anlık görüntüden okur (örneğin Discord yanıt/iş parçacığı teslimi ve Telegram eylem gönderimleri); her gönderimde SecretRefs’i yeniden çözümlemezler.
Agent erişim sınırı
SecretRefs, kimlik bilgilerini desteklenen yapılandırma ve oluşturulmuş model yüzeylerinde kalıcı hale getirilmekten korur, ancak bir süreç yalıtımı sınırı değildir. Bir düz metin kimlik bilgisi, agent’ın okuyabildiği bir yolda diskte kalırsa agent, dosya veya kabuk araçlarını kullanarak o dosyayı inceleyip API düzeyi redaksiyonu atlayabilir. Agent tarafından erişilebilir dosyaların kapsamda olduğu üretim dağıtımları için, SecretRef geçişini yalnızca şunların tümü doğru olduğunda tamamlanmış kabul edin:- desteklenen kimlik bilgileri düz metin değerler yerine SecretRefs kullanır
- eski düz metin kalıntıları
openclaw.json,auth-profiles.json,.envve oluşturulmuşmodels.jsondosyalarından temizlenmiştir - geçişten sonra
openclaw secrets audit --checktemizdir - kalan desteklenmeyen veya dönen kimlik bilgileri işletim sistemi yalıtımı, container yalıtımı veya harici bir kimlik bilgisi proxy’si tarafından korunur
Aktif yüzey filtreleme
SecretRefs yalnızca etkin olarak aktif yüzeylerde doğrulanır.- Etkin yüzeyler: çözümlenmemiş refs başlatmayı/yeniden yüklemeyi engeller.
- Aktif olmayan yüzeyler: çözümlenmemiş refs başlatmayı/yeniden yüklemeyi engellemez.
- Aktif olmayan refs,
SECRETS_REF_IGNORED_INACTIVE_SURFACEkoduyla ölümcül olmayan tanılamalar üretir.
Examples of inactive surfaces
Examples of inactive surfaces
- Devre dışı bırakılmış kanal/hesap girdileri.
- Etkin hiçbir hesabın devralmadığı üst düzey kanal kimlik bilgileri.
- Devre dışı bırakılmış araç/özellik yüzeyleri.
tools.web.search.providertarafından seçilmeyen web arama sağlayıcısına özgü anahtarlar. Otomatik modda (sağlayıcı ayarlanmamışken), anahtarlar biri çözümlenene kadar sağlayıcı otomatik algılaması için önceliğe göre danışılır. Seçimden sonra, seçilmeyen sağlayıcı anahtarları seçilene kadar aktif olmayan olarak ele alınır.- Sandbox SSH auth materyali (
agents.defaults.sandbox.ssh.identityData,certificateData,knownHostsDatave agent başına geçersiz kılmalar), yalnızca etkin sandbox backend’i varsayılan agent veya etkin bir agent içinssholduğunda aktiftir. gateway.remote.token/gateway.remote.passwordSecretRefs, şunlardan biri doğruysa aktiftir:gateway.mode=remotegateway.remote.urlyapılandırılmıştırgateway.tailscale.mode,serveveyafunneldeğeridir- Bu uzak yüzeyler olmadan yerel modda:
gateway.remote.token, token auth kazanabiliyorsa ve hiçbir env/auth token yapılandırılmamışsa aktiftir.gateway.remote.password, yalnızca parola auth kazanabiliyorsa ve hiçbir env/auth parolası yapılandırılmamışsa aktiftir.
gateway.auth.tokenSecretRef,OPENCLAW_GATEWAY_TOKENayarlandığında başlatma auth çözümlemesi için aktif değildir, çünkü env token girdisi o çalışma zamanı için kazanır.
Gateway auth yüzeyi tanılamaları
gateway.auth.token, gateway.auth.password, gateway.remote.token veya gateway.remote.password üzerinde bir SecretRef yapılandırıldığında, Gateway başlatma/yeniden yükleme yüzey durumunu açıkça günlüğe yazar:
active: SecretRef, etkin auth yüzeyinin parçasıdır ve çözümlenmelidir.inactive: Başka bir auth yüzeyi kazandığı için veya uzak auth devre dışı/aktif olmadığı için SecretRef bu çalışma zamanı için yok sayılır.
SECRETS_GATEWAY_AUTH_SURFACE ile günlüğe yazılır ve aktif yüzey ilkesi tarafından kullanılan nedeni içerir; böylece bir kimlik bilgisinin neden aktif veya aktif olmayan olarak ele alındığını görebilirsiniz.
İlk kurulum referans ön kontrolü
İlk kurulum etkileşimli modda çalıştığında ve SecretRef depolamasını seçtiğinizde OpenClaw, kaydetmeden önce ön kontrol doğrulaması çalıştırır:- Env refs: env var adını doğrular ve kurulum sırasında boş olmayan bir değerin görünür olduğunu onaylar.
- Sağlayıcı refs (
fileveyaexec): sağlayıcı seçimini doğrular,iddeğerini çözümler ve çözümlenen değer türünü denetler. - Quickstart yeniden kullanım yolu:
gateway.auth.tokenzaten bir SecretRef olduğunda, ilk kurulum probe/dashboard bootstrap öncesinde (env,fileveexecrefs için) aynı hızlı başarısız kapıyı kullanarak onu çözümler.
SecretRef sözleşmesi
Her yerde tek bir nesne şekli kullanın:- env
- file
- exec
provider,^[a-z][a-z0-9_-]{0,63}$ile eşleşmelidirid,^[A-Z][A-Z0-9_]{0,127}$ile eşleşmelidir
Sağlayıcı yapılandırması
Sağlayıcılarısecrets.providers altında tanımlayın:
Env provider
Env provider
allowlistaracılığıyla isteğe bağlı izin verilenler listesi.- Eksik/boş env değerleri çözümlemeyi başarısız kılar.
File provider
File provider
- Yerel dosyayı
pathkonumundan okur. mode: "json"JSON nesnesi payload’u bekler veiddeğerini pointer olarak çözümler.mode: "singleValue"ref id"value"bekler ve dosya içeriğini döndürür.- Yol sahiplik/izin denetimlerinden geçmelidir.
- Windows güvenli başarısız notu: Bir yol için ACL doğrulaması kullanılamıyorsa çözümleme başarısız olur. Yalnızca güvenilir yollar için, yol güvenlik denetimlerini atlamak üzere o sağlayıcıda
allowInsecurePath: trueayarlayın.
Exec provider
Exec provider
- Yapılandırılmış mutlak ikili yolunu kabuk olmadan çalıştırır.
- Varsayılan olarak
command, normal bir dosyaya işaret etmelidir (symlink değil). - Symlink komut yollarına izin vermek için
allowSymlinkCommand: trueayarlayın (örneğin Homebrew shim’leri). OpenClaw çözümlenen hedef yolu doğrular. - Paket yöneticisi yolları için
allowSymlinkCommanddeğerinitrustedDirsile eşleştirin (örneğin["/opt/homebrew"]). - Zaman aşımı, çıktısız zaman aşımı, çıktı bayt sınırları, env izin verilenler listesi ve güvenilir dizinleri destekler.
- Windows güvenli başarısız notu: Komut yolu için ACL doğrulaması kullanılamıyorsa çözümleme başarısız olur. Yalnızca güvenilir yollar için, yol güvenlik denetimlerini atlamak üzere o sağlayıcıda
allowInsecurePath: trueayarlayın. - Plugin tarafından yönetilen exec sağlayıcıları, kopyalanmış
command/argsyerinepluginIntegrationkullanabilir. OpenClaw, başlatma/yeniden yükleme sırasında yüklü Plugin manifest’inden geçerli komut ayrıntılarını çözümler. Plugin devre dışı bırakılmış, kaldırılmış, güvenilmeyen veya artık entegrasyonu bildirmiyor ise, o sağlayıcıyı kullanan aktif SecretRefs güvenli biçimde başarısız olur.
Dosya destekli API anahtarları
Yapılandırmaenv bloğuna file:... string’leri koymayın. env bloğu
literal ve geçersiz kılmayan yapıdadır, bu nedenle file:... çözümlenmez.
Bunun yerine desteklenen bir kimlik bilgisi alanında dosya SecretRef kullanın:
mode: "singleValue" için SecretRef id, "value" değeridir.
mode: "json" için "/providers/xai/apiKey" gibi mutlak bir JSON pointer kullanın.
SecretRefs kabul eden yapılandırma alanları için SecretRef kimlik bilgisi yüzeyi bölümüne bakın.
Exec entegrasyon örnekleri
1Password CLI
1Password CLI
Bitwarden Secrets Manager (`bws`)
Bitwarden Secrets Manager (`bws`)
SecretRef id’lerinin Bitwarden Secrets Manager öğe anahtarlarıyla eşleşmesini
istediğinizde bir çözümleyici sarmalayıcı kullanın. Depo
Çözümleyici istenen id’leri toplu işler,
scripts/secrets/openclaw-bws-resolver.mjs dosyasını içerir; bunu Gateway’i
çalıştıran ana makinede mutlak ve güvenilir bir yola kurun veya kopyalayın.Gereksinimler:- Gateway ana makinesinde Bitwarden Secrets Manager CLI (
bws) kurulu olmalıdır. BWS_ACCESS_TOKENGateway hizmeti tarafından erişilebilir olmalıdır.PATHçözümleyiciye geçirilmelidir veyaBWS_BIN, mutlakbwsikili dosya yoluna ayarlanmalıdır.- Kendi barındırdığınız bir Bitwarden örneği kullanırken ortamda
BWS_SERVER_URLayarlanmış olmalıdır.
bws secret list komutunu çalıştırır
ve eşleşen secret key alanlarının değerlerini döndürür. Exec SecretRef id
sözleşmesini karşılayan anahtarlar kullanın; örneğin
openclaw/providers/openai/apiKey; alt çizgili env-var biçimli anahtarlar,
çözümleyici çalışmadan önce reddedilir. Birden fazla görünür Bitwarden secret’ı
aynı istenen anahtara sahipse çözümleyici, birini seçmek yerine bu id’yi
belirsiz olarak başarısız kılar. Yapılandırmayı güncelledikten sonra
çözümleyici yolunu doğrulayın:HashiCorp Vault CLI
HashiCorp Vault CLI
password-store (`pass`)
password-store (`pass`)
SecretRef id’lerinin doğrudan Ardından exec provider’ı yapılandırın ve Secret’ı
pass girdileriyle eşleşmesini istediğinizde
küçük bir çözümleyici sarmalayıcı kullanın. Bunu exec-provider yol
denetimlerinizden geçen mutlak bir yolda çalıştırılabilir dosya olarak
kaydedin; örneğin /usr/local/bin/openclaw-pass-resolver.
#!/usr/bin/env node shebang’i node değerini çözümleyici işleminin
PATH değerinden çözer, bu yüzden passEnv içine PATH ekleyin. pass
bu PATH üzerinde değilse üst ortamda PASS_BIN ayarlayın ve onu da
passEnv içine ekleyin:apiKey değerini pass girdi
yoluna yönlendirin:pass girdisinin ilk satırında tutun veya bunun yerine tam
pass show çıktısını döndürmek istiyorsanız sarmalayıcıyı özelleştirin.
Yapılandırmayı güncelledikten sonra hem statik denetimi hem de exec
çözümleyici yolunu doğrulayın:sops
sops
MCP sunucusu ortam değişkenleri
plugins.entries.acpx.config.mcpServers üzerinden yapılandırılan MCP sunucusu env var’ları SecretInput destekler. Bu, API anahtarlarını ve token’ları düz metin yapılandırmasının dışında tutar:
${MCP_SERVER_API_KEY} gibi env-template refs ve SecretRef nesneleri, MCP sunucusu işlemi başlatılmadan önce Gateway etkinleştirmesi sırasında çözümlenir. Diğer SecretRef yüzeylerinde olduğu gibi, çözümlenemeyen refs yalnızca acpx Plugin’i fiilen etkin olduğunda etkinleştirmeyi engeller.
Sandbox SSH kimlik doğrulama materyali
Çekirdekssh sandbox backend’i, SSH kimlik doğrulama materyali için SecretRefs desteği de sunar:
- OpenClaw bu refs değerlerini her SSH çağrısında tembel olarak değil, sandbox etkinleştirmesi sırasında çözer.
- Çözümlenen değerler kısıtlayıcı izinlerle geçici dosyalara yazılır ve oluşturulan SSH yapılandırmasında kullanılır.
- Etkin sandbox backend’i
sshdeğilse bu refs etkin olmayan durumda kalır ve başlangıcı engellemez.
Desteklenen kimlik bilgisi yüzeyi
Standart desteklenen ve desteklenmeyen kimlik bilgileri şurada listelenir:Çalışma zamanında üretilen veya dönen kimlik bilgileri ve OAuth yenileme materyali, salt okunur SecretRef çözümlemesinin kasıtlı olarak dışında bırakılmıştır.
Gerekli davranış ve öncelik
- Ref olmayan alan: değişmez.
- Ref olan alan: etkin yüzeylerde etkinleştirme sırasında zorunludur.
- Hem düz metin hem de ref varsa, desteklenen öncelik yollarında ref önceliklidir.
- Redaction sentinel
__OPENCLAW_REDACTED__, dahili yapılandırma redaction/restore için ayrılmıştır ve literal olarak gönderilen yapılandırma verisi olarak reddedilir.
SECRETS_REF_OVERRIDES_PLAINTEXT(çalışma zamanı uyarısı)REF_SHADOWED(auth-profiles.jsonkimlik bilgilerininopenclaw.jsonrefs değerlerine göre öncelik aldığı denetim bulgusu)
serviceAccountRef, düz metinserviceAccountdeğerine göre önceliklidir.- Kardeş ref ayarlandığında düz metin değer yok sayılır.
Etkinleştirme tetikleyicileri
Secret etkinleştirmesi şu durumlarda çalışır:- Başlangıç (preflight artı son etkinleştirme)
- Yapılandırma yeniden yükleme hot-apply yolu
- Yapılandırma yeniden yükleme restart-check yolu
secrets.reloadüzerinden manuel yeniden yükleme- Düzenlemeleri kalıcılaştırmadan önce gönderilen yapılandırma payload’u içinde etkin yüzey SecretRef çözümlenebilirliği için Gateway yapılandırma yazma RPC preflight’ı (
config.set/config.apply/config.patch)
- Başarı snapshot’ı atomik olarak değiştirir.
- Başlangıç hatası Gateway başlangıcını iptal eder.
- Çalışma zamanı yeniden yükleme hatası bilinen son iyi snapshot’ı korur.
- Yazma RPC preflight hatası gönderilen yapılandırmayı reddeder ve hem disk yapılandırmasını hem de etkin çalışma zamanı snapshot’ını değiştirmeden korur.
- Bir outbound helper/tool çağrısına açık bir çağrı başına kanal token’ı sağlamak SecretRef etkinleştirmesini tetiklemez; etkinleştirme noktaları başlangıç, yeniden yükleme ve açık
secrets.reloadolarak kalır.
Bozulmuş ve kurtarılmış sinyaller
Sağlıklı bir durumdan sonra yeniden yükleme zamanı etkinleştirmesi başarısız olduğunda OpenClaw bozulmuş secrets durumuna girer. Tek seferlik sistem olayı ve günlük kodları:SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED
- Bozulmuş: çalışma zamanı bilinen son iyi snapshot’ı korur.
- Kurtarılmış: bir sonraki başarılı etkinleştirmeden sonra bir kez yayınlanır.
- Zaten bozulmuş durumdayken tekrarlanan hatalar uyarıları günlüğe yazar ancak olayları tekrarlamaz.
- Başlangıç fail-fast, çalışma zamanı hiç etkinleşmediği için bozulmuş olayları yayınlamaz.
Komut yolu çözümlemesi
Komut yolları, Gateway snapshot RPC üzerinden desteklenen SecretRef çözümlemesine katılmayı seçebilir. İki genel davranış vardır:- Katı komut yolları
- Salt okunur komut yolları
Örneğin
openclaw memory uzak bellek yolları ve uzak paylaşılan gizli referanslara ihtiyaç duyduğunda openclaw qr --remote. Bunlar etkin anlık görüntüden okur ve gerekli bir SecretRef kullanılamıyorsa hızlı şekilde başarısız olur.- Arka uç gizli bilgi döndürmesinden sonra anlık görüntü yenilemesi
openclaw secrets reloadtarafından işlenir. - Bu komut yolları tarafından kullanılan Gateway RPC yöntemi:
secrets.resolve.
Denetim ve yapılandırma iş akışı
Varsayılan operatör akışı: Yeniden denetim temiz çıkana kadar geçişi tamamlanmış saymayın. Denetim durağan halde hâlâ düz metin değerler bildiriyorsa, çalışma zamanı API’leri redakte edilmiş değerler döndürse bile ajan erişimi riski hâlâ mevcuttur.configure sırasında uygulamak yerine bir plan kaydederseniz, yeniden denetimden önce
bu kaydedilmiş planı openclaw secrets apply --from <plan-path> ile uygulayın.
secrets audit
secrets audit
Bulgular şunları içerir:
- durağan halde düz metin değerler (
openclaw.json,auth-profiles.json,.envve oluşturulanagents/*/agent/models.json) - oluşturulan
models.jsongirdilerinde düz metin hassas sağlayıcı başlığı kalıntıları - çözümlenmemiş ref’ler
- öncelik gölgelemesi (
auth-profiles.jsonöğesininopenclaw.jsonref’lerine göre öncelik alması) - eski kalıntılar (
auth.json, OAuth hatırlatmaları)
- Varsayılan olarak denetim, komut yan etkilerinden kaçınmak için exec SecretRef çözülebilirlik denetimlerini atlar.
- Denetim sırasında exec sağlayıcılarını çalıştırmak için
openclaw secrets audit --allow-execkullanın.
- Hassas sağlayıcı başlığı algılaması ad sezgilerine dayanır (yaygın auth/kimlik bilgisi başlık adları ve
authorization,x-api-key,token,secret,passwordvecredentialgibi parçalar).
secrets configure
secrets configure
Şunları yapan etkileşimli yardımcı:
- önce
secrets.providersyapılandırır (env/file/exec, ekle/düzenle/kaldır) - bir ajan kapsamı için
openclaw.jsoniçindeki desteklenen gizli bilgi taşıyan alanları ve ayrıcaauth-profiles.jsoniçeriğini seçmenizi sağlar - hedef seçicide doğrudan yeni bir
auth-profiles.jsoneşlemesi oluşturabilir - SecretRef ayrıntılarını yakalar (
source,provider,id) - ön kontrol çözümlemesi çalıştırır
- hemen uygulayabilir
--allow-execayarlanmadıkça ön kontrol exec SecretRef denetimlerini atlar.- Doğrudan
configure --applyiçinden uygularsanız ve plan exec ref’leri/sağlayıcıları içeriyorsa, uygulama adımı için de--allow-execayarlı kalsın.
openclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent <id>
configure uygulama varsayılanları:- hedeflenen sağlayıcılar için
auth-profiles.jsoniçinden eşleşen statik kimlik bilgilerini temizler auth.jsoniçinden eski statikapi_keygirdilerini temizler<config-dir>/.enviçinden eşleşen bilinen gizli bilgi satırlarını temizler
secrets apply
secrets apply
Kaydedilmiş bir planı uygulayın:Exec notu:
- dry-run,
--allow-execayarlanmadıkça exec denetimlerini atlar. - yazma modu,
--allow-execayarlanmadıkça exec SecretRef’leri/sağlayıcıları içeren planları reddeder.
Tek yönlü güvenlik ilkesi
Güvenlik modeli:- yazma modundan önce ön kontrol başarılı olmalıdır
- çalışma zamanı etkinleştirmesi commit öncesinde doğrulanır
- uygulama, dosyaları atomik dosya değiştirme ve hata durumunda en iyi çabayla geri yükleme kullanarak günceller
Eski auth uyumluluk notları
Statik kimlik bilgileri için çalışma zamanı artık düz metin eski auth depolamasına bağlı değildir.- Çalışma zamanı kimlik bilgisi kaynağı, çözümlenmiş bellek içi anlık görüntüdür.
- Eski statik
api_keygirdileri keşfedildiğinde temizlenir. - OAuth ile ilgili uyumluluk davranışı ayrı kalır.
Web UI notu
Bazı SecretInput union’larını ham düzenleyici modunda yapılandırmak, form moduna göre daha kolaydır.İlgili
- Kimlik Doğrulama — auth kurulumu
- CLI: secrets — CLI komutları
- Ortam Değişkenleri — ortam önceliği
- SecretRef Kimlik Bilgisi Yüzeyi — kimlik bilgisi yüzeyi
- Gizli Bilgileri Uygulama Planı Sözleşmesi — plan sözleşmesi ayrıntıları
- Güvenlik — güvenlik duruşu