Le front web de la plateforme de test a la même origine que son API¶
src/test/java/fr/univ_amu/iut/commun/api/plateforme/FrontWebSurLaPlateformeDeTestTest.java, src/test/java/fr/univ_amu/iut/commun/api/plateforme/ImageDeLApiSansRevisionTest.javaContexte¶
L'ADR 0020 a mesuré trois défauts d'écriture que seule la fiche web de Vigie-Chiro a attrapés. Le sous-chantier #5645 veut qu'un test relise sur cette fiche ce que Companion a écrit. Il faut d'abord que la plateforme de test serve le front web, ce qu'elle ne faisait pas.
Deux faits du front amont décident de la forme. Son adresse d'API est figée à la construction,
dans settings.coffee, alors que le port publié de l'API n'est connu qu'au démarrage. Et l'API fige
son CORS sur une seule origine, http://localhost:9000 par défaut.
Décision¶
Le front est construit dans l'image de l'API, et l'API le sert à sa racine. C'est le mode
FRONTEND_HOSTED que l'API amont porte déjà : il sert le dossier static de /api. Le front est
à /, l'API à /api/v1, sur le même port.
- L'adresse de l'API est réécrite en
/api/v1, relative, avantgrunt build. Elle vaut quel que soit le port publié, et le navigateur la résout contre la page. - Il n'y a qu'une origine, donc aucun CORS à régler.
PlateformeDeTest.Acces.urlDuFront()dérive l'adresse du front de celle de l'API, au lieu de rendre deux adresses qui pourraient diverger.- La révision du front est une épingle de
epingles.properties, comme celle de l'API, et l'image refuse de se construire sans elle.
Le front se construit comme son amont le déploie : Node 22, bower, grunt build.
Ce qui a été écarté¶
- Deux origines et le CORS réglé. Il aurait fallu connaître le port publié de l'API avant de
construire le front, et régler
CORS_ORIGINsur un port du front lui aussi publié au démarrage. - Un relais nginx devant les deux. Un conteneur de plus, qui refait ce que l'API sait déjà faire.
- Une seconde image, construite seulement quand un test demande le front. Les tests de #6062 à #6064 joueront dans le même job et la demanderont : elle n'économiserait rien, pour un mécanisme de plus. Choix du porteur, le 12 octobre 2026.
Conséquences¶
Chaque test de la plateforme de test paie la construction du front : le job passe de 100 à 144 s
sur main à 209 à 246 s.
L'ADR 5666 dit ce que cela fait à la durée
du job.
Le constructeur de Testcontainers garde l'image de l'étape du front à chaque reconstruction. Ses dépendances sont donc retirées dans l'instruction qui la construit : sans cela, trois reconstructions avaient rempli le disque d'un poste.
Mise à jour du 12 octobre 2026 (#6061). Le front ne démarre pas sans le sélecteur de dates qu'il charge de cdnjs ; il y prend aussi sa locale française et Font Awesome. Ces fichiers sont rapatriés à la construction et servis par l'API, et le navigateur des tests ne joint plus aucun hôte extérieur. Google Maps et Analytics, dont la fiche se passe, y tombent en erreur sans la retenir.