Audit Chiusura SafeOps - 2026-04-22¶
Esito¶
Audit chiuso sul perimetro operativo lavorato in questa sessione:
- calendario globale tenant;
- calendario personale condiviso/privato;
- condivisione eventi calendario per utenti tenant selezionati;
- tipologie calendario operative, incluse intervento, ticket e promemoria;
- menu calendario globale su tenant NetOpen;
- ticket e calendario ticket nel perimetro permessi
roem; - interventi;
- rapportini intervento;
- navigazione HTTPS sulle schermate rapportini;
- firma tecnico/cliente su rapportino.
Il perimetro verificato e utilizzabile. Resta aperto solo il controllo dell'invio email calendario verso client Outlook/ICS reali. Non e una certificazione dell'intero working tree, perche nel branch sono presenti modifiche parallele non appartenenti a questo intervento.
Stato Repository¶
Branch rilevato: wip/integration-safeops-20260421.
Working tree non pulito. File principali nel perimetro audit:
app/__init__.pyapp/modules/calendar_global.pyapp/modules/interventi/models.pyapp/modules/interventi/views.pyapp/services/calendar_hub.pyapp/templates/appbuilder/custom/calendar_global.htmlapp/templates/appbuilder/custom/intervento_rapportino.htmlapp/templates/appbuilder/custom/intervento_rapportino_add.htmlapp/templates/appbuilder/custom/intervento_rapportino_list.htmlapp/modules/iam/menu_runtime.pymigrations/versions/a7e4c2f9d830_add_user_calendar_event_sharing.py
Sono presenti molte altre modifiche e file non tracciati, inclusi asset demo, frontend e documentazione. Non sono stati valutati come parte della chiusura di questo audit.
Verifiche Eseguite¶
Compilazione Python¶
Comando:
python -m py_compile app/__init__.py app/modules/calendar_global.py app/modules/interventi/models.py app/modules/interventi/views.py app/services/calendar_hub.py
Esito: OK.
Parsing Template Jinja¶
Template verificati:
appbuilder/custom/calendar_global.htmlappbuilder/custom/intervento_rapportino.htmlappbuilder/custom/intervento_rapportino_add.htmlappbuilder/custom/intervento_rapportino_list.html
Esito: OK.
Stato Servizio¶
Comando:
systemctl is-active safeops-web.service
Esito: active.
Smoke Live HTTPS¶
Route verificate su netopen.nxt-sense.eu:
https://netopen.nxt-sense.eu/calendario-globale/https://netopen.nxt-sense.eu/intervento-rapportino-admin/addhttps://netopen.nxt-sense.eu/interventi/list/https://netopen.nxt-sense.eu/ticketview/list/https://netopen.nxt-sense.eu/intervento-rapportino-admin/list/
Esito: tutte rispondono 302 FOUND verso login con next relativo. Nessun 500, nessun redirect http:// rilevato nello smoke non autenticato.
Verifiche DB e Permessi¶
- Tabelle presenti:
user_calendar_event,user_calendar_event_share,intervento_rapportino. - Utente
roemattivo. - Ruoli
roem:Public,ROLE_PROFILE_ADMIN_TENANT,USR_roem. - Permessi verificati per calendario globale, ticket, interventi e rapportini.
- Tenant NetOpen verificato con utenti tenant-scoped:
admin,ids_tecnico,roem.
Verifiche Funzionali Calendario¶
Eseguiti test temporanei con cleanup immediato:
- evento
Promemoriaglobale tenant visibile a owner, utente tenant e admin; - evento
Ticketcondiviso con utente selezionato visibile a owner, destinatario e admin; - evento privato non visibile ad altro utente tenant;
- cleanup degli eventi test completato.
Esito: OK.
Test Automatici¶
Comando tentato:
python -m pytest tests/test_analytics_engine_integration.py tests/test_chat_integration.py
Esito: non eseguito, pytest non installato nell'ambiente Python corrente.
Funzionalita Consolidate¶
Calendario Globale¶
- Vista calendario globale disponibile a livello tenant.
- Voce menu visibile in tenant sotto
Operativo -> Calendario Globale. - Eventi personali con visibilita
Globale tenant,Utenti selezionati,Solo personale. - Condivisione confinata agli utenti assegnati al tenant.
- Invito email con destinatari selezionabili, confinati al tenant.
- Campi aggiunti per modalita incontro, luogo, telefono e link videocall.
- Tipologie personali estese: intervento, ticket, promemoria, riunione, videocall, ferie, malattia, permesso, altro.
- Export ICS.
- Redirect control-plane verso tenant host gestito dove possibile.
- Permessi assegnati ai ruoli operativi rilevanti su NetOpen.
Ticket¶
- Lista ticket raggiungibile.
- Calendario ticket nel perimetro operativo.
- Collegamento eventi ticket nel calendario globale.
- Permessi
roemattivati per ticket, calendario ticket, chat/conversazioni e funzioni operative collegate.
Rapportini Intervento¶
- Lista rapportini accessibile da menu operativo.
- Inserimento rapportino tramite flusso guidato.
- Modifica rapportino reindirizzata al form operativo custom.
- Paginazione dei rapportini per ticket.
- Export CSV dalla lista rapportini.
- Calcolo ore da orario inizio/fine quando il campo ore e vuoto.
- Firme tecnico e cliente tramite canvas.
- Firma aggiornata per supportare pointer, mouse e touch.
Navigazione HTTPS¶
- Link principali rapportini forzati su
https://. - Redirect interni
http://<stesso-host>riscritti inhttps://per host pubblici.nxt-sense.eu. nextlogin normalizzato a path relativo.
Rischi Residui¶
-
Invio email calendario / Outlook. Resta aperto il controllo su ricezione invito, visualizzazione organizzatore e accettazione ICS da client reale.
-
pytestassente. La suite esistente non e stata eseguita per mancanza dipendenza nell'ambiente corrente. -
Working tree ampio. Ci sono modifiche parallele non valutate in questo audit. Prima di merge/rilascio va separato il perimetro calendario/rapportini dal resto.
-
DDL runtime. Alcune tabelle/colonne vengono garantite a runtime. Per rilascio pulito e consigliato consolidare in migrazione Alembic.
Raccomandazione di Chiusura¶
Audit chiuso per il perimetro calendario globale, ticket e rapportini intervento.
Resta aperta solo la verifica invio email calendario:
- creare un evento calendario reale con invito email;
- verificare ricezione su
roberto.emiliani@netopen.it; - verificare che l'organizzatore sia nome/cognome utente e non
SafeOps; - verificare accettazione invito da Outlook senza errore ICS.