[Showcase] Core Panzer v7.3 (Pizza Engine): Framework PWA nativo stateful ad alta resilienza (EUPL 1.2)

Salve a tutti,

​vorrei sottoporre all’attenzione e al confronto tecnico della community un framework architetturale che ho progettato e rilasciato interamente sotto licenza EUPL 1.2, sviluppato con l’obiettivo di superare i rigorosi capitolati d’ispezione AgID in materia di accessibilità, resilienza e riuso software (Art. 69 del CAD).

​Il progetto è disponibile su GitHub: PWA-Pizza-Engine

Nota metodologica: L’applicazione demo inclusa nel repository (incentrata sul settore della ristorazione/servizi essenziali) funge da mero Proof of Concept (PoC) operazionale. Il vero valore risiede nell’Engine Panzer v7.3, un motore software astratto, deterministico e riutilizzabile per qualsiasi applicativo della PA (es. moduli di segnalazione, interfacce di monitoraggio per la Protezione Civile, servizi al cittadino ad alta disponibilità) che debba operare in scenari di connettività degradata o assente.

:hammer_and_wrench: :classical_building: Scelte Architetturali e Filosofia di Sviluppo

Il framework adotta una filosofia ingegneristica 100% Vanilla JavaScript (Zero Framework, Zero Dipendenze, Zero Overhead). Questa scelta strategica azzera il debito tecnologico derivante dal ciclo di vita di librerie terze, riduce al minimo l’impronta computazionale e garantisce una reale inclusione digitale, permettendo l’esecuzione fluida anche su hardware datato o a basse prestazioni (in piena conformità con i requisiti del device-targeting inclusivo della PA).

:shield: Core Tecnico: Service Worker Stateful ad Alta Resilienza

Il cuore del sistema è un Service Worker operante con Scope Globale (sw.js nella Root) mediante la costante CONFIG.ROOT. Agendo come un gateway/proxy locale isolato nel browser secondo un paradigma Zero Trust, la struttura si sviluppa su un’Architettura di Instradamento a 5 Sezioni (Fetch Strict Layer) per isolare e gestire ogni singola fase del ciclo di vita dell’evento fetch:

Dynamic Adaptive Network Resiliency (assegnaFlussoPolimorfo): Un algoritmo proprietario esegue un’analisi euristica a runtime interrogando le API hardware navigator.connection (downlink e RTT). Il sistema calcola in tempo reale un punteggio di efficienza e commuta istantaneamente la strategia di erogazione e mappatura dei limiti estratti dal dizionario dei profili (CONFIG.networkResilient.profiles):

Ultrafast / Fast: Imposizione del paradigma Network-First (parallelismo a 12/8 richieste concorrenti, timeout di soglia a 15s/20s) per la massima freschezza degli asset.

Medium: Erogazione Network-First in caso di cache vacante, con commutazione automatica in logica SWR (Stale-While-Revalidate) in presenza di asset locali (parallelismo a 4 file, timeout a 45s).

Low / Verylow: Instradamento esclusivo in modalità SWR o Inibizione dello Smart Sync con erogazione vincolata alla stiva locale (parallelismo a 2/1 file, timeout a 90s/120s) per garantire la continuità operativa.

Network-First Predittivo contro il “Lie-Fi”: In caso di latenza critica rilevata o connettività apparente ma non responsiva, il sistema esegue l’abort atomico della richiesta server tramite un AbortController nativo. Rilascia istantaneamente la risorsa locale stivata in cache e attiva un ciclo di Hot Update asincrono (fino a un massimo di 5 tentativi di recupero) non appena viene rilevato il ripristino della stabilità di rete.

Binary Data Validation & Anti-Poisoning (Sezione II - isValidBlob): Prima della persistenza e del consolidamento dei dati all’interno dello storage locale, il gateway esegue una validazione strutturale profonda (SW Forensics) per sventare minacce di Cache Poisoning, captive portal o il salvataggio di asset corrotti. L’algoritmo esegue un controllo logico-dimensionale inserendo come sbarramento la mappa delle specifiche interne (CONFIG.minSizeMap) e analizza i primi byte binari (Magic Numbers, es. 52494646 per WebP, FFD8FF per JPEG) per verificare la reale identità e integrità del dato prima di elaborarlo, rifiutando file con estensioni falsificate.

Crittografia e Ottimizzazione I/O (Bunker Mode & Sicurezza Volatile in RAM): Gli asset critici e sensibili vengono protetti da una segregazione logica dello storage mediante cifratura simmetrica hardware-assisted AES-GCM a 256 bit nel perimetro protetto del Vault (Stiva :package::shield: [Bunker], mappata in CONFIG.cacheName).

Anti-Memory Inspection: La Master Key è un’istanza crittografica non esportabile (extractable: false) isolata nello stato di runtime del worker; il transito avviene via Structured Clone API su canale IPC postMessage protetto e, subito dopo l’uso, i buffer temporanei vengono sovrascritti forzatamente tramite Uint8Array.fill(0) per eliminare residui in chiaro dalla RAM. In lettura offline, il worker estrae l’ArrayBuffer, decifra al volo e inietta l’header custom X-PWA-Source: Bunker-Decrypted.

Stiva Ordinaria :package::unlocked: [Magazzino] (CONFIG.userCacheName): Destinata agli asset utente dinamici non sensibili. Per azzerare le scritture ridondanti su memoria flash, il sistema implementa una deduplicazione atomica confrontando gli header di marcatura temporale custom X-PWA-LastMod.

Graphic Resilience, Logica Distruttiva e Fallback (Sezione IV & V): Il motore implementa una logica di tolleranza ai guasti estrema sincronizzata via IPC con il frontend:

Canary Vault Check (deepVaultValidation): All’attivazione viene eseguito un test crittografico sul vettore statico binario (Canary Data in CONFIG.vaultCanaryText). Se l’operazione fallisce o le chiavi risultano manomesse, il sistema solleva il blocco ACTIVATION_ABORTED_SECURITY_BREACH ed esegue un Emergency Wipe (Tabula Rasa) cancellando istantaneamente tutte le cache.

Saturazione Storage: In caso di QuotaExceededError, si attiva la routine :police_car_light: SW: Storage Pieno! - Emergency Clean… che purga il magazzino volatile (CONFIG.userCacheName) per salvaguardare i file vitali nel Bunker.

Isolamento Protetto (VAULT_LOCKED_NO_KEY): In assenza dei requisiti minimi o delle chiavi in IndexedDB PWA_Vault, il sistema si isola in modalità protetta, garantendo la continuità operativa tramite la generazione dinamica di fallback UI strutturati via vettori SVG/DataURL integrati direttamente nel worker (interfaccia di cortesia controllata / Errore 503) o sostituendo i file multimediali mancanti con il fallback binario di CONFIG.fallbackImage

:italy: Obiettivo Riuso e Sviluppo Aperto

​Il repository è già predisposto con il file publiccode.yml validato secondo le specifiche AgID per facilitare l’onboarding automatico nel Catalogo del Riuso di Developers Italia qualora una Pubblica Amministrazione scelga di adottare l’architettura.

​Mi farebbe molto piacere ricevere feedback, review del codice e avviare un confronto tecnico con i maintainer della community e gli sviluppatori della PA. Il Core Panzer nasce per dimostrare che è possibile sviluppare software pubblico ad altissime prestazioni, sicuro ed ecologicamente sostenibile (Green ICT) rifiutando la complessità artificiale dei moderni layer di astrazione.

​Un saluto a tutti,

Valentino Aglianò

Perito Industriale Informatico / Istruttore Informatico (ASMEL 2025)