Semantyka poświadczeń uwierzytelniania
Ten dokument definiuje kanoniczną semantykę kwalifikowalności poświadczeń i rozstrzygania używaną w całym systemie w:resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
Stabilne kody przyczyn sprawdzania
okexcluded_by_auth_ordermissing_credentialinvalid_expiresexpiredunresolved_refno_model
Poświadczenia tokenów
Poświadczenia tokenów (type: "token") obsługują wbudowane token i/lub tokenRef.
Reguły kwalifikowalności
- Profil tokenu nie kwalifikuje się, gdy zarówno
token, jak itokenRefsą nieobecne. expiresjest opcjonalne.- Jeśli
expiresjest obecne, musi być skończoną liczbą większą od0. - Jeśli
expiresjest nieprawidłowe (NaN,0, wartość ujemna, wartość nieskończona lub niewłaściwy typ), profil nie kwalifikuje się zinvalid_expires. - Jeśli
expireswskazuje czas w przeszłości, profil nie kwalifikuje się zexpired. tokenRefnie omija walidacjiexpires.
Reguły rozstrzygania
- Semantyka resolvera jest zgodna z semantyką kwalifikowalności dla
expires. - Dla kwalifikujących się profili materiał tokenu może zostać rozstrzygnięty z wartości wbudowanej lub z
tokenRef. - Referencje, których nie da się rozstrzygnąć, powodują
unresolved_refw danych wyjściowychmodels status --probe.
Jawne filtrowanie kolejności uwierzytelniania
- Gdy dla dostawcy ustawiono
auth.order.<provider>lub nadpisanie kolejności w magazynie uwierzytelniania,models status --probesprawdza tylko identyfikatory profili, które pozostają w rozstrzygniętej kolejności uwierzytelniania dla tego dostawcy. - Zapisany profil dla tego dostawcy, pominięty w jawnej kolejności, nie jest po cichu próbowany później. Dane wyjściowe sprawdzania raportują go z
reasonCode: excluded_by_auth_orderoraz szczegółemExcluded by auth.order for this provider.
Rozstrzyganie celu sprawdzania
- Cele sprawdzania mogą pochodzić z profili uwierzytelniania, poświadczeń środowiskowych lub z
models.json. - Jeśli dostawca ma poświadczenia, ale OpenClaw nie może rozstrzygnąć dla niego kandydata modelu nadającego się do sprawdzenia,
models status --proberaportujestatus: no_modelzreasonCode: no_model.
Ochrona zasad SecretRef dla OAuth
- Wejście SecretRef jest przeznaczone wyłącznie dla statycznych poświadczeń.
- Jeśli poświadczenie profilu ma
type: "oauth", obiekty SecretRef nie są obsługiwane dla materiału poświadczeń tego profilu. - Jeśli
auth.profiles.<id>.modema wartość"oauth", wejściekeyRef/tokenRefoparte na SecretRef dla tego profilu jest odrzucane. - Naruszenia są traktowane jako twarde błędy w ścieżkach rozstrzygania uwierzytelniania podczas uruchamiania/przeładowywania.
Komunikaty zgodne ze starszymi wersjami
Dla zgodności ze skryptami błędy sprawdzania zachowują ten pierwszy wiersz bez zmian:Auth profile credentials are missing or expired.
Przyjazne dla użytkownika szczegóły i stabilne kody przyczyn mogą zostać dodane w kolejnych wierszach.