Sémantique des identifiants d’authentification
Ce document définit la sémantique canonique d’éligibilité et de résolution des identifiants utilisée dans l’ensemble de :resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
Codes de raison de probe stables
okexcluded_by_auth_ordermissing_credentialinvalid_expiresexpiredunresolved_refno_model
Identifiants de jeton
Les identifiants de jeton (type: "token") prennent en charge token en ligne et/ou tokenRef.
Règles d’éligibilité
- Un profil de jeton n’est pas éligible lorsque
tokenettokenRefsont tous deux absents. expiresest facultatif.- Si
expiresest présent, il doit s’agir d’un nombre fini supérieur à0. - Si
expiresest invalide (NaN,0, négatif, non fini ou de type incorrect), le profil n’est pas éligible avecinvalid_expires. - Si
expiresse situe dans le passé, le profil n’est pas éligible avecexpired. tokenRefne contourne pas la validation deexpires.
Règles de résolution
- La sémantique du résolveur correspond à la sémantique d’éligibilité pour
expires. - Pour les profils éligibles, le matériel de jeton peut être résolu à partir d’une valeur en ligne ou de
tokenRef. - Les références impossibles à résoudre produisent
unresolved_refdans la sortie demodels status --probe.
Filtrage explicite de l’ordre d’authentification
- Lorsque
auth.order.<provider>ou la surcharge d’ordre du magasin d’authentification est définie pour un fournisseur,models status --probene probe que les identifiants de profil qui restent dans l’ordre d’authentification résolu pour ce fournisseur. - Un profil stocké pour ce fournisseur qui est omis de l’ordre explicite n’est pas essayé silencieusement plus tard. La sortie de probe le signale avec
reasonCode: excluded_by_auth_orderet le détailExcluded by auth.order for this provider.
Résolution de la cible de probe
- Les cibles de probe peuvent provenir des profils d’authentification, des identifiants d’environnement ou de
models.json. - Si un fournisseur a des identifiants mais qu’OpenClaw ne peut pas résoudre de candidat de modèle probeable pour lui,
models status --probesignalestatus: no_modelavecreasonCode: no_model.
Garde de politique SecretRef OAuth
- L’entrée SecretRef est réservée aux identifiants statiques uniquement.
- Si un identifiant de profil est de
type: "oauth", les objets SecretRef ne sont pas pris en charge pour ce matériel d’identifiant de profil. - Si
auth.profiles.<id>.modevaut"oauth", l’entréekeyRef/tokenRefadossée à SecretRef pour ce profil est rejetée. - Les violations sont des échecs bloquants dans les chemins de résolution d’authentification au démarrage/rechargement.
Messagerie compatible avec l’historique
Pour la compatibilité des scripts, les erreurs de probe conservent cette première ligne inchangée :Auth profile credentials are missing or expired.
Des détails plus conviviaux et des codes de raison stables peuvent être ajoutés sur les lignes suivantes.