## Architettura del Sistema

v1.0

### 1 Panoramica

NIS2 Agile e' una piattaforma di gestione della conformita' progettata per la Direttiva NIS2 dell'Unione Europea (2022/2555). La piattaforma guida le organizzazioni italiane attraverso tutti i requisiti normativi, fornendo strumenti strutturati per la valutazione del rischio, la gestione degli incidenti, la generazione di policy e il monitoraggio della conformita'.

L'applicazione e' costruita specificamente per le organizzazioni italiane classificate come Soggetti Essenziali e Soggetti Importanti ai sensi della direttiva, con supporto completo per i requisiti degli Articoli 20-25.

L'architettura adotta un modello multi-tenant SaaS con controllo degli accessi basato sui ruoli (RBAC), consentendo a piu' organizzazioni di operare in modo sicuro e isolato sulla stessa istanza della piattaforma.

### 2 Stack Tecnologico

FE

#### Frontend

HTML5, CSS3 (Custom Design System), Vanilla JavaScript (no framework)

BE

#### Backend

PHP 8.4 (vanilla, no framework), Front Controller pattern

DB

#### Database

MySQL 8.0 con PDO (prepared statements)

WS

#### Web Server

Nginx 1.27 Alpine + PHP-FPM 8.4

DC

#### Containerizzazione

Docker Compose (multi-container orchestration)

AI

#### Intelligenza Artificiale

Claude API (Anthropic) per generazione policy e analisi

JW

#### Autenticazione

JWT HS256 (access token 2h + refresh token 7d)

### 3 Architettura dell'Applicazione

Client Browser
HTML/CSS/JS
Nginx
Reverse Proxy
PHP-FPM
Front Controller
Controllers
Business Logic
MySQL 8.0
Database

#### Flusso di Routing

index.php
→
Router
→
Controller
→
Service
→
JSON Response

### 4 Struttura del Progetto

nis2-agile/ ├── application/ │ ├── controllers/ # Controller PHP (BaseController, Auth, Assessment, etc.) │ ├── services/ # Servizi business logic (VisuraService, AI) │ ├── models/ # Modelli dati │ └── config/ # Configurazione e Database class ├── public/ # Web root (document root Nginx) │ ├── index.php # Front Controller + Router │ ├── css/ # Foglio di stile principale │ ├── js/ # API client, Common utilities, i18n, Help │ └── *.html # Pagine frontend (SPA-like) ├── docker/ # Docker Compose, Dockerfile, Nginx config └── docs/ ├── sql/ # Migrazioni database (001-004) └── questionnaire/ # Questionario NIS2 (JSON)

### 5 Modello Dati

##### users

Utenti piattaforma

↔

##### user_organizations

Associazione N:M

↔

##### organizations

Organizzazioni tenant

assessments
assessment_answers
risks
incidents
policies
suppliers
training_courses
assets
compliance_controls
non_conformities
capa_actions
Multi-tenancy: Tutte le tabelle operative contengono la chiave esterna `organization_id` che garantisce l'isolamento completo dei dati tra le diverse organizzazioni all'interno della stessa istanza.

### 6 Sicurezza

#### Autenticazione JWT

Token di accesso HS256 (2h) con refresh token (7d) per sessioni sicure e scalabili.

#### Configurazione CORS

Header CORS configurati per controllare le origini autorizzate delle richieste cross-origin.

#### SQL Injection Prevention

Validazione input e prevenzione SQL injection tramite prepared statements PDO su tutte le query.

#### Prevenzione XSS

Escape sistematico di tutti gli output HTML tramite funzione `escapeHtml()` lato client.

#### RBAC (Role-Based Access Control)

Sei ruoli con permessi granulari per il controllo degli accessi alle risorse.

super_admin org_admin compliance_manager board_member auditor employee

#### Audit Logging

Registrazione completa di tutte le operazioni sensibili con tracciamento utente, azione e timestamp.

### 7 Moduli Funzionali

Art. 21 - Direttiva NIS2

#### Gap Analysis

Assessment di conformita' NIS2 su 10 categorie con punteggio automatico e analisi AI delle lacune.

Art. 21.2.a

#### Gestione Rischi

Matrice del rischio, piani di trattamento, monitoraggio continuo e classificazione per impatto e probabilita'.

Art. 23

#### Gestione Incidenti

Timeline di notifica NIS2 completa: pre-allarme 24h, notifica 72h, relazione finale 30 giorni.

Art. 21

#### Policy Management

Generazione assistita da AI di policy di sicurezza con workflow di approvazione e versionamento.

Art. 21.2.d

#### Supply Chain

Valutazione del rischio dei fornitori, monitoraggio della catena di approvvigionamento e classificazione.

Art. 20.2

#### Formazione

Tracciamento della formazione obbligatoria per il management, corsi, completamento e scadenze.

Art. 21.2.i

#### Asset Management

Inventario degli asset IT/OT, mappatura delle dipendenze e classificazione per criticita'.

NCR / CAPA

#### Non Conformita' e Azioni Correttive

Tracciamento delle non conformita' con azioni correttive e preventive strutturate.

Compliance

#### Audit e Report

Generazione di evidenze di conformita', report per l'autorita' competente e dashboard di monitoraggio.

### 8 Integrazione Esterna

SG

#### SistemiG.agile

Predisposizione per la sincronizzazione delle non conformita' (NCR) tramite webhook e API REST. Permette l'integrazione bidirezionale con il sistema di gestione qualita' SistemiG.agile per una governance unificata.

VC

#### Visura Camerale

Analisi automatizzata delle visure camerali tramite upload PDF. Estrazione intelligente dei dati aziendali (ragione sociale, codice ATECO, sede, organi di amministrazione) mediante AI per la classificazione NIS2 dell'organizzazione.

AI

#### Claude AI (Anthropic)

Integrazione con l'API Claude di Anthropic per la generazione automatica di policy di sicurezza personalizzate, l'analisi dei gap di conformita' e raccomandazioni contestuali basate sul profilo dell'organizzazione.

### 9 Deploy

#### Docker Compose

Orchestrazione con 3 container: app (PHP-FPM), web (Nginx), db (MySQL).

#### Produzione

Hosting su Hetzner Cloud con infrastruttura europea per conformita' GDPR.

#### Git Deployment

Deploy basato su Git tramite Gitea con workflow di build e rilascio.