3.6. Rule Service

Rule Service è il componente che definisce ed implementa le regole relative al D.Lgs. n. 33-2013 sulla trasparenza nella PA.

Fornisce l’albero delle regole definito in application.yaml oppure all’interno del Config Service , che quindi può essere modificato o ampliato sia attraverso variabili di ambiente o della JVM prima di avviare il servizio, oppure aggiornando la configurazione per poi successivamente invocare l’endpoint dell’actuator per recepire le modifiche.

É possibile interagire con il servizio attraverso degli endpoint REST che permettono la consultazione dell’albero delle regole in formato json, e la verifica di una o più regole su un contenuto html

3.6.1. Docker

Il servizio è dotato del plugin jib che permette di effettuare la build tramite gradle e fornisce l’immagine per l’esecuzione tramite docker

./gradlew jibDockerBuild
docker run -p 8080:8080 -ti rule-service:{version}

La documentazione relativa ai servizi REST è consultabile qui ed è possibile interagire con i servizi attraverso Swagger alla seguente URL, inoltre è possibile visualizzare l’albero delle regole in formato json

Oppure verificare la regola root ad esempio attraverso una cURL con un html di esempio:

curl -X POST http://localhost:8080/v1/rules -H 'Content-type:application/json' --data 'PGh0bWw+CiAgICA8aGVhZD4KICAgICAgICA8dGl0bGU+R2VuZXJpY2EgQW1taW5pc3RyYXppb25lPC90aXRsZT4KICAgIDwvaGVhZD4KICAgIDxib2R5PgogICAgICAgIDxwPlBhcnNlZCBIVE1MIGludG8gYSBkb2MuPC9wPgogICAgICAgIDxhIGhyZWY9Ii9hbW1pbmlzdHJhemlvbmUiPkFtbWluaXN0cmF6aW9uZSBUcmFzcGFyZW50ZTwvYT4KICAgICAgICA8YSBocmVmPSIvcHJvZ3JhbW1hdHJhc3BhcmVuemEiPlByb2dyYW1tYSBwZXIgbGEgVHJhc3BhcmVuemE8L2E+CiAgICA8L2JvZHk+CjwvaHRtbD4='| jq .

In alternativa scaricare il contenuto del Sito istituzionale di una Pubblica Amministrazione

curl "https://www.anticorruzione.it"|base64 > base64.html
curl -X POST http://localhost:8080/v1/rules -H 'Content-type:application/json' --data @base64.html |jq .

La risposta json del servizio:

{
    "url": "https://www.anticorruzione.it/amministrazione-trasparente",
    "ruleName": "amministrazione-trasparente",
    "term": "Amministrazione Trasparente",
    "content": "Amministrazione Trasparente",
    "where": "text",
    "leaf": false,
    "status": 200,
    "score": 4.3884144
}