Result Service è parte della suite di servizi per la verifica delle informazioni sulla Trasparenza dei siti web delle Pubbliche amministrazioni italiane.
Result Service è il componente che si occupa di gestire i risultati delle verifiche sulla corrispondenza dei siti degli enti pubblici italiani in relazione al decreto legge 33/2013 sulla transparenza.
Result Service fornisce alcuni servizi REST utilizzabili in produzione per:
- inserire, aggiornare e cancellare all'interno del servizio le informazioni di una verifica effettuata su un sito web di una PA
- visualizzare i dati di una verifica su un sito web
- mostrare la lista delle verifiche effettuate
- esportare in CSV i risultati delle validazioni presenti
- inserire, aggiornare, cancellare e consultare le informazioni sulle ATMap (la mappa dei link
della sezione "Amministrazione Trasparente" pubblicata dagli enti secondo gli schemi ANAC)
individuate nel corso delle scansioni, compreso il contenuto del file prelevato. Le ATMap
sono associate alle PA tramite i soli campi
idIpaecodiceIpa
Il Result Service si occupa anche di cancellare dal Minio i sorgenti HTML e gli Screenshot associati
ai risultati di validazione ogni qual volta i risultati di validazione vengono cancellati.
Per questo motivo è necessario fornire al servizio, tramite la propria configurazione, anche le
variabili d'accesso al Minio.
I servizi REST sono documentati tramite OpenAPI consultabile all'indirizzo /swagger-ui/index.html.
Gli endpoint REST di questo servizio sono protetti tramite autenticazione OAuth con Bearer Token. E' necessario configurare l'idp da utilizzare per validare i token OAuth tramite le due proprietà mostrare nell'esempio seguente:
- spring.security.oauth2.resourceserver.jwt.issuer-uri=https://dica33.ba.cnr.it/keycloak/realms/trasparenzai
- spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://dica33.ba.cnr.it/keycloak/realms/trasparenzai/protocol/openid-connect/certs
Per l'accesso in HTTP GET all'API è sufficiente essere autenticati, per gli endpoint accessibili con PUT/POST/DELETE è necessario oltre che essere autenticati che il token OAuth contenga un role ADMIN o SUPERUSER.
Il result-service può essere facilmente installato via docker compose su server Linux utilizzando il file docker-compose.yml presente in questo repository.
Accertati di aver installato docker e il plugin di docker compose dove vuoi installare il result-service e in seguito
esegui il comando successivo per un setup di esempio.
curl -fsSL https://raw.githubusercontent.com/trasparenzai/result-service/main/first-setup.sh -o first-setup.sh && sh first-setup.sh
Configurare nel file .env l'url e le credenziali per l'accesso al Minio, tramite le variabili d'ambiente
MINIO_URL, MINIO_ACCESS_KEY, MINIO_ACCESS_PASSWORD.
Collegarsi a http://localhost:8080/swagger-ui/index.html per visualizzare la documentazione degli endpoint REST presenti nel servizio.
Il servizio mantiene le informazioni relative alla configurazione nel db postgres, quindi è opportuno fare il backup del database a scadenza regolare. Nel repository è presente un file di esempio backups.sh per effettuare i backup.
All'interno dello script backups.sh è necessario impostare il corretto path dove si trova il docker-compose.yml del progetto, tramite la
variabile SERVICE_DIR.
E' possibile contribuire a questo progetto utilizzando le modalità standard della comunità opensource (issue + pull request) e siamo grati alla comunità per ogni contribuito a correggere bug e miglioramenti.
Transparency Results Service è concesso in licenza GNU AFFERO GENERAL PUBLIC LICENSE, come si trova nel file LICENSE.
