GEMODO DEV - API GEBAN

Documentazione e test manuale delle API catalogo, contratto dati e validazione payload.

SSO richiesto

Accesso SSO CNR richiesto

Questa pagina DEV mostra documentazione e link operativi solo dopo login SSO tramite client pubblico gemodo-frontend. Il token resta nel browser per la sessione corrente.

Sessione

Utente autenticato.

Documentazione

Swagger catalogo GEBAN Console interattiva del contratto OpenAPI versionato. Usa Authorize per login SSO con gemodo-frontend.
ReDoc catalogo GEBAN Stesso contratto di Swagger, ma impaginato come documentazione leggibile per integratori.
OpenAPI YAML Sorgente tecnica del contratto API, utile per client automatici e import in Postman.
Swagger runtime FastAPI Schema generato dal backend in esecuzione. Serve a confrontare runtime e contratto versionato.

Documentazione integrazione GEMODO ↔ GEBAN

Questo non e' un'API GEMODO: descrive l'endpoint di discovery che il team GEBAN deve implementare ed esporre, cosi' che GEMODO possa scoprire tipologie/profili/campi senza che GEMODO ne mantenga una copia locale come sorgente di verita'.

Swagger contratto discovery Schema e esempio reale (BANDO_CONCORSO) della risposta attesa dall'endpoint che GEBAN implementa.
ReDoc contratto discovery Stesso contratto, impaginato per consegna al team di sviluppo GEBAN.
OpenAPI YAML Sorgente tecnica del contratto atteso, da usare come riferimento di implementazione.

Autenticazione Swagger

Swagger usa login SSO con client pubblico gemodo-frontend. Per chiamare le API, il token dell'utente deve avere audience gemodo-backend e ruoli client su gemodo-backend.
1. Apri Swagger Vai su /docs/geban-catalog.
2. Premi Authorize Seleziona OAuth2/SSO e completa il login CNR.
3. Esegui le chiamate Modelli GEMODO pubblicati, contratti delle versioni e validazione.

Configurazione Keycloak richiesta: redirect URI del client gemodo-frontend verso https://dev-gemodo.concorsi.cnr.it/*, web origin dello stesso dominio, audience mapper verso gemodo-backend, e ruoli DOCUMENTI_VIEWER/DOCUMENTI_GENERATORE assegnati all'utente sul client gemodo-backend.

Come si autentica GEBAN per davvero (non il login di questa pagina)

Il login SSO sopra serve solo a un umano che prova l'API da Swagger. L'integrazione reale GEBAN → GEMODO usa un token emesso da ACE (stesso realm Keycloak cnr), non il login di questa pagina.

Il client tecnico geban-backend (client credentials, ruoli diretti su gemodo-backend, con audience) resta un doppio di test/CI. Il flusso reale usa un client ACE ammesso (es. geri-angular-public): il token non contiene aud (ACE non lo valorizza) e porta solo il claim contexts, con il ruolo GEBAN dentro contexts.geban.roles — l'utente puo' avere anche altri contesti per altri applicativi ACE nello stesso token, GEMODO considera solo quelli che conosce. GEMODO non usa quei ruoli direttamente: li traduce in permessi propri tramite una mappa configurata (infra/local/integration-profiles.local.yaml).
{
  "iss": "https://sso.test.si.cnr.it/auth/realms/cnr",
  "azp": "geri-angular-public",
  "contexts": {
    "geri": { "roles": ["ROLE_ADMIN#geri"] },
    "geban": { "roles": ["ROLE_COORDINATOR#geban"] }
  }
}
Ruolo ACE (contexts.geban.roles)Permesso GEMODO derivato
ROLE_GESTORE#gebanDOCUMENTI_GENERATORE, DOCUMENTI_VIEWER
ROLE_MANAGER#gebanDOCUMENTI_GENERATORE, DOCUMENTI_VIEWER, GEMODO_MODELLI_GESTORE
ROLE_COORDINATOR#gebanDOCUMENTI_GENERATORE, DOCUMENTI_VIEWER
ROLE_USER#gebanDOCUMENTI_GENERATORE, DOCUMENTI_VIEWER

Riferimento completo: specs/006-sicurezza-autorizzazioni-audit/keycloak-jwt.md (decisioni SEC-006-001/SEC-006-003).

API disponibili ora

GET
/api/v1/builder/tipi-documento/{codice}/struttura-disponibile
GEMODO_MODELLI_GESTORE
GET
/api/v1/catalogo/modelli?tipo_documento=BANDO_CONCORSO&codice_tipologia=TD&profilo=COLLABORATORE_TECNICO_ER
DOCUMENTI_VIEWER
GET
/api/v1/catalogo/modelli/{id}/campi-richiesti
Restituisce il contratto dati del modello selezionato.
DOCUMENTI_VIEWER
POST
/api/v1/documenti/valida
Valida il payload GEBAN prima della generazione documentale.
DOCUMENTI_GENERATORE
POST
/api/v1/documenti/genera
Simula la generazione: valida i dati e restituisce un OK con placeholder del futuro link PDF.
DOCUMENTI_GENERATORE

Nota PDF

La generazione PDF reale non è ancora implementata nel backend attuale. L'endpoint /api/v1/documenti/genera è uno stub di collaudo: controlla token e dati, poi risponde con il testo che indica dove sarà restituito il link di download.