Skip to content

5 Collaudo DevTools

Valentino Aglianรณ edited this page May 26, 2026 · 28 revisions

๐Ÿ”ฅ Capitolo 4: La Prova del Battesimo di Fuoco (Debug & Log)

Il collaudo e la manutenzione del motore Panzer v7 all'interno delle infrastrutture della Pubblica Amministrazione richiedono un monitoraggio rigoroso tramite la console dei moduli di sviluppo del browser (F12 / DevTools) applicando un approccio Zero Trust.


๐Ÿ“Š Tassonomia dei Log di Logistica e Storage

Durante le sessioni di ispezione attiva, l'operatore tecnico deve fare riferimento alla seguente mappatura semantica delle stringhe generate nativamente dal Service Worker nei log di console:

๐Ÿ”นLog
Log del Sistema in Console Livello Significato Operativo e Innesco Codice
๐ŸŸข SW: Fetching from Network -> SUCCESS La rete risponde entro i timeout del profilo attivo. Rilascio immediato al frontend.
โš™๏ธ SW: Background Caching Execution... ASYNC Esecuzione asincrona di isValidBlob e cifratura senza bloccare il thread dell'utente.
๐Ÿ“ฆ๐Ÿ›ก๏ธ [Bunker-Decrypted] Serviced: OFFLINE Subentro del Bunker. Risorsa core estratta, decifrata in AES-GCM 256-bit e servita.
๐Ÿšจ SW: Storage Pieno! Emergency Clean... WARNING Scattato QuotaExceededError. Pulizia automatica del Magazzino volatile.
โš ๏ธ SW: ErrorPage B64 Not Blob... ERROR Eccezione o fallimento logico nella gestione dei flussi binari o dei fallback del database.
ACTIVATION_ABORTED_SECURITY_BREACH CRITICAL Fallimento del Canary Check sul vettore statico. Wipe totale dell'IndexedDB PWA_Vault.

๐Ÿ“Š Mappa Visiva dei Log di Console

graph LR
    subgraph DevTools ["Ispezione Console F12"]
        L1["๐ŸŸข SW: Fetching from Network"]
        L2["โš™๏ธ SW: Background Caching"]
        L3["๐Ÿ“ฆ๐Ÿ›ก๏ธ  Bunker-Decrypted  Serviced"]
        L4["๐Ÿšจ SW: Storage Pieno!"]
        L5["โš ๏ธ SW: ErrorPage B64 Not Blob"]
    end

    subgraph Provenienza ["Infrastruttura Client / Server"]
        Server["โ˜๏ธ Server Remoto"]
        Cache["๐Ÿ’พ Cache Locale"]
        Bunker["๐Ÿ“ฆ๐Ÿ›ก๏ธ CONFIG.cacheName"]
        Quota["๐Ÿšจ QuotaExceededError"]
        B64["โš ๏ธ Base64 Conversione"]
    end

    L1 --> Server
    L2 --> Cache
    L3 --> Bunker
    L4 --> Quota
    L5 --> B64

    style L1 fill:#e2f0d9,stroke:#385723,color:#000
    style L3 fill:#fff2cc,stroke:#d6b656,color:#000
    style L4 fill:#fce4d6,stroke:#c00000,color:#000
    style L5 fill:#fff2cc,stroke:#b25900,color:#000
Loading

๐Ÿ“ฆ Identificazione dei Magazzini di Memoria

๐Ÿ”น`๐Ÿ“ฆ๐Ÿ›ก๏ธ (Bunker)` (mappato in `CONFIG.cacheName`)
Indica operazioni di lettura, scrittura o ripristino di un asset di sistema core. Questa zona รจ protetta da cifratura hardware-assisted AES-GCM, isolata e vitale per il funzionamento offline. Il frontend riceve queste risorse marchiate dall'header personalizzato `X-PWA-Source: Bunker-Decrypted`.
๐Ÿ”น`๐Ÿ“ฆ๐Ÿ”“ (Magazzino)` (mappato in `CONFIG.userCacheName`)
Indica la gestione delle risorse utente sussidiarie. รˆ un'area di storage dinamica, volatile, non cifrata e sacrificabile in caso di emergenza, vincolata al ciclo di vita di `CONFIG.userCacheTTL`.

๐Ÿšจ Gestione delle Emergenze e Stati Critici

In presenza di anomalie hardware sul client o di degrado severo dei canali di comunicazione, la console registrerร  i seguenti comportamenti automatici di sicurezza:

๐Ÿ”น`๐Ÿšจ SW: Storage Pieno! Emergency Clean...`
Causa: Il dispositivo client ha esaurito lo spazio disco allocato dal browser per l'applicazione (`QuotaExceededError`).
๐Ÿ”นAzione del software:
Il Service Worker avvia immediatamente una purga selettiva del magazzino volatile `CONFIG.userCacheName` (cache utente), preservando l'integritร  assoluta dei file ospitati nel bunker `CONFIG.cacheName`.
๐Ÿ”น`ACTIVATION_ABORTED_SECURITY_BREACH` o Eccezione Critica del Vault
Causa: Rilevata corruzione irreversibile, alterazione strutturale, fallimento del test sul vettore di controllo binario (Canary Data "KANARY") o totale assenza delle chiavi logiche del Vault all'interno di IndexedDB (`PWA_Vault`).
๐Ÿ”นAzione del software (Wipe, Messaggistica & Refresh):
Il Service Worker attiva un protocollo distruttivo-rigenerativo immediato (Factory Reset). Esegue un wipe totale cancellando istantaneamente tutte le cache attive legate a `CONFIG.cacheName` e `CONFIG.userCacheName`, rasa al suolo l'IndexedDB e invia una notifica broadcast via `postMessage` a tutte le finestre aperte del frontend. L'interfaccia intercetta il segnale e forza un ricaricamento immediato della pagina (`window.location.reload()`).
sequenceDiagram
    autonumber
    participant DB as ๐Ÿ—„๏ธ IndexedDB (PWA_Vault)
    participant SW as โš™๏ธ Service Worker (sw.js)
    participant CA as ๐Ÿ’พ Caches (Bunker/Magazzino)
    participant FE as ๐Ÿ–ฅ๏ธ Frontend (Finestre Aperte)

    Note over SW: Rilevato Errore Critico o Fallimento Canary Check
    SW->>DB: Wipe Totale (Tabula Rasa)
    SW->>CA: Cancellazione di CONFIG.cacheName & CONFIG.userCacheName
    SW->>FE: broadcastMessage ('ACTIVATION_ABORTED_SECURITY_BREACH')
    Note over FE: Intercettazione segnale postMessage
    FE->>FE: Esecuzione window.location.reload()
    Note over FE: Il browser riparte da zero come prima installazione pulita
