**Motivations:** - 403 No valid api key when users paste Ollama nginx secret into extension **Root causes:** - AnythingLLM validates keys only from its DB; nginx Bearer is unrelated **Correctifs:** - README and fixKnowledge doc; strip optional Bearer prefix in client **Evolutions:** - Extension version 0.1.1 **Pages affectées:** - extensions/anythingllm-workspaces/* - docs/fixKnowledge/anythingllm-extension-403-api-key.md - docs/README.md
1.8 KiB
1.8 KiB
AnythingLLM extension — 403 « No valid api key found »
Author: 4NK
Symptôme
Commande AnythingLLM: List workspaces → erreur du type :
AnythingLLM API 403: {"error":"No valid api key found."}
Cause
Le middleware amont validApiKey lit Authorization, extrait le jeton après Bearer , puis appelle ApiKey.get({ secret }) sur la base AnythingLLM. Toute valeur absente de cette base produit la même réponse 403.
Root cause fréquente
Confusion entre :
- le secret Bearer nginx utilisé pour
https://ia.enso.4nkweb.com/ollama/…(documenté dansdeploy/nginx/README-ia-enso.md) ; - une clé API AnythingLLM créée dans l’UI : Settings → API Keys.
Ce sont deux mécanismes indépendants. Le secret nginx n’est pas enregistré comme clé API dans AnythingLLM.
Correctifs côté utilisateur
- Ouvrir l’UI AnythingLLM (
anythingllm.baseUrl). - Settings → API Keys : créer une clé si besoin, copier le secret affiché.
- Coller ce secret dans
anythingllm.apiKey(réglages Utilisateur de l’éditeur).
Correctifs côté code / doc
- README de l’extension : rappel explicite nginx vs clé AnythingLLM.
- Client : normalisation
normalizeApiSecret— si l’utilisateur a colléBearer <secret>, le préfixe est retiré avant l’envoi (évite un jeton parsé commeBearerpar erreur).
Modalités d’analyse
- Vérifier la réponse HTTP brute (403 + corps JSON).
- Comparer la valeur configurée avec l’origine (fichier map nginx vs écran API Keys).
- Tester avec
curl:curl -sS -H "Authorization: Bearer <secret AnythingLLM>" "<baseUrl>/api/v1/workspaces".
Modalités de déploiement
Redéployer / réinstaller l’extension après modification du client (npm run compile ou nouveau .vsix). Aucun changement nginx requis pour ce diagnostic.