Aurora NexusConfiguration
Auth — Aurora Nexus (MVP)
(depuis `AUTH_FLOW.md`)
Cette application est historiquement nommée Aurora RAG dans le code, mais le nom produit est Aurora Nexus.
TL;DR
- UI (recommandé) : auth par cookie HttpOnly (pas de JWT stocké en localStorage).
- Apps externes / scripts : auth par JWT via
Authorization: Bearer <token>. - Endpoint de login :
POST /api/auth/login - Swagger :
http://127.0.0.1:<HOST_API_PORT>/api/docs
1) Modes d’auth (UI)
A) Mode cookie (par défaut recommandé)
- L’UI appelle
POST /api/auth/login. - L’API dépose un cookie HttpOnly (nom configuré via
AUTH_COOKIE_NAME, défautaurora_token). - Le navigateur renvoie automatiquement ce cookie sur les appels suivants (même origine).
Variables .env usuelles :
NEXT_PUBLIC_AUTH_MODE=cookieAUTH_COOKIE_NAME=aurora_tokenAUTH_COOKIE_SECURE=true(à laisser àfalseuniquement en HTTP local)AUTH_COOKIE_SAMESITE=laxCORS_ALLOW_ORIGINS=...(requis si vous avez des origines différentes + cookies)
Option de compat :
RETURN_JWT_IN_BODY=false(recommandé) → le JSON renvoietoken="cookie_only"et le cookie reste la source de vérité.RETURN_JWT_IN_BODY=true→ l’API renvoie aussi le JWT dans le body (moins recommandé côté navigateur).
B) Mode bearer (UI)
Ce mode est utile si vous ne pouvez pas utiliser les cookies (ex. contraintes navigateur / reverse-proxy atypique), mais implique de stocker un token côté UI.
Variable .env :
NEXT_PUBLIC_AUTH_MODE=bearer
2) Mode JWT (apps externes)
- Créer un utilisateur “service” (role
user) via l’UI Admin ou/api/admin/users. - Lui attribuer des permissions par
source_appvia/api/admin/users/{user_id}/permissions. - Récupérer un JWT :
curl -sS -X POST "http://127.0.0.1:<HOST_API_PORT>/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"service@example.com","password":"***"}'- Appeler les endpoints protégés :
curl -sS -X POST "http://127.0.0.1:<HOST_API_PORT>/api/query" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"query":"...","source_app":"dev","workspace":"default","language":"fr"}'3) OAuth Google (UI)
Le flow OAuth (si activé) passe par des endpoints /api/auth/google/* et évite le JWT dans l’URL (mécanisme “one‑time code” côté UI).
Variables .env :
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GOOGLE_REDIRECT_URIOAUTH_LOGIN_CODE_TTL_SECONDS
4) Notes sécurité MVP
- Éviter d’exposer Postgres/Qdrant/MinIO/Redis publiquement : bind
127.0.0.1+ reverse-proxy uniquement pour UI/API. - En production, utiliser des secrets forts :
JWT_SECRET,GATEWAY_INTERNAL_SECRET,LLM_CREDENTIALS_ENC_KEY. - Garder
ALLOW_ADMIN_ENV_WRITE=falsepour éviter l’écriture de secrets dans.envvia API.