7.9 KiB
Rilascio server ThothII embedded in Omics — 2026-09-14
Esito
Il rilascio tecnico è stato eseguito il 2026-09-14 e i controlli automatici e server-side descritti sotto sono superati. L'accettazione funzionale non è ancora chiusa: lingua, tema, fullscreen, logout, ruoli e continuità SSE devono essere provati da browser con account Omics autorizzati.
Finestra autorizzata dall'operatore e conclusa alle 16:17 CEST. Le ammissioni
ThothII sono state riaperte dopo il collaudo (active: false, admissions: 0).
Revisioni e immagini distribuite
- ThothII, checkout operativo
/srv/thothii-v2/source/ThothII:49333a2d35664b7237c3ddc2a9f10a605dcc84ce, branchmain, pulito e allineato aorigin/main. - Omics Portal, checkout
/home/chirone/omics_portal:fca10901a73666ca257d8f4cc4b77066295c400a, branchmaster, pulito e due commit avanti aorigin/master. Include la consegna funzionale95154e179144e2453b37ef2a63a65d6f377e4cf8. - CLI nativo
/usr/local/bin/tht: commit49333a2d35664b7237c3ddc2a9f10a605dcc84ce, build2026-09-14T15:08:47+02:00,linux/amd64. - Core:
thothii-v2-core:49333a2d, image IDsha256:d62bf17dd1345e6a459edabe4b559333b396ef30c523dedf1b842506c147efbd. - Frontend:
thothii-v2-frontend:49333a2d, image IDsha256:dd57745143fc282562ec6d4c2cd8fc493eb2078494eeb17099d49bea8eae218b. - Omics web:
omics_portal-web, image IDsha256:11e99905c41b38cd68d0e726f25a4174b8eb65db27fb1d887238a7bd255074da. - Nginx: image invariata
sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14.
Configurazioni modificate
deploy/psd-server-v2/thothii-installation.yaml: Installation Model Catalog schema v2; shellembedded, locale predefinitoen, adapteromics-portal; provider DeepSeek unificato e default interactionzai/glm-5.3. Percorsi, profilo server, workspace, DWH e provider reali del server sono stati preservati./srv/thothii-v2/operator/compose.portal-upstream.yaml:AUTH_MODE=upstream, aliasthothii-coreethothii-frontendsulla rete Omics; eliminato il mount della copia manuale diconfig.js. Nessunauth.yamle nessuna runtime auth projection./srv/thothii-v2/operator/operator.env: tag applicativo aggiornato a49333a2d; nessun valore segreto copiato dal Mac o riportato in questo report.deploy/psd-server-v2/generated/: proiezioni rigenerate dal descriptor. Il frontend riceve in sola letturagenerated/frontend/config.js, che espone soltantobackendBaseUrl: /apie il contratto shell embedded.- Omics: integrati template embedded, lingua Django, topbar/fullscreen, adapter JavaScript, traduzioni e test della consegna GitHub.
nginx/nginx.conf: non modificato. La configurazione già presente conteneva l'auth_requestDjango, derivazione server-side degli headerX-Thoth-*, rimozione di cookie/Authorization/header client, origin esatta e SSE senza buffering.
Configurazione risolta verificata:
- core e frontend usano le immagini
49333a2d; AUTH_MODE=upstream;- core senza porta host pubblicata;
- frontend pubblicato soltanto su
127.0.0.1:18020; - alias Omics risolti rispettivamente a
thothii-coreethothii-frontend; config.jsgenerated montato read-only;THOTH_PUBLIC_EXPOSURE=falsee storage sessioni locale, preservando la topologia server già approvata.
Backup e rollback
Backup protetto:
/srv/thothii-v2/backups/20260914-pre-embedded-release, directory 0700, tutti
i file 0600 e owner root:root.
Contiene:
- immagini applicative precedenti core/frontend/Omics;
- binario CLI precedente;
- descriptor, override, config manuale e proiezioni precedenti;
- bind
data,workspace-registry,pi-state,operatoresecrets; - snapshot raw dei volumi catalogo, Qdrant ed embedding;
- dump logico PostgreSQL del catalogo ThothII;
- dump logico PostgreSQL del database usato da Omics;
- snapshot dei volumi statici e media Omics;
SHA256SUMS.
Tutti i checksum sono risultati validi. Gli archivi tar sono stati elencati
integralmente senza errori e i due dump sono stati validati con
pg_restore --list. Le vecchie immagini restano disponibili; Omics precedente
è inoltre etichettata omics_portal-web:pre-fca1090-aff75817.
Non sono state eseguite migrazioni ThothII: tra 82e2c91f e 49333a2d non
esistono nuove migrazioni catalogo, Memory o sessioni. L'entrypoint Omics ha
eseguito migrate con risultato No migrations to apply. Il rollback normale
è quindi applicativo e non richiede ripristino dati; dump e snapshot raw sono
conservati per un recupero separato solo in presenza di corruzione accertata.
Verifiche superate
Prima del rilascio
- frontend ThothII: 768/768 test;
- backend auth/config/session/model: 205/205 test mirati;
- estensione Pi, lingua e ripresa: 7/7;
- harness lingua sessione e repository PostgreSQL: 24/24;
- CLI Go: tutte le package superate;
- Omics embedded shell isolata: 15/15;
- build delle tre immagini candidate completata;
- generazione delle proiezioni validata prima in staging isolato;
- build documentale strict completata dopo la scrittura di questo report.
Sul server distribuito
tht status: exit 0;tht doctor --json:ok: true, 13/13 controlli superati, inclusi descriptor, proiezioni, permessi, Docker/Compose, autenticazione, health, HTTP, registry, workflow e Pi;- core, frontend, catalog-db, Qdrant, embedding e Omics web in stato healthy;
nginx -tsuperato prima e dopo la ricreazione;- catalogo Superset Omics valido: 32 dashboard;
migrate --checkpost-rilascio: exit 0;- nessun traceback, fatal, panic, HTTP 500 o errore nginx nei log recenti;
- pagina senza sessione:
302verso/accounts/login/; /datamart-builder/api/mesenza sessione:403;- richiesta pubblica con header principal/admin falsificati: ancora
403; config.js:200,Cache-Control: no-store, contenuto embedded corretto;- manifest Vite risolto da Django: 368 entry; entrypoint corrente
index-ktEFlKPi.jse stylesheetindex-BtNkA4QL.css; - asset JavaScript attraverso
/datamart-builder/assets/:200e cachepublic, immutable; - il core non ascolta sulla porta host 8787; dalla rete interna senza principal
risponde
401; - nginx risolve i nuovi indirizzi degli alias, senza dipendere dai precedenti IP Docker.
Il probe HTTPS verso l'hostname pubblico, eseguito dal server stesso, è andato
in timeout prima della connessione (HTTP 000): è un limite di raggiungibilità
hairpin/rete e non viene contato come verifica superata. I probe equivalenti
attraverso nginx locale con Host e forwarded protocol reali sono invece passati.
È rimasto intenzionalmente intatto il container orphan storico
omics_portal-web-run-a0bc36025e52, creato circa tre mesi prima del rilascio ed
exited da due settimane; non è stato rimosso perché estraneo alla consegna.
Prove manuali ancora necessarie
Usare account di prova autorizzati e dati non operativi:
- utente Omics autorizzato apre Datamart Builder senza secondo login e vede un solo header, quello Omics;
/datamart-builder/api/merestituisce issuerportal, subject Django stabile, ruoli corretti esession/csrfTokennull;- confronto utente normale/amministratore e rifiuto utente senza capability;
- IT/EN prima dell'apertura e cambio tramite form Omics, senza tradurre SQL o contenuti authored;
- light/dark con popup, menu e griglia aperti;
- ingresso/uscita fullscreen, compresa uscita con Esc e rifiuto browser;
- logout Omics, seconda scheda e nuova verifica
/me; - nuova sessione, flusso SSE, riconnessione dopo scadenza, reload senza avvio
automatico e ripresa con
interaction_languageinvariata; - richiesta cross-origin autenticata su operazione fittizia e comportamento
distinto di un singolo
403operativo; - accesso HTTPS reale da una postazione client, perché il server non raggiunge l'hostname pubblico in hairpin.
L'installazione non va dichiarata funzionalmente accettata finché questa matrice manuale non è stata eseguita e registrata.