Canigó. Configuració multi-entorn en SPAs
04-04-2018
Amb la separació de frontend i backend que es recomana aplicar com a patró d’arquitectura en aplicacions Canigó, i per tal d’acomplir els requeriments d’una única construcció no depenent de l’entorn que s’imposa des del SIC (Servei d’Integració Contínua), cal donar una solució de configuració multi-entorn per la part de frontend. Aquest frontend en les aplicacions web actuals típicament seran SPA (Single Page Application).
A continuació s’enumeren diferents opcions:
Configuració única “hardcoded” al codi javascript de la SPA
Avantatges
Inconvenients
Conclusió
Pot ser una configuració vàlida per un pilot però no per una aplicació que hagi de desplegar-se en entorns productius
Configuració multi-entorn “hardcoded” al client, i obtinguda en funció del domini de l’aplicació.
Per exemple:
Aquesta lògica hauria d’estar al propi codi font, ja sigui en el de la mateixa SPA, o bé en un mòdul reusable entre diferents SPAs.
Avantatges
Inconvenients
Conclusió
Tot i ser millor que l’opció 1), té mancances no assumibles per ser adoptada com a solució
Per aplicar aquesta solució cal que el backend exposi un endpoint d’on obtenir la configuració específica per l’entorn que requereixi la SPA. Per exemple, en un backend Canigó podria ser https://domini/api/frontendProperties. Aquesta crida s’hauria de fer de forma autenticada (Ex. JWT) un cop l’usuari ha fet login a l’aplicació i ha obtingut el token d’accés.
Avantatges
Inconvenients
Conclusió
El principal inconvenient que té aquesta solució és el delay que s’afegeix en la càrrega de la SPA
Tot i que poden haver-hi altres solucions, l’opció 3) es considera com a vàlida ja que compleix els requisits de multi-entorn i mínims de seguretat. És una solució força natural a aplicar en una SPA amb un backend Canigó 3.2. Per a més detall, des del CS Canigó hem preparat el HowTo - Configuració multi-entorn a una SPA amb backend Canigó.