Семантика облікових даних автентифікації
У цьому документі визначено канонічні правила придатності облікових даних і семантику розв’язання, що використовуються в таких місцях:resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
Стабільні коди причин проби
okexcluded_by_auth_ordermissing_credentialinvalid_expiresexpiredunresolved_refno_model
Токенові облікові дані
Токенові облікові дані (type: "token") підтримують вбудоване token та/або tokenRef.
Правила придатності
- Профіль токена є непридатним, якщо відсутні і
token, іtokenRef. expiresє необов’язковим.- Якщо
expiresприсутній, він має бути скінченним числом, більшим за0. - Якщо
expiresє недійсним (NaN,0, від’ємне значення, нескінченне значення або неправильний тип), профіль є непридатним зinvalid_expires. - Якщо
expiresуже минув, профіль є непридатним зexpired. tokenRefне обходить перевіркуexpires.
Правила розв’язання
- Семантика засобу розв’язання для
expiresзбігається з семантикою придатності. - Для придатних профілів матеріал токена може бути розв’язаний із вбудованого значення або з
tokenRef. - Посилання, які неможливо розв’язати, призводять до
unresolved_refу виводіmodels status --probe.
Фільтрація за явним порядком автентифікації
- Коли для провайдера задано
auth.order.<provider>або перевизначення порядку в сховищі автентифікації,models status --probeперевіряє лише ті id профілів, що залишаються в розв’язаному порядку автентифікації для цього провайдера. - Збережений профіль для цього провайдера, який пропущено в явному порядку, не буде мовчки перевірено пізніше. Вивід проби повідомляє про нього з
reasonCode: excluded_by_auth_orderі деталлюExcluded by auth.order for this provider.
Розв’язання цілей проби
- Цілі проби можуть надходити з профілів автентифікації, облікових даних середовища або
models.json. - Якщо провайдер має облікові дані, але OpenClaw не може розв’язати для нього придатний до проби кандидат моделі,
models status --probeповідомляєstatus: no_modelзreasonCode: no_model.
Захисне правило політики OAuth SecretRef
- Вхід SecretRef призначений лише для статичних облікових даних.
- Якщо облікові дані профілю мають
type: "oauth", об’єкти SecretRef для матеріалу облікових даних цього профілю не підтримуються. - Якщо
auth.profiles.<id>.modeдорівнює"oauth", вхідkeyRef/tokenRefна основі SecretRef для цього профілю відхиляється. - Порушення є жорсткими помилками в шляхах розв’язання автентифікації під час запуску/перезавантаження.
Повідомлення зі збереженням сумісності з застарілими скриптами
Для сумісності зі скриптами цей перший рядок помилок проби залишається без змін:Auth profile credentials are missing or expired.
Дружні до людини деталі та стабільні коди причин можуть бути додані в наступних рядках.