smart_ide/docs/fixKnowledge/anythingllm-extension-403-api-key.md
Nicolas Cantu 564b9d5576 AnythingLLM extension: clarify API key vs nginx bearer, normalize Bearer prefix
**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
2026-03-23 14:23:09 +01:00

1.8 KiB
Raw Blame History

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é dans deploy/nginx/README-ia-enso.md) ;
  • une clé API AnythingLLM créée dans lUI : Settings → API Keys.

Ce sont deux mécanismes indépendants. Le secret nginx nest pas enregistré comme clé API dans AnythingLLM.

Correctifs côté utilisateur

  1. Ouvrir lUI AnythingLLM (anythingllm.baseUrl).
  2. Settings → API Keys : créer une clé si besoin, copier le secret affiché.
  3. Coller ce secret dans anythingllm.apiKey (réglages Utilisateur de léditeur).

Correctifs côté code / doc

  • README de lextension : rappel explicite nginx vs clé AnythingLLM.
  • Client : normalisation normalizeApiSecret — si lutilisateur a collé Bearer <secret>, le préfixe est retiré avant lenvoi (évite un jeton parsé comme Bearer par erreur).

Modalités danalyse

  • Vérifier la réponse HTTP brute (403 + corps JSON).
  • Comparer la valeur configurée avec lorigine (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 lextension après modification du client (npm run compile ou nouveau .vsix). Aucun changement nginx requis pour ce diagnostic.