Loading
๐Ÿ”นEffetto Nuova Installazione:
Il browser si ritrova davanti a una tabula rasa assoluta e avvia un ciclo di re-installazione ex-novo. Se la comunicazione diretta con il frontend dovesse fallire durante la crisi, l'effetto si concretizza in modo deterministico alla primissima riapertura o aggiornamento manuale dell'applicazione da parte dell'utente, costringendo il sistema a ripartire da uno stato nativo pulito e a riscaricare tutti gli asset core integri direttamente dal server d'origine. Nel caso limite in cui la rete sia totalmente assente e il re-fetch fallisca, il motore si isolerร  definitivamente nello stato logico protetto **`VAULT_LOCKED_NO_KEY`**, dirottando l'erogazione verso `CONFIG.fallbackImage` o stampando la pagina d'emergenza HTML 503.

๐Ÿ› ๏ธ Protocollo di Debug Consigliato

Per forzare la verifica delle routine di rete, si raccomanda di configurare il pannello Network dei DevTools emulando profili di connessione degradati (es. Fast 3G o Slow 3G). Questo permette di validare visivamente il corretto funzionamento della routine getNetworkProfile, l'estrazione dei limiti da CONFIG.networkResilient.profiles e lo scatto automatico dei relativi timeout dinamici.

Tip

SIMULAZIONE DEL TOTAL BLACKOUT NEI TEST DI COLLAUDO: Nel pannello Application -> Service Workers dei DevTools, spunta la casella "Offline" e monitora i log. Se il sistema รจ a regime, vedrai comparire esclusivamente stringhe con il marcatore ๐Ÿ“ฆ๐Ÿ›ก๏ธ [Bunker-Decrypted] Serviced:, a testimonianza del fatto che la PWA sta girando in totale isolamento dal server e decifrando le risorse al volo via Web Crypto API.

โ†ฉ Torna alla Home

๐Ÿ—‚๏ธ Indice Rapido Wiki

  • ๐Ÿ  Home
    ๐Ÿ“‘ Pagina principale del Progetto

  • ๐Ÿ“„ Capitolo 1: Introduzione
    ๐Ÿ‘จโ€โš–๏ธ Requisiti legali e conformitร  CAD (Art. 68/69) ๐Ÿ“œ

  • โš™๏ธ Capitolo 2: Architettura
    ๐Ÿ›ก๏ธ๐Ÿ“ฆ Bunker Mode e crittografia AES-GCM del Vault ๐Ÿ”‘๐Ÿ—„๏ธ

  • ๐Ÿ’ก Capitolo 3: Note Finali
    โš’๏ธ Esempi di utilizzo pratico nella PA ๐Ÿ›๏ธ

  • ๐Ÿ›๏ธ Perchรฉ ๐Ÿช– Panzer v7+
    ๐Ÿ—ฝ Indipendenza ed eliminazione del Vendor Lock-in ๐Ÿšซ๐Ÿ”’

  • ๐Ÿ”ฅ Capitolo 4: Collaudo
    ๐Ÿฅ Battesimo di Fuoco, Debug e Log ๐Ÿž๐Ÿ“Š

  • ๐Ÿ›ก๏ธ Capitolo 5: Paradigma Difensivo
    Logiche di ๐Ÿšซ๐Ÿ’ฅ anti-tampering e Zeroization ๐Ÿงฝ

  • ๐Ÿ“‘ Capitolo 6: Determina
    ๐Ÿ–จ๏ธ Modello pronto ed esecutivo per i dirigenti ๐Ÿ’ผ

  • ๐Ÿงž Capitolo 7: Estensione Zero-Trust ๐Ÿ”
    ๐ŸŒ€๐Ÿงช Concept: Architetturale e Framework di Sicurezza per le PA ๐Ÿ›๏ธ

  • ๐Ÿ›๏ธ๐Ÿšจ Capitolo 8: Protezione PA
    ๐Ÿ“– Disciplinare Tecnico di Tutela dell'Ente con linee guida per Affidamenti Esterni. ๐Ÿข

  • ๐Ÿš€โ˜ข๏ธ Capitolo 9: La Difesa Oltre il Confine
    ๐ŸŒ€๐Ÿงช Concept: di un sistema di difesa attiva per operare in modalitร  Out-of-Sandbox ๐Ÿ”๐Ÿซ™

  • ๐Ÿ›๏ธ๐Ÿ”ฎ PA Futuro Digitale
    ๐ŸŒ๐Ÿš€ Concept: Manifesto tecnologico e linee guida d'architettura per l'Iper Cloud PA ๐ŸŒฉ๏ธ


LOGO

Clone this wiki locally