Le backend sert maintenant les endpoints directement sans préfixe de contexte:
- /api/v1/users au lieu de /btpxpress/api/v1/users
- /q/health/ready au lieu de /btpxpress/q/health/ready
- /openapi au lieu de /btpxpress/openapi
L'Ingress nginx gère le préfixe /btpxpress et le retire avant de transmettre au backend.
Cela corrige les erreurs 404 sur tous les endpoints REST.
- Fixed HEALTHCHECK to use /btpxpress/q/health/ready instead of /q/health/ready
- Added quarkus.swagger-ui.urls.default=/btpxpress/openapi for correct OpenAPI loading
- Ensures Swagger UI loads the spec from the correct path with root-path
These fixes ensure:
1. Docker health checks work correctly with quarkus.http.root-path=/btpxpress
2. Swagger UI correctly loads /btpxpress/openapi instead of /openapi
3. Pods are marked healthy by Kubernetes
Resolves the 404 error in Swagger UI when loading API definition.
- Added quarkus.http.root-path=/btpxpress in production config
- Removed custom Swagger UI files (index.html, swagger-initializer.js)
- Backend now knows it's served under /btpxpress context path
- Swagger UI will correctly generate URLs like /btpxpress/openapi
IMPORTANT: Ingress configuration must be updated to NOT use rewrite-target
The Ingress should pass requests to backend with full path preserved:
https://api.lions.dev/btpxpress/openapi -> http://backend:8080/btpxpress/openapi
This is the proper solution instead of using rewrite-target which breaks
context-aware applications like Swagger UI.
Ajoute un fichier swagger-initializer.js personnalisé qui surcharge
l'URL par défaut pour charger l'OpenAPI spec depuis /btpxpress/openapi.
Cela corrige le problème où Swagger UI ne pouvait pas charger la spécification
derrière l'Ingress nginx avec rewrite-target.
Ajoute quarkus.swagger-ui.url=/btpxpress/openapi pour corriger le chargement
de la spécification OpenAPI dans Swagger UI derrière l'Ingress nginx avec rewrite.
- Suppression du UserResource.java dupliqué dans adapter/http
- Conservation de la version standardisée dans application/rest
- Correction de l'erreur de compilation 'duplicate class'
🔧 RESTRUCTURATION
- UserResource déplacé de adapter.http vers application.rest
- FournisseurResource déplacé vers application.rest
- Suppression des contrôleurs obsolètes (presentation.controller)
- Suppression de MaterielFournisseurService en doublon
📝 STANDARDISATION DOCUMENTATION
- Annotations OpenAPI uniformes (@Operation, @APIResponse, @Parameter)
- Descriptions concises et cohérentes pour tous les endpoints
- Codes de réponse HTTP standards (200, 201, 400, 404, 500)
🛠️ ENDPOINTS USERS STANDARDISÉS
- GET /api/v1/users - Liste tous les utilisateurs
- GET /api/v1/users/{id} - Détails d'un utilisateur
- GET /api/v1/users/stats - Statistiques globales
- GET /api/v1/users/count - Comptage
- GET /api/v1/users/pending - Utilisateurs en attente
- POST /api/v1/users - Création
- PUT /api/v1/users/{id} - Mise à jour
- DELETE /api/v1/users/{id} - Suppression
- POST /api/v1/users/{id}/approve - Approbation
- POST /api/v1/users/{id}/reject - Rejet
- PUT /api/v1/users/{id}/status - Changement de statut
- PUT /api/v1/users/{id}/role - Changement de rôle
⚠️ GESTION D'ERREURS
- Format uniforme: Map.of("error", "message")
- Codes HTTP cohérents avec les autres ressources
- Validation des entrées standardisée
✅ VALIDATION
- Compilation réussie: mvn clean compile -DskipTests
- Pattern conforme aux autres ressources (PhaseTemplate, Fournisseur)
- Documentation OpenAPI/Swagger complète et cohérente
Added explicit HTTP auth permissions to allow unauthenticated access to:
- /q/* (health endpoints)
- /openapi (OpenAPI spec)
- /swagger-ui/* (Swagger UI)
This fixes the issue where proactive auth mode blocked access to
documentation endpoints in production.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The Ingress already handles the /btpxpress path prefix with rewrite-target,
so the backend should serve requests directly without a root-path.
This fixes the 404 errors when accessing endpoints like:
- https://api.lions.dev/btpxpress/q/health
- https://api.lions.dev/btpxpress/api/*
Before: Backend expected /btpxpress/q/health (due to root-path)
After: Backend serves /q/health (Ingress rewrites /btpxpress/... to /...)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>