Il modello di prodotto
Questa sezione descrive le entità e i concetti su cui è costruito GovCat. I capitoli successivi del manuale approfondiscono ciascuna di queste entità dal punto di vista operativo (creazione, gestione, workflow).
Entità principali
Entità |
Cos'è |
|---|---|
Organizzazione |
L'ente giuridico/anagrafico (PA o fornitore). È il contenitore di soggetti e utenti. Porta i flag referente / aderente / intermediata che ne definiscono il ruolo nel catalogo (si veda Struttura e gestione delle organizzazioni). |
Soggetto |
L'attore applicativo così come è registrato su GovWay (ha nome gateway, tipo gateway, URL di invocazione). È l'oggetto che il gateway riconosce come erogatore/fruitore. Appartiene a un'organizzazione. |
Dominio |
Raggruppamento organizzativo e di governo dei servizi. Ha una visibilità (pubblico/privato/riservato/componente) e un soggetto referente. |
Servizio |
L'unità pubblicata a catalogo (nome + versione), di tipo API o GENERICO. Porta stato (workflow), visibilità, immagine, tag, categorie e allegati. Può essere un package che aggrega componenti. |
API |
La specifica tecnica dell'interfaccia (OpenAPI/Swagger/WSDL), con configurazioni distinte per collaudo e produzione. Un servizio di tipo API espone una o più API. |
Adesione |
La relazione di fruizione con cui un soggetto aderente richiede e ottiene l'uso di un servizio. Porta il proprio workflow di autorizzazione e la configurazione tecnica. |
Client |
L'applicativo client (con tipo di autenticazione, ambiente, indirizzo IP) di proprietà di un soggetto, utilizzato nelle adesioni. |
Utente |
La persona/account, con stato e ruolo globale di piattaforma. Si associa a una o più organizzazioni con un ruolo per-organizzazione (si veda Struttura dei ruoli). |
Gruppo |
Nodo gerarchico (ad albero) per organizzare i servizi a catalogo. |
Categoria / Tassonomia |
Voci gerarchiche di uno schema di classificazione applicabile ai servizi. |
Classe utente |
Insieme di utenti usato per la visibilità/autorizzazione riservata su domini e servizi. |
Notifica / Messaggio |
Comunicazioni legate a un servizio o a un'adesione (cambi di stato, comunicazioni libere), anche via email. |
Allegato / Documento |
Contenuti binari (immagini, specifiche, documentazione) collegati a servizi e API. |
Relazioni tra le entità
erDiagram
ORGANIZZAZIONE ||--o{ SOGGETTO : "possiede"
ORGANIZZAZIONE ||--o{ ASSOCIAZIONE : "associa"
UTENTE ||--o{ ASSOCIAZIONE : "ha ruolo org."
SOGGETTO ||--o{ DOMINIO : "referente di"
DOMINIO ||--o{ SERVIZIO : "contiene"
SOGGETTO ||--o{ SERVIZIO : "eroga"
SERVIZIO }o--o{ API : "espone"
SERVIZIO ||--o{ ADESIONE : "riceve"
SOGGETTO ||--o{ ADESIONE : "aderisce con"
ADESIONE ||--o{ USO_CLIENT : "usa"
CLIENT ||--o{ USO_CLIENT : ""
SOGGETTO ||--o{ CLIENT : "possiede"
GRUPPO }o--o{ SERVIZIO : "cataloga"
CATEGORIA }o--o{ SERVIZIO : "classifica"
Organizzazione -> Soggetto (1:N), un'organizzazione possiede uno o più soggetti GovWay, con un soggetto di default.
Soggetto -> Dominio (1:N), il referente di un dominio è un soggetto. I referenti persona del dominio sono invece utenti (con distinzione referente / referente tecnico).
Dominio -> Servizio (1:N), un dominio contiene i servizi che ne condividono governance e visibilità.
Servizio <-> API (N:M), un servizio di tipo API espone una o più specifiche tecniche.
Servizio -> Adesione (1:N), un servizio riceve adesioni (il servizio decide se sono ammesse e se multiple).
Adesione -> Client (1:N tramite associazione), un'adesione usa uno o più client, ciascuno legato a un ambiente e a un profilo; un client può partecipare a più adesioni.
Utente <-> Organizzazione (N:M con ruolo), l'associazione porta il ruolo per-organizzazione (amministratore organizzazione / operatore API).
Gruppo/Categoria <-> Servizio (N:M), schemi gerarchici di catalogazione e classificazione.
Concetti trasversali: ambienti, stati, visibilità
- Ambienti
Tutto il ciclo tecnico distingue Collaudo e Produzione. Le API hanno configurazioni separate per ambiente, i client e le adesioni sono per ambiente, e un flag skip collaudo consente di saltare la fase di test dove previsto.
- Stati e workflow
Lo stato di Servizio e Adesione è una macchina a stati pilotata da configurazione esterna (non un enum cablato nel codice). Gli stati e le transizioni sono definiti in configurazione, e la cronologia dei cambi (stato, data, utente, commento) è tracciata a parte. L'adesione ha inoltre uno stato di configurazione tecnica distinto dal workflow funzionale (esito della propagazione verso GovWay: OK / KO / in coda / retry / fallita).
- Visibilità
Domini e servizi condividono i livelli Pubblico, Privato, Riservato, Componente. La visibilità riservata si combina con le classi utente per limitare l'accesso.
- Notifiche
I cambi di stato e le comunicazioni generano notifiche verso gli utenti coinvolti (in-app ed email), con mittente/destinatario.