Rules Service è parte della suite di servizi per la verifica delle informazioni sulla Trasparenza dei siti web delle Pubbliche amministrazioni italiane. Definisce e 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
Il servizio è dotato del plugin jib che permette di effettuare la build 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
É possibile visualizzare l'albero delle regole in formato json da: http://localhost:8080/v1/rules
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
}