Runbook di esercitazione#
Questo capitolo fornisce una traccia comune per esercitare simulatori e gateway. Ogni prova deve avere un obiettivo misurabile e produrre un verbale: cambiare stati a caso nella console non è un test.
Preparazione#
Compilare:
ID esercitazione:
Data e ambiente:
Owner:
Operatori:
Sistemi coinvolti:
Modalità: simulatore / stub / sandbox / reale controllato
Oggetti di partenza:
Scenario:
Risultato atteso:
Criterio di arresto:
Piano di ripristino:
Evidenze da raccogliere:
Verificare che l’ambiente non contenga dati o credenziali di produzione se si usano simulatori.
Baseline#
Prima di introdurre l’errore registrare:
- stato dei sistemi;
- stato degli oggetti interessati;
- saldi/posizioni;
- ultimo messaggio;
- ultimo evento;
- livello delle evidenze;
- eventuali riconciliazioni aperte.
Senza baseline non è possibile dimostrare l’effetto della prova.
Caso 1 — Happy path DvP#
Successo: una sola conseguenza cash, una sola consegna, riferimenti correlati, stato finale riconciliato.
Caso 2 — Fondi insufficienti#
- Usare un pagatore con saldo simulato inferiore all’importo.
- Tentare la riserva cash.
- Verificare che la consegna non venga rilasciata.
- Controllare codice/messaggio e assenza di ricevuta finale.
- Ripristinare la provvista o annullare secondo runbook.
Successo: nessuna finalità cash e nessun trasferimento titoli.
Caso 3 — Provider offline prima dell’invio#
- Impostare il sistema su Avaria.
- Avviare l’operazione.
- Verificare il fallimento prima della finalità.
- Ripristinare il sistema.
- Eseguire lookup/riconciliazione.
- Applicare retry controllato.
Successo: nessun effetto duplicato e tentativo successivo collegato al precedente.
Caso 4 — Timeout con ricevuta tardiva#
Questo caso richiede uno stub o una sandbox capace di ritardare la risposta.
- Inviare la richiesta.
- Forzare il timeout del client.
- Non eseguire immediatamente un secondo pagamento.
- Acquisire la ricevuta tardiva tramite webhook o lookup.
- Verificare la correlazione.
- Chiudere il ciclo senza duplicare l’effetto.
Successo: la ricevuta tardiva viene acquisita una sola volta.
Caso 5 — Cash finalizzato, consegna fallita#
- Portare il ciclo a cash finality.
- Rendere indisponibile la consegna/rail.
- Tentare la finalizzazione.
- Verificare
manual_reviewecash_only. - Conservare la prova cash.
- Eseguire il runbook di consegna correttiva o rimborso simulato.
- Riconciliare.
Caso 6 — Paying agent parziale#
- Creare un evento di servicing con più obbligazioni.
- Accettare alcune istruzioni e lasciare altre pending o rejected.
- Generare ricevute soltanto per gli importi pagati.
- Verificare saldo residuo, codice di eccezione e stato dell’evento.
- Completare o correggere.
- Riconciliare lordo, imposte e netto.
Caso 7 — Documentazione fiscale mancante#
- Associare uno stato documentale incompleto a un conto.
- Simulare
missing_tax_documentationo pending tax validation. - Verificare che l’importo interessato resti sospeso.
- Aggiornare il riferimento documentale fuori dal dettaglio personale.
- Ripresentare l’istruzione autorizzata.
Caso 8 — Avanzamento T0/T1/T2#
- Generare un evento attestato T0.
- Verificare hash e ID.
- Usare Simula webhook T1/T2.
- Sincronizzare.
- Controllare la visibilità nell’Exchange.
- Verificare che l’evento economico non cambi stato per il solo avanzamento probatorio.
Caso 9 — Log rail non attendibile#
Con uno stub EVM o fixture di test:
- Presentare un log con chain ID errato, contratto non autorizzato o topic sconosciuto.
- Verificare che non aggiorni mirror, posizioni o settlement.
- Registrare l’incidente.
- Conservare log grezzo e motivo del rifiuto.
- Verificare che il cursor attendibile non salti eventi validi.
Caso 10 — Registro ricevente#
- Preparare una transizione su uno strumento senza processi aperti.
- Trasmettere il pacchetto integro.
- Acquisire ricevuta
accepted. - Ripetere la prova con hash alterato in un ambiente separato.
- Verificare
rejectede mancata migrazione. - Eseguire riconciliazione post-import sul destinatario.
Caso 11 — Fixing mancante o revisionato#
- Selezionare uno strumento indicizzato.
- Omettere il fixing della data richiesta.
- Verificare che il calcolo non inventi un valore.
- Pubblicare il fixing.
- Eseguire il calcolo.
- Pubblicare una revisione e verificare la procedura di correzione, senza riscrivere il risultato già finalizzato.
Raccolta delle evidenze#
Per ogni caso conservare:
- screenshot essenziali;
- request ID;
- identificativi degli oggetti;
- messaggi inviati/ricevuti;
- ricevute;
- stati prima/dopo;
- riconciliazione;
- log applicativi rilevanti;
- eventuale proof package;
- decisione finale.
Non includere segreti o dati personali nel verbale.
Chiusura#
Il report deve indicare:
| Campo | Contenuto |
|---|---|
| Esito | Pass / Fail / Pass con rilievi |
| Scostamenti | Differenze rispetto al risultato atteso |
| Impatto | Operativo, economico, sicurezza, compliance |
| Correzione | Modifica necessaria o runbook applicato |
| Owner | Responsabile dell’azione |
| Scadenza | Data prevista |
| Retest | Necessario sì/no e caso da ripetere |
