Rollback e recupero
Il rollback è una nuova mutazione controllata, non una conseguenza automatica di uno smoke fallito. Deve ripristinare soltanto il componente difettoso usando un target registrato prima della finestra.
flowchart TD
esito["Verifica post-deployment"] --> ok{"Tutti i controlli passano?"}
ok -->|"sì"| chiudi["Conserva evidenza e termina"]
ok -->|"no"| stop["Ferma ogni altra mutazione"]
stop --> causa{"Componente isolato?"}
causa -->|"API"| api["Autorizza rollback API"]
causa -->|"Frontend"| fe["Autorizza rollback Frontend"]
causa -->|"D1 o ambiguo"| blocco["Nessun rollback improvvisato; Issue di recupero"]
api --> smoke["Smoke rollback e controlli Access/D1"]
fe --> smoke
smoke --> prova{"Baseline ripristinata?"}
prova -->|"sì"| evidenza["Registra target, risultato e rischio residuo"]
prova -->|"no"| blocco
Trigger
- route canonica non disponibile o servita dal Worker sbagliato;
- revisione, artefatto o versione non corrispondenti;
- health API o D1 non verde;
- Access o CORS esatto regressi;
- asset, sitemap, robots, redirect o 404 non conformi;
- Frontend con binding o marker di credenziali;
- routing duplicato, loop o ownership ambigua;
- evidenza provider parziale o non univoca.
Rollback API
Il target è una versione API precedentemente registrata e compatibile con lo schema D1 corrente:
npx wrangler rollback <VERSIONE_API_PRECEDENTE> --env <AMBIENTE> --yes
Il comando è solo una forma tecnica: ambiente, versione e messaggio devono provenire dall'Issue autorizzato. Dopo il ripristino eseguire health, version, D1 health, Access, CORS e route API in sola lettura.
Rollback Frontend
Il target è una versione Frontend precedente:
npx wrangler rollback <VERSIONE_FRONTEND_PRECEDENTE> \
--env <AMBIENTE> \
--config apps/frontend/wrangler.jsonc \
--yes
Il dominio resta Frontend-owned. Non si ripristina l'HTML legacy dell'API e non si modifica l'API durante un rollback Frontend.
Cosa il rollback non fa
- non annulla migrazioni D1;
- non cambia route, domini, DNS o Access;
- non distribuisce l'altro Worker;
- non corregge codice;
- non ripete automaticamente l'operazione fallita;
- non prova pubblicazione, email o altre mutazioni editoriali.
Usare i runbook rollback API, rollback Frontend e smoke test limitato.