33800 Docs

← Retour

Task: Lot 2 Dashboard + Auth fixes ai-orchestrator

Date: 16/02/2026 Status: TERMINE


1. Lot 2 — Backend (monitoring repo)

Repo: gouroubleu/dashboard-33800 (monitoring/) Commit: e811139 Pipeline: #1104 success

Ajouts

Test endpoints

GET /api/infra/zfs/detail → 2 pools (stock_36to: 5 disks, stock_8to: 3 disks)
GET /api/alerts → 2 alertes (gitlab error, container dead)

2. Lot 2 — Frontend (dashboard-33800-frontend repo)

Repo: gouroubleu/dashboard-33800-frontend Commit: 222686c Pipeline: #1105 success

Ajouts

Test

GET /raidz/  → 200 OK
GET /alerts/ → 200 OK

3. Auth ai-orchestrator — Instance connectors-api

Contexte: L'audit securite (commit 2f8786c du 15/02) a active l'auth Bearer sur ai-orchestrator. Les services appelant ai-orchestrator via le proxy connectors-api recevaient 401.

Etat des appelants ai-orchestrator

Service Appel direct/proxy Auth avant fix Action
dashboard-33800 backend Direct Bearer OK Aucune
connectors-api (proxy) Proxy Instance sans api_key Fix ci-dessous
needfinder Direct Bearer OK Aucune
qwik-interface-generator Direct Bearer OK Aucune
browser-connector Direct Aucune Code modifie (non commite)
claude-memory Direct Aucune Code modifie (non commite)

Fix applique

Instance Supabase connectors.user_connectors :

Verification web-search et scraper

Service Test sans auth Resultat
web-search (SearXNG) GET /search?q=test&format=json 200 — pas d'auth
browser-connector GET /health, GET /api/status 200 — JWT passthrough deja en place
ai-orchestrator GET /api/gpu 401 — seul service bloque

4. SSH_ENCRYPTION_KEY — Ajout dans prod.env

Contexte: connectors-api chiffre les passwords SSH avec AES-256-CBC (cle derivee via scrypt depuis SSH_ENCRYPTION_KEY). Le code avait un fallback hardcode default-key-change-in-production-32! utilise en prod car la cle n'etait pas dans prod.env.

Fix: Ajout de SSH_ENCRYPTION_KEY=default-key-change-in-production-32! dans /stock_8to/33800-stack/docker/secrets/prod.env

Fichier: connectors-api/src/services/ssh.ts lignes 105-124 Algo: AES-256-CBC, IV random 16 bytes, cle derivee via crypto.scryptSync(key, 'salt', 32) Format stocke: <iv_hex>:<encrypted_hex> dans token_metadata.password_encrypted


5. Code modifie non commite (en attente)

browser-connector (src/services/ai.ts)

claude-memory

Ces changements sont necessaires car browser-connector et claude-memory appellent ai-orchestrator directement (pas via le proxy connectors-api). Sans le Bearer, leurs appels retournent 401.


Fichiers modifies

Fichier Repo Status
backend/src/collectors/ssh.ts monitoring Commite + pushe
backend/src/collectors/alerts.ts monitoring Commite + pushe
backend/src/routes/infra.ts monitoring Commite + pushe
backend/src/routes/alerts.ts monitoring Commite + pushe
backend/src/index.ts monitoring Commite + pushe
src/routes/raidz/index.tsx dashboard-frontend Commite + pushe
src/routes/alerts/index.tsx dashboard-frontend Commite + pushe
src/lib/api.ts dashboard-frontend Commite + pushe
src/lib/types.ts dashboard-frontend Commite + pushe
src/routes/layout.tsx dashboard-frontend Commite + pushe
docker/secrets/prod.env 33800-stack Modifie (pas de CI/CD)
src/services/ai.ts browser-connector Modifie, non commite
conf.prod.gouroubleu.yml browser-connector Modifie, non commite
src/config.py claude-memory Modifie, non commite
src/embeddings.py claude-memory Modifie, non commite