Questo documento elenca, per l'istanza corrente, le dipendenze software (DEV) e i servizi operativi (OPS) che compongono la piattaforma. Il formato utilizzato è CycloneDX 1.6, uno standard aperto OWASP che descrive in un unico documento sia le librerie di codice sia i servizi gestiti da fornitori terzi.
Librerie, container e pacchetti di sistema che formano l'applicazione. Informazione legata alla versione del codice, riproducibile da chiunque scarichi il sorgente.
| Nome | Tipo | Versione | Licenza |
|---|---|---|---|
| pa-webinar Immagine OCI dell'applicazione Next.js. Base: Debian 12 slim. | container | 0.3.44 | AGPL-3.0-only |
| jitsi/web | container | stable-9258 | Apache-2.0 |
| jitsi/prosody | container | stable-9258 | Apache-2.0 |
| jitsi/jicofo | container | stable-9258 | Apache-2.0 |
| jitsi/jvb Video Bridge. Digest catturato dinamicamente dai pod JVB quando scalano da zero. | container | stable-9258 | Apache-2.0 |
| coturn/coturn | container | — | BSD-3-Clause |
| bitnami/redis | container | 8.6.2 | RSALv2 |
| ingress-nginx/controller | container | v1.9.4 | Apache-2.0 |
| jetstack/cert-manager-controller | container | v1.13.3 | Apache-2.0 |
| debian Base image layer dell'applicazione Next.js. | operating-system | 12-slim | — |
| next | framework | 15.5.15 | MIT |
| react | library | 19.0.0 | MIT |
| next-intl | library | 4.0.0 | MIT |
| @prisma/client | library | 6.0.0 | Apache-2.0 |
| bootstrap-italia | library | 2.12.0 | BSD-3-Clause |
| design-react-kit | library | 5.1.0 | BSD-3-Clause |
| ioredis | library | 5.10.1 | MIT |
| Certificato TLS videocall-test.innovazione.gov.it X.509 rilasciato da Let's Encrypt via cert-manager (ACME HTTP-01). Chiavi RSA 2048 gestite in Secret Kubernetes videocall-test-tls. | cryptographic-asset | — | — |
| Chiave di firma JWT Jitsi Chiave simmetrica HS256 condivisa tra app Next.js e Prosody per autenticare i partecipanti verso Jitsi. Conservata nel Secret videocall-secrets (chiave JITSI_JWT_SECRET). Mai esposta al browser né al cittadino. | cryptographic-asset | — | — |
| Chiave di cifratura PII a riposo AES-256-GCM applicata prima della scrittura su PostgreSQL per campi nominativi ed email degli iscritti. La chiave PII_ENCRYPTION_KEY è gestita nel Secret Kubernetes, il database non la vede. | cryptographic-asset | — | — |
Servizi gestiti da terzi su cui questa istanza si appoggia. Informazione legata al tenant: cambia quando il gestore modifica la configurazione o il fornitore cloud.
Cluster AKS developers-italia-prod che ospita il namespace videocall-test. Nodepool di sistema + nodepool jitsi-jvb (scale-to-zero) + nodepool jitsi-jibri (scale-to-zero).
Database gestito (server developersitalia-prod, database videocall_test). Contiene dati applicativi: eventi, iscrizioni, consensi GDPR, template email, feedback. I campi nominativi sono cifrati AES-256-GCM lato applicazione prima della scrittura.
Storage account developersitaliarec, container 'recordings'. Conserva le registrazioni video Jibri.
SMTP relay per email transazionali: conferme iscrizione, link moderatore, reminder. Regione EU per mantenere i dati nell'Unione Europea.
Una vista sintetica dei quattro livelli che compongono la piattaforma: dall'accesso utente fino alla piattaforma di esecuzione.
Registry OCI da cui AKS pull-a l'immagine pa-webinar. Autenticazione tramite pull secret kubernetes ghcr-secret.
Repository sorgente italia/pa-webinar e pipeline GitHub Actions che produce le immagini :dev e :release e pubblica SBOM alla release. La catena di fornitura del software parte qui.
Ingress controller self-hosted nel cluster. Termina TLS, route verso i servizi interni.
Emissione e rinnovo automatico dei certificati TLS via Let's Encrypt (ACME HTTP-01).
Autorità di certificazione pubblica che firma i certificati TLS della piattaforma.
Single-pod standalone in-cluster usato come bus di messaggistica real-time per la chat. Stato canonico su PostgreSQL; Redis è un relay effimero. Password gestita come Secret Kubernetes.
Server STUN/TURN self-hosted su nodepool dedicato. Utilizzato dai partecipanti dietro NAT simmetrici per relay audio/video.
Telemetria di piattaforma: metriche applicative (/api/metrics), stato cluster, dashboard Grafana di monitoring. Dati aggregati, nessun PII.
[PIANIFICATO — non ancora operativo nel cluster; codice in infra/recorder/, core WebRTC e deploy da completare] Servizio in-cluster che cattura una traccia audio isolata per partecipante (RecordingTrack) e la fornisce al worker di trascrizione per attribuire il transcript al relatore corretto. Diverso dall'audio misto del recording standard: la traccia individuale e' un dato personale ad alta sensibilita' (vicino al biometrico vocale, art. 9 GDPR se usato per identificazione). Non clona ne' identifica la voce: produce solo testo attribuito. Vedi docs/adr/013-multitrack-speaker-attribution.md e docs/POSTPROD.md.
L'elenco completo di componenti e servizi, con versioni, hash e proprietà tecniche, è disponibile nelle sezioni precedenti e nel JSON scaricabile.