GovWay v3.3.0
Nuova funzionalità di registrazione di un Applicativo Server
Gli applicativi registrati su GovWay, dalla versione 3.3.0, possono essere di due tipi:
-
Client: si tratta degli applicativi presenti anche nelle precedenti versioni, censiti allo scopo di identificarli ed autorizzarli durante l'invocazione di erogazioni o fruizioni di API;
-
Server: un nuovo tipo di applicativo che consente di censire una applicazione di backend alla quale associare quelle informazioni tipicamente indicate sinora nella sezione 'Connettore' dell'erogazione della API (endpoint, credenziali, ...). In una erogazione è così possibile riferire un applicativo server già registrato come modalità alternativa a quella di indicare esplicitamente tutte le informazioni richieste.
Nuova funzionalità di Load Balancer
Per le erogazioni di API è possibile definire connettori multipli con finalità di bilanciamento delle richieste in arrivo.
Vengono forniti differenti tipi di bilanciamento del carico:
-
Round Robin: le richieste vengono distribuite in ordine tra i connettori registrati;
-
Weight Round Robin: rispetto al Round Robin consente di riequilibrare eventuali server eterogenei tramite una distribuzione bilanciata rispetto al peso associato ad ogni connettore;
-
Random: le richieste vengono distribuite casualmente tra i connettori registrati;
-
Weight Random: rispetto al Random si ha una distribuzione casuale che considerà però il peso associato ad ogni connettore;
-
Source IP hash: combina l'indirizzo IP del client e l'eventuale indirizzo IP portato nell'header 'Forwarded-For' per generare una chiave hash che viene designata per un connettore specifico;
-
Least Connections: la richiesta viene indirizzata verso il connettore che ha il numero minimo di connessioni attive.
La configurazione permette anche di abilitare una sessione sticky in modo che tutte le richieste che presentano lo stesso id di sessione vengano servite tramite lo stesso connettore. Se l'identificativo di sessione si riferisce ad una nuova sessione, viene selezionato un connettore rispetto alla strategia indicata. L'identificativo di sessione utilizzato è individuabile tramite una delle seguenti modalità:
-
Cookie: nome di un cookie;
-
Header HTTP: nome di un header http;
-
Url di Invocazione: espressione regolare applicata sulla url di invocazione;
-
Parametro della Url: nome del parametro presente nella url di invocazione;
-
Contenuto: espressione (xPath o jsonPath) utilizzata per estrarre un identificativo dal body della richiesta;
-
Client IP: indirizzo IP del client;
-
X-Forwared-For: header http appartenente alla classe di header 'Forwarded-For';
-
Template: l'identificativo di sessione è il risultato dell'istanziazione del template fornito rispetto ai dati della richiesta;
-
Freemarker Template: l'identificativo di sessione è ottenuto tramite il processamento di un Freemarker Template;
-
Velocity Template: l'identificativo di sessione è ottenuto tramite il processamento di un Velocity Template;
È infine possibile attivare un 'Passive Health Check' che verifica la connettività verso i connettori configurati. Un utilizzo di un connettore che provoca un errore di connettività comporta la sua esclusione dal pool dei connettori utilizzabili per un intervallo di tempo configurabile.
Nuova funzionalità di Consegna Condizionale
Per le erogazioni di API è possibile definire connettori diversi, selezionati dinamicamente al verificarsi di specifiche condizioni.
Il connettore da utilizzare può essere selezionato in base al nome o a un filtro associato al connettore stesso. Il nome o il valore del filtro può essere estratto dalla richiesta attraverso una delle seguenti modalità:
-
Header HTTP: nome di un header http;
-
Url di Invocazione: espressione regolare applicata sulla url di invocazione;
-
Parametro della Url: nome del parametro presente nella url di invocazione;
-
SOAPAction: individua una operazione SOAP;
-
Contenuto: espressione (xPath o jsonPath) utilizzata per estrarre un identificativo dal body della richiesta;
-
Client IP: indirizzo IP del client;
-
X-Forwared-For: header http appartenente alla classe di header 'Forwarded-For';
-
Template: l'identificativo di sessione è il risultato dell'istanziazione del template fornito rispetto ai dati della richiesta;
-
Freemarker Template: l'identificativo di sessione è ottenuto tramite il processamento di un Freemarker Template;
-
Velocity Template: l'identificativo di sessione è ottenuto tramite il processamento di un Velocity Template;
È infine possibile configurare l'erogazione per utilizzare uno specifico connettore di default nel caso la condizione non permetta di identificare alcun connettore all'interno del pool, o in alternativa per restituire un errore.
Miglioramenti alla Console di Monitoraggio
Sono stati apportati i seguenti miglioramenti:
-
Restyling grafico dello storico delle Transazioni: le informazioni sulle transazioni vengono riportate tramite una nuova veste grafica, con un approccio non più tabellare ma orientato all'ottimizzazione degli spazi e del posizionamento delle informazioni di interesse per l'operatore. È stata inoltre rivista anche la maschera di dettaglio di una transazione al fine di suddividere in maniera più razionale le numerose informazioni presenti.
-
Nuovi esiti associati alle Transazioni:
- Token non Presente: la richiesta non presenta un token;
- Autenticazione Token Fallita: nel token ricevuto non sono presenti dei claim configurati come obbligatori per l'accesso alla API;
- API non Individuata: la richiesta non indirizza una API registrata sul Gateway;
- Operazione non Individuata: la richiesta non indirizza un'operazione prevista sulla API invocata.
-
Nuovi criteri di ricerca delle Transazioni basate sugli esiti: sia le ricerche nello storico che le informazioni statistiche possono adesso essere ricercate per due nuovi raggruppamenti degli esiti:
- Errori di Consegna: in questo gruppo sono collezionate tutte le transazioni con esiti che individuano un errore generato dal backend applicativo (Fault Applicativi e/o codici di ritorno 4xx e 5xx) o un errore di connettività verso il backend.
- Richieste Scartate: in questo gruppo sono collezionate tutte le transazioni con esiti che riguardano richieste di erogazione o fruizione malformate (es. api non individuate, operazioni non individuate, errori di autenticazione ...)
Inoltre per gli altri criteri di ricerca è sempre possibile indicare se le richieste scartate devono essere prese in considerazione o meno; per default le richieste scartate non vengono considerate ai fini del risultato della ricerca.
-
Numero di Risultati: nello storico delle transazioni è adesso possibile indicare il numero di risultati della ricerca che si desidera ottenere (default: 25).
Java 11, A.S. e Librerie 3Parti
Dalla versione 3.3.0, GovWay introduce nuovi vincoli sulle versioni minime dei prodotti parte dello stack tecnologico utilizzato:
-
La versione 11 di Java, una release di tipo LTS (Long-Term Support).
-
Application Server: v18 per WildFly e v9 per Apache Tomcat.
Sono state inoltre aggiornate alle versioni più recenti tutte le librerie 3parti utilizzate.