API#
Le API di Data Protection Manager possono essere interrogate tramite protocollo HTTP sfruttando gli URL associati alle diverse funzionalità o sezioni applicative. Affinché le API possano essere efficacemente interrogate da un utente, costui deve anzitutto autenticarsi con username e password: a seguito dell’autenticazione verrà restituito un token JWT, sì come infra illustrato.
Nota
In tutti gli endpoint quivi rappresentati, a titolo esemplificativo vengono sfruttati gli URL dell’istanza di demo: la stringa «https://demo.privacymanager.eu» deve essere opportunamente sostituita con l’indirizzo dell’istanza applicativa nell’ambito della quale si stanno interrogando le API.
Autenticazione#
Ai fini dell’ottenimento del token JWT è necessario eseguire una chiamata con metodo POST
all’URL di login, inviando come payload le credenziali di accesso.
POST
Request URL: https://demo.privacymanager.eu/api/auth/login
Payload: {username: "il_mio_username", password: "la_mia_password"}
In caso di successo, la risposta del server conterrà il token JWT.
{"token":".............."}
Il token restituito deve essere incluso in tutti gli header delle richieste.
Authorization: Bearer ".............."
Parametri#
La chiamata agli endpoint di Data Protection Manager può essere arricchita con diversi parametri al fine di raffinare la risposta che da essa origina.
Avvertimento
Interrogando un endpoint di Data Protection Manager che restituisce una lista di elementi, tale lista sarà sempre completa ed includerà gli elementi attivi e ordinati per id decrescente.
Qui i parametri salienti, validi per qualsiasi chiamata.
start=N
= consente di indicare la posizione da cui far cominciare la lista di elementi presenti nella risposta;limit=N
= consente di indicare la «quantità massima» di elementi da includere nella lista di elementi presenti nella risposta;limit=0
= prevede la prospettazione della totalità degli elementi all’interno della lista restituita;trashed=0
= prevede la prospettazione soltanto degli elementi attivi nella lista di quelli presenti nella risposta;trashed=1
= prevede la prospettazione anchedegli elementi disattivati nella lista di quelli presenti nella risposta;sortDirection=asc.
= dispone gli elementi in base all’ordine crescente, sulla scorta del parametro sfruttato;sortDirection=desc.
= dispone gli elementi in base all’ordine decrescente, sulla scorta del parametro sfruttato.
Si facciano degli esempi e delle precisazioni, prendendo come riferimento l’endpoint dedicato al registro dei trattamenti, /api/processing-activities. :
Interrogando https://demo.privacymanager.eu/api/processing-activities?start=0&limit=1 viene restituita la lista di trattamenti che occupano la prima posizione (il primo trattamento della lista) nella lista dei medesimi che verrebbe restituita in assenza dei parametri start e limit;
Start e limit non corrispondono di per sé all’identificativo univoco (id) dei trattamenti ma, rispettivamente, al punto di partenza nella lista da cui estrarre i trattamenti e la «quantità massima» di trattamenti da estrarre. Se si dispone di una lista di dieci trattamenti attivi, esemplificando, chiamando https://demo.privacymanager.eu/api/processing-activities?start=3&limit=8 mi verrà restituita una lista di trattamenti che comincia dal quarto e che contiene al massimo otto elementi (detto altrimenti la suddetta lista includerà il quarto, il quinto, il sesto, il settimo, l’ottavo, il nono ed il decimo trattamento);
Si parla di «posizione nella lista» perché non necessariamente il posizionamento nella lista medesima corrisponde all’identificativo del trattamento: nell’esempio di prima si sarebbe potuto avere trattamenti con id 12, 13, 21, 22, 40, 41, 42, 43, 44, 45 e il json sarebbe stato comunque non vuoto.
Si parla di «quantità massima» perché se limit supera la quantità di elementi disponibili, il json includerà tutti gli elementi disponibili.
Registro delle attività di trattamento#
GET
request URL: https://demo.privacymanager.eu/api/processing-activities
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutte le attività di trattamento attive presenti nel registro.
POST
request URL: https://demo.privacymanager.eu/api/processing-activities/controller-record-of-pa/odt
Consente l’esportazione del registro del titolare in formato .docx
POST
Request URL: https://demo.privacymanager.eu/api/processing-activities/controller-record-of-pa/pdf
Consente l’esportazione del registro del titolare in formato .pdf
Valutazioni d’impatto#
GET
Request URL: https://demo.privacymanager.eu/api/dpia?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutte le valutazioni d’impatto attive.
POST
Request URL: https://demo.privacymanager.eu/api/dpia/dpia-report/pdf
Consente la generazione del report di una valutazione d’impatto, in formato .pdf utilizzando il template di default.
POST
Request URL: https://demo.privacymanager.eu/api/dpia/dpia-report/odt
Consente la generazione del report di una valutazione d’impatto, in formato .docx utilizzando il template di default.
Per queste due ultime richieste, è necessario inserire nel payload della richiesta l’id della valutazione d’impatto dpia_id:
Applicativi#
GET
Request URL: https://demo.privacymanager.eu/api/applications?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti gli applicativi attivi.
POST
Request URL: https://demo.privacymanager.eu/api/applications
Consente la creazione di un nuovo applicativo. È possibile inserire nel payload, come sotto indicato, il nome dell’applicativo, la descrizione, l’id del fornitore.
Payload: {name: "", description: "", third_parties: []}
Utenti#
GET
Request URL: https://demo.privacymanager.eu/api/users?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti gli utenti attivi.
POST
Request URL: https://demo.privacymanager.eu/api/users
Consente la creazione di un nuovo utente (i campi obbligatori sono contrassegnati contrassegnati con X):
Payload: {" binding_field: "" created_at: "" email: "" end_date: ""
firstname: "X" fiscal_code: "" id: null lastname: "X" password: "" user_number: "" username: "X"}
Interfaccia ACCORDI#
GET
Request URL: https://demo.privacymanager.eu/api/users/directors
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti i designati attivi.
GET
Request URL: https://demo.privacymanager.eu/api/third-parties/external-processors
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti i responsabili del trattamento attivi.
GET
Request URL: https://demo.privacymanager.eu/api/users/sys-admins
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti gli amministratori di sistema attivi.
Documenti#
GET
Request URL: https://demo.privacymanager.eu/api/documents
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti i documenti.
Può essere chiamato l’endpoint qui sotto riportato, sostituendo [ID] con l’id del documento, al fine di scaricare un documento preciso.
Violazioni di dati, richieste degli interessati, informative#
GET
Request URL: https://demo.privacymanager.eu/api/data-breach?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutti gli eventi di violazione.
GET
Request URL: https://demo.privacymanager.eu/api/data-subject-requests?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutte le richieste degli interessati.
GET
Request URL: https://demo.privacymanager.eu/api/privacy-policies?limit=0
Restituisce un JSON contenente le informazioni (nonché le relazioni) relative a tutte le informative.