docs: record server release and hand off remaining acceptance checks
Publish documentation / publish (push) Successful in 32s
Publish documentation / publish (push) Successful in 32s
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user