Files
ThothII/brain/codebase/datamart-builder-deployment-gotchas.md

2.0 KiB

Datamart Builder deployment gotchas

  • Il percorso pubblico attraversa due reverse proxy: nginx host → nginx Omics Portal → core ThothII.

  • Per SSE, ogni livello deve disabilitare proxy_buffering, proxy_request_buffering e cache, usare HTTP/1.1, timeout lunghi e propagare X-Accel-Buffering: no.

  • Il core aggiunge X-Accel-Buffering: no alla risposta EventSource; Omics Portal lo riaggiunge esplicitamente per i proxy a monte.

  • Una sonda utile deve attraversare il portale autenticato e misurare l'arrivo degli header 200 text/event-stream, non solo interrogare il core nel network Docker.

  • La configurazione nginx host attiva vive in /etc/nginx/sites-available/policlinicosandonato; validare con nginx -t prima del reload.

  • Django può tenere in memoria il manifest Vite per worker: dopo un rebuild del frontend riavviare anche i worker Omics Portal, altrimenti richieste diverse possono produrre hash asset vecchi e nuovi.

  • Nel profilo server legacy, vector_db è una connessione pgvector RW condivisa; il factory può riusarla come writer solo con profile=server. La workstation senza writer REST deve restare read-only.

  • Non convertire in-place local.yaml da chiavi legacy a risorse moderne durante un incident fix: cambia il binding del workspace e può invalidare gli snapshot DWH attivi.

  • session_storage è configurazione di persistenza delle sessioni, non degli artefatti DWH: escluderla dall'impronta in config_dwh_binding, altrimenti l'attivazione di profili utente rende incompatibile un indice DWH già valido.

  • Con profili per utente, un profilo privato vuoto deve essere inizializzato una sola volta dai settings legacy completi; trattare {} come settings effettivi fa creare sessioni senza provider/modello e lo spawn Pi fallisce prima di partire.

  • Regola operativa concordata: dopo ogni modifica o enhancement, ricostruire e ricreare tutti i container ThothII coinvolti prima dell'handoff, quindi verificare che siano healthy affinché l'utente possa testare live. Il push Git non aggiorna le immagini Docker automaticamente.