Files
ThothII/docs/reports/2026-09-26-server-release-execution.md
T
User 2f53512e4d
Publish documentation / publish (push) Successful in 32s
docs: record server release and hand off remaining acceptance checks
2026-09-27 00:41:37 +02:00

143 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rilascio coordinato ThothII / Omics — 26 settembre 2026
**Distribuito; accettazione automatica superata. Collaudo browser positivo per accesso, interfaccia e avvio/interruzione/ripresa sessione; prove estese residue sotto.**
Finestra esplicitamente confermata dall’utente in chat («confermo»), avvio alle
19:28 Europe/Rome. Riferimento: [piano approvato](2026-09-26-server-release-plan.md).
Maintenance disattivata alle **19:35:27** dopo tutti i controlli automatici.
## Versioni e stato finale
| Componente | Risultato |
| --- | --- |
| ThothII sorgente | Main `497ab84031e285464fdbb73e6e0ce9252687e3ab`, checkout pulito in `/srv/thothii-v2/releases/497ab84031e285464fdbb73e6e0ce9252687e3ab` |
| Core | `thothii-v2-core:497ab840-preflight`, ID `sha256:182f4e0d63404cb7ed6a0e272441e9c55ed27e2bb16fdbf4d7162f892ac76dc7`, healthy |
| Frontend | `thothii-v2-frontend:497ab840-preflight`, ID `sha256:5f5a4f81139432d0ac41025c3006edaf1258b623ce388242700b1b20fcce6421`, healthy |
| Omics checkout | Fast-forward a `928f7e9fff2aba895416776fecf5668ee957d237`; nessuna modifica tracciata, file locali preservati |
| Omics web | Stesso container e immagine `sha256:27aa100690b110bf596322b1b0a31acc178ca9d1c709bc10382cbeecbfb5aeca`, riavviato e healthy; risposta HTTP Django verificata |
| Omics nginx | Ricreato col fix asset e immagine precedente fissata `sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14`; `nginx -t` positivo |
| Supporti | Catalogo PostgreSQL, Qdrant e Ollama healthy; immagini e volumi invariati |
| CLI host | `/usr/local/bin/tht` aggiornato; SHA256 `0d39a93fb0a3b2147541a746c75832db20302f3a604bf6510da69d3731bcd783` |
| Maintenance / Pi | Maintenance inattiva, zero processi Pi RPC al controllo finale delle 19:36 |
Descrittore mantenuto nel percorso originale:
`/srv/thothii-v2/source/ThothII/deploy/psd-server-v2/thothii-installation.yaml`.
Project Compose sempre `thothii-7f901b48fe35`; shell embedded/en/omics-portal,
auth upstream e storage locale invariati. Cambiati solo projectDirectory e
percorso dell’overlay git-ssh nel descrittore, tag immagini in env/overlay.
Proiezioni rigenerate col nuovo CLI e UID 10001. Descriptor/env 10001:10001 0600;
overlay 1013:1014 0640; CLI root:root 0755.
Il vecchio checkout ThothII dirty resta al suo posto per rollback. Nessun reset,
force push, eliminazione di volumi, cambio identità, credenziali, DWH o Authentik.
Nessun push Omics eseguito. Nessuna nuova migrazione applicata; i controlli Django
prima e dopo il riavvio non rilevano migrazioni o modifiche dei modelli pendenti.
L’entrypoint web ha rieseguito i normali comandi di startup, statici e traduzioni.
## Backup ed esecuzione
Backup protetto root 0700:
`/srv/thothii-v2/backups/20260926-coordinated-release`.
Completato e **VERIFIED alle 19:31:57**, circa **2,89 GiB**, **23 checksum**,
archivi tar leggibili e indici dei dump verificati. Non è una prova di restore.
Include configurazioni/CLI/generated, sorgenti e Git con file locali,
immagini precedenti, bind data/registry/Evidence/Pi/segreti, volumi
catalogo/Qdrant/Ollama/static/media, dump catalogo e dump PostgreSQL condiviso.
Il DB condiviso è rimasto operativo: il suo dump è una snapshot transazionale,
non un backup raw del database fermo. Il volume raw del catalogo ThothII è stato
archiviato a servizio fermo. Nessun restore dati eseguito.
Cronologia Europe/Rome:
- 19:28: controllo del piano approvato positivo; riserva 20,9 GiB, liberi 27,8 GiB.
- 19:29:21: configurazione di rollback salvata e verificata prima delle mutazioni.
- 19:29:42: maintenance e chiusura nginx Omics; due controlli Pi negativi.
- 19:30:03: applicazioni ferme; dump, fermo supporti e archiviazione dati.
- 19:31:57: backup verificato.
- 19:32:10: deploy avviato; core 19:32:17, frontend 19:32:23,
web Omics 19:32:29, nginx 19:32:36.
- 19:35:27: accettazione automatica completata e maintenance disattivata.
Il periodo tra chiusura e riavvio nginx è stato circa tre minuti; le nuove
ammissioni sessione sono rimaste bloccate fino al completamento dei controlli.
## Correzione del controllo durante il rilascio
L’accettazione iniziale si è fermata su un falso negativo nello script:
`config.js` invia due header `Cache-Control`, `no-cache` e `no-store`; il controllo
leggeva solo il primo. Configurazione e risposta HTTP erano corrette.
Riproduzione isolata rossa, correzione di una riga con `get_all`, **16 test verdi**,
compreso il rifiuto quando `no-store` manca davvero. Nessuna modifica applicativa
necessaria. Maintenance mantenuta attiva fino alla ripetizione completa
dell’accettazione. Non sono stati ripetuti backup, fast-forward o ricreazione.
Directory script/evidenze:
`/srv/thothii-v2/operator/releases/20260926-coordinated/reviewed/`.
- Script inizialmente approvato conservato in `release.approved.py`, SHA256
`eb2c677c8adbee0c9febf919001f654c8535e71f064d9fb7c7883afd02383a41`.
- Script corretto `release.py`, SHA256
`20314e68a6a42701456d454d2a0881652cfdbe5e00e9a912a22df9e78129aa00`.
- Test di regressione: `test_release_reviewed.py`, `reviewed-tests-cache-fix.log`.
- Stato finale filtrato: `deployed-evidence.json`; avanzamento nel
`journal.jsonl` del backup. Manifest degli artefatti aggiornato, originale conservato.
## Accettazione automatica
| Verifica | Esito |
| --- | --- |
| Digest reali dei container, readiness, doctor | Positivi |
| Alias Docker | Univoci e risolti ai container attuali; manifest raggiungibile da Omics |
| API senza cookie e con principal falsificati | 403 su HTTP e HTTPS locale verificato |
| Bypass asset e traversal codificati | Negati; `/datamart-builder/assets/api/me` restituisce 404 |
| Config | 200, embedded e no-store su entrambi i percorsi |
| Asset | Tutti i file elencati dal manifest disponibili su HTTP/HTTPS |
| Esposizione core | Nessuna porta pubblicata sull’host |
| Modelli, Pi e credenziali | Hash invariati rispetto alla baseline |
| Documenti persistiti | 2 manifest sessione, 51 file sessione/artifact e 221 file workspace/Evidence confrontati col backup: nessuna differenza |
| Migrazioni e catalogo Omics | Nessuna migrazione pendente; catalogo Superset valido |
| Log startup | Zero occorrenze nelle categorie fatal/config/auth/permessi controllate; nessun contenuto sensibile riportato |
Le prove HTTPS usano la CA interna e risoluzione locale del nome pubblico;
non sostituiscono il collaudo dalla postazione esterna. Il controllo degli hash
riguarda i file elencati, non certifica da solo l’intera semantica degli archivi.
## Rollback disponibile
Usare lo script corretto, dopo controllo di eventuali sessioni Pi attive:
```bash
sudo -n python3 /srv/thothii-v2/operator/releases/20260926-coordinated/reviewed/release.py rollback --window-confirmed
```
Il rollback previsto dalla finestra approvata ripristina CLI/config/proiezioni e
immagini ThothII precedenti, mantiene il fix proxy Omics, riavvia e verifica le
applicazioni. Conserva dati e volumi; nessun restore del DB condiviso, reset Git
o ritorno al nginx vulnerabile. Se l’utente ha avviato sessioni, prima salvarle e
fermarle. Il rollback non è stato necessario né eseguito durante questo rilascio.
## Collaudo browser — aggiornamento 27 settembre 2026
Conferme dell’utente:
- Omics → Datamart Builder si carica senza problemi, in risposta alla prova di
apertura senza secondo login.
- Il 27 settembre: «tutto bene, compreso l’avvio e l’interruzione di una sessione».
Nel contesto dei controlli richiesti, registrato esito positivo per IT/EN,
tema, fullscreen/Esc e per avvio/interruzione di una sessione.
- Successivamente, sempre il 27 settembre: «ho anche ripreso una sessione interrotta.
tutto ok». Confermata anche la ripresa riuscita; il ciclo funzionale
avvio → interruzione → ripresa è collaudato dall’utente.
Il collaudo funzionale richiesto ha esito positivo. Su richiesta dell’utente,
le verifiche estese sono trasferite a un’attività successiva nel
[handoff del 27 settembre](2026-09-27-server-acceptance-handoff.md): lingua
persistita, identità/ruoli, logout, origine delle scritture, amministrazione,
reload e HTTPS esterno. Il documento contiene passi, responsabili, risultati
attesi e registro delle prove; nessuno di questi casi è dichiarato già superato.
La [matrice di accettazione](../testing/authentication-manual-acceptance.md)
resta il riferimento. Nessuna ulteriore modifica ai servizi è stata eseguita
per registrare il collaudo o preparare l’handoff del 27 settembre.