- 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
L'image registry.access.redhat.com/ubi8/openjdk-17-runtime:1.18
n'était pas accessible, causant des échecs de build Docker.
Changements:
- Utilisation de eclipse-temurin:17-jre-alpine (image publique)
- Création manuelle de l'utilisateur appuser (UID 185)
- Même configuration de sécurité et de permissions
Cette image est plus légère et publiquement accessible,
ce qui permet un build Docker sans authentification.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>