Files
bruno 2f2a5e9b4a
CI / Lint & Format (push) Failing after 28s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 8s
CI / Docker Build (push) Has been skipped
Add admin panel, WebSocket support, and API versioning
Introduce an admin portal (React + Nginx), WebSocket routing, and
API versioning middleware with `/api/v1/` prefix deprecation.
Add master API key authentication, new Prometheus metrics for AI
token consumption and active WebSockets, and extend S3 config
with a public endpoint URL. Update test paths and fixtures to
align with the new routing structure.
2026-06-22 11:25:22 -04:00

3.8 KiB

Imago Hub — Portail d'Administration

Portail d'administration web pour Imago Hub, construit avec React 19, TypeScript, Vite, et Tailwind CSS.

Fonctionnalités

Section Admin

  • Tableau de bord — KPIs, graphiques uploads/stockage, santé des composants, activité récente
  • Clients — CRUD complet, rotation de clés API, gestion des plans et scopes
  • Détail client — Quotas (images/stockage/tokens), scopes, images récentes
  • File de tâches — Jobs en attente/cours/échec, retraitement unitaire et en lot
  • Métriques — Visualisation Prometheus : uploads, tokens, stockage, erreurs par étape
  • Santé — État des composants (DB, Redis, Queue, OCR, AI, Disque)
  • Configuration — Affichage lecture seule de la configuration backend
  • Logs — Flux de logs en temps réel avec filtres et export

Section Galerie

  • Galerie — Grille/liste, filtres avancés, recherche, pagination
  • Détail image — 5 onglets (AI Vision, EXIF + carte GPS, OCR, Technique, Provenance)
  • Galerie client — Images filtrées par application

Stack technique

Technologie Usage
React 19 UI framework
TypeScript 5 Typage statique strict
Vite 7 Bundler et dev server
Tailwind CSS 3 Styling utility-first, thème sombre
TanStack Query 5 Data fetching et cache
Zustand 5 State management (auth, filtres)
React Router 7 Routage SPA
Recharts 3 Graphiques et visualisations
React-Leaflet 5 Cartes GPS interactives
Lucide React Icônes
Vitest Tests unitaires

Démarrage rapide

Développement

# Installation des dépendances
npm install

# Lancer le serveur de développement
npm run dev

# Le portail est accessible sur http://localhost:5173
# Les requêtes API sont proxifiées vers http://localhost:8000

Scripts disponibles

npm run dev        # Serveur dev avec HMR
npm run build      # Build production
npm run preview    # Prévisualiser le build
npm run test       # Lancer les tests unitaires
npm run test:watch # Tests en mode watch
npm run typecheck  # Vérification TypeScript
npm run lint       # ESLint

Docker

Build et lancement autonome

docker build -t imago-admin .
docker run -p 3000:3000 imago-admin

Via docker-compose (stack complète)

Depuis la racine du projet Imago (../), le docker-compose.yml inclut le service admin :

cd ..
docker compose up -d
# Admin : http://localhost:3000
# Backend : http://localhost:8000

Architecture du projet

src/
├── api/           # Client HTTP + services (auth, images, metrics, health)
├── components/
│   ├── layout/    # Sidebar, TopBar, PageLayout
│   └── shared/    # 12 composants UI réutilisables
├── hooks/         # 6 hooks React (TanStack Query + WebSocket)
├── pages/
│   ├── admin/     # 8 pages admin
│   └── gallery/   # 3 pages galerie
├── store/         # 4 stores Zustand
├── types/         # Interfaces TypeScript (API + métriques)
├── utils/         # Utilitaires + tests (formats, couleurs, Prometheus, constantes)
└── test/          # Configuration des tests

Authentification

Le portail utilise une clé API pour l'authentification :

  1. Saisie sur la page de login
  2. Stockée uniquement en mémoire (Zustand — pas de localStorage)
  3. Envoyée dans le header Authorization: Bearer <clé>
  4. Déconnexion automatique sur réponse 401/403

Variables d'environnement

Variable Défaut Description
VITE_API_BASE_URL http://localhost:8000 URL de l'API backend
VITE_APP_TITLE Imago Hub Admin Titre de l'application

Licence

Projet interne — voir la licence du projet parent.