Adattato da alltax.it — il sistema più maturo testato con utenti reali.
Backend:
- FeedbackController: 6 endpoint (submit, mine, list, show, update, resolve)
- FeedbackService: createReport + classifyWithAI + broadcastResolution
- AIService::classifyFeedback() — 10s timeout, 500 token, JSON puro
- EmailService::sendFeedbackResolved() — broadcast email org
- DB migration 014: tabella feedback_reports
Frontend:
- feedback.js: FAB rosso #EF4444, modal 2 fasi (form → AI → password gate)
- Tab "Le mie segnalazioni" con badge status
- Auto-init su tutte le pagine autenticate (common.js::checkAuth)
- api.js: 6 metodi client; style.css: stili completi
Worker:
- scripts/feedback-worker.php: cron ogni 30 min
→ docker exec nis2-agile-devenv + Claude Code CLI
→ risoluzione autonoma con POST /api/feedback/{id}/resolve
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.5 KiB
Nis2 Agile - Contesto Ultima Sessione
Questo file viene aggiornato da Claude a fine di ogni sessione. Serve per mantenere continuita tra sessioni diverse (anche da browser/PC diversi).
Ultima sessione
Data: 2026-03-10 Cosa è stato fatto: Sistema Segnalazioni & Risoluzione AI (adattato da alltax.it) + marketing landing NIS2 (sessione precedente)
Attività sessione 2026-03-10 — Sistema Feedback
Implementazione completa del sistema di segnalazione bug/feedback con risoluzione AI autonoma. Ispirato a https://alltax.it/docs/sistema-segnalazioni-standard.html (il più maturo testato con utenti reali).
File creati:
-
docs/sql/014_feedback.sql— tabellafeedback_reports(tipo, priorita, status, AI fields, attachment base64) -
application/controllers/FeedbackController.php— 6 endpoint:- POST
/api/feedback/submit→ crea segnalazione + AI classify - GET
/api/feedback/mine→ ultime 20 dell'utente - GET
/api/feedback/list→ lista admin (org_admin, compliance_manager, auditor) - GET
/api/feedback/{id}→ dettaglio (admin o autore) - PUT
/api/feedback/{id}→ update status/nota_admin - POST
/api/feedback/{id}/resolve→ chiusura con password gate
- POST
-
application/services/FeedbackService.php— createReport, classifyWithAI, broadcastResolution -
public/js/feedback.js— FAB rosso #EF4444, modal 2 fasi (form → risposta AI → password gate), tab "Le mie segnalazioni" -
scripts/feedback-worker.php— worker cron (ogni 30 min):- Fetch ticket in_lavorazione
- docker exec su
nis2-agile-devenvcon Claude Code CLI - POST /api/feedback/{id}/resolve se exit_code=0
- Log in
/var/log/nis2/feedback-worker.log
File modificati:
application/services/AIService.php— aggiuntoclassifyFeedback()(timeout 10s, 500 token, JSON puro)application/services/EmailService.php— aggiuntosendFeedbackResolved()(broadcast email risoluzione)application/config/config.php— aggiunte costantiFEEDBACK_RESOLVE_PASSWORD,FEEDBACK_WORKER_LOGpublic/js/api.js— aggiunta sezione Feedback (6 metodi)public/js/common.js—checkAuth()ora chiamainitFeedbackFab()automaticamente su pagine autenticatepublic/css/style.css— stili FAB, overlay, modal, badge, fase 2, tab "le mie"public/index.php— aggiunto'feedback' => 'FeedbackController'in controllerMap + action map
Variabili .env da aggiungere su Hetzner
FEEDBACK_RESOLVE_PASSWORD=Nis2Feedback2026! # password gate risoluzione
FEEDBACK_WORKER_ADMIN_EMAIL=admin@nis2.agile.software
FEEDBACK_WORKER_ADMIN_PASS=... # password dell'account super_admin
FEEDBACK_WORKER_LOG=/var/log/nis2/feedback-worker.log
Crontab da aggiungere su Hetzner
*/30 * * * * root /usr/bin/php8.4 /var/www/nis2-agile/scripts/feedback-worker.php
Deploy da fare
ssh -i docs/credentials/hetzner_key root@135.181.149.254
cd /var/www/nis2-agile && git pull origin main
# Applica migration DB
mysql -u nis2user -p nis2_agile_db < docs/sql/014_feedback.sql
# Aggiungi .env vars
nano .env # aggiungi le 4 variabili feedback
# Aggiungi crontab
crontab -e # aggiungi riga */30
# Crea log directory
mkdir -p /var/log/nis2
Attività sessione precedente (2026-03-09/10) — Marketing e fix
public/index.html— Landing marketing completa (temi rosso #EF4444, invite-only)public/presentation.html— Presentazione 11 slide nel repo NIS2application/controllers/MktgLeadController.php— webhook proxy + fallback emailapplication/controllers/ContactController.php— richiesta invito legacy- AgentAI Hub: colori aggiornati a rosso, products.json con link presentation
Stato attuale
- Produzione: https://nis2.agile.software/ — tutto funzionante
- Simulazione: ✓92 ⚠4 ✗0 (6 scenari, 3 aziende demo)
- Test suite: ✓36/36 L1-L6
Problemi aperti / Note
FEEDBACK_RESOLVE_PASSWORDdeve essere aggiunta al.envsu Hetzner prima del deploy- Il worker cron richiede che il container
nis2-agile-devenvsia attivo e raggiungibile - DB migration 014 va applicata manualmente su prod dopo git pull
- PHP Warning
nis2_typein simulate-nis2.php:303 — cosmetic, da fixare
Prossimi passi suggeriti
- Deploy su Hetzner: git pull + migration 014 + .env vars + crontab
- Test E2E: login → FAB appare → submit segnalazione → risposta AI → resolve con password
- Eventuale Sprint RAG su normativa NIS2 (piano adaptive-marinating-tome.md, Sprint 3)