DevEnv nis2-agile and Claude Opus 4.8
26d0b8569c
[DOCS] Contesto ultima sessione 2026-06-20 (UI V2 completata + cliente Nuova Agile end-to-end + gestione documentale ISMS + consolidamento 36->12)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 16:55:43 +02:00
DevEnv nis2-agile and Claude Opus 4.8
2b6c5087ad
[DB] Hardening integrità chiavi (mig.058): +4 UNIQUE +8 FK, retry-on-1062, bonifica 16 righe stale — v1.23.1
...
Estende l'audit mig.039 ai moduli 040-057 (non coperti).
TIER1 additivo (0 dup/0 orfani verificati su DB live):
- UNIQUE internal_audits/management_reviews (org,code), kb_uploaded_documents.qdrant_doc_uuid,
whistleblowing_reports.anonymous_token (drop idx_token ridondante)
- retry-on-1062 in InternalAuditController/ManagementReviewController (allineati a periodic_controls)
- 6 FK: consulting_firm_id (organizations/users/kb)->consulting_firms; isms_soa.linked_control_id;
isms_documents.linked_policy_id; management_review_decisions.capa_id (tutte SET NULL)
TIER2 bonifica (backup pre-DELETE in .backups/): -9 firm_org_assignments orfane (org 126-129,
chiude deferred-b mig.039) -7 active_sessions scadute, +2 FK CASCADE.
FK totali 196->204. Sonda diagnostica db_integrity_probe.php. audit_logs lasciato by-design.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 07:57:25 +02:00
DevEnv nis2-agile and Claude Opus 4.8
1758074a06
[DOCS] Contesto sessione: modulo Controlli periodici v1.23.0 (mig.057) + sync ticket
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 09:26:06 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d479b301d3
[DOCS] Rilascio ISO 3 moduli: avviso tester + contesto (KB+email chiusi, v1.22.0, prossima mig=057)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 07:52:28 +02:00
DevEnv nis2-agile and Claude Opus 4.8
1ce5fb485f
[DOCS] Salvataggio contesto: TLS DB #9 DONE (sign-off VIGILE) + scoperta prod su php-fpm host
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 00:02:45 +02:00
DevEnv nis2-agile and Claude Opus 4.8
2552062c48
[DOCS] Contesto: chiusura open-items C5 (email gated #7 , EMAIL_MS_URL interno #8 , DB pre-equip #9 , 92 prevale Simon)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 23:33:33 +02:00
DevEnv nis2-agile and Claude Opus 4.8
6992bdcf14
[DOCS] Contesto: open-item C5 risolti (upload via setfacl host, fonti ACN) + escalation 92vs87 a Simon
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 23:16:02 +02:00
DevEnv nis2-agile and Claude Opus 4.8
f065d70dda
[DOCS] Contesto sessione 2026-06-16 (sera): Epic C COMPLETO — C5 Stakeholder LIVE (C5.1+C5.2+hardening, v1.21.1)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 22:55:25 +02:00
DevEnv nis2-agile and Claude Opus 4.8
8df8a5d91d
[DOCS] Contesto sessione 2026-06-16: Epic C C1-C4 LIVE (mig.046-050, v1.18.4)
...
C1 (config Misure/Requisiti + consultabile + valutazione per requisito + copia procedure),
C2 (Determinazione), C3 (rimosso Gap ACN, lg231 intatta), C4 (inventario 2 voci + sottoclassi).
Flotta di verifica su C1 (6 finding corretti). 2 bug pre-esistenti risolti (apostrofo JS inventario,
cache-buster common-bi). Resta C5 (stakeholder, a fasi) + flotta finale + help/trad/KB.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 20:16:33 +02:00
DevEnv nis2-agile and Claude Opus 4.8
690af688a0
[DOCS] Contesto sessione 2026-06-15 (notte): A4 COMPLETA 5/5 (RACI 4.3 + Scadenziario 4.4 + Stakeholder 4.5 live, commit b4d47d5->64866be, v1.17.2), help+i18n+KB aggiornati, 2 email ai tester (ringraziamento + punto del progetto); prossimo: feedback E2E tester sui nuovi moduli
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 23:23:05 +02:00
DevEnv nis2-agile and Claude Opus 4.8
05dfba6fcd
[DOCS] Contesto sessione 2026-06-15 (sera-2): A4 Fase 4.2 Competenze implementata e live (skills/role_skills/user_skills/skill_course_map, gapGrid, openAction NCR+CAPA, help+KB+PWA), review adversariale 0 finding, email tester inviata; prossimo 4.3 RACI
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 19:07:20 +02:00
DevEnv nis2-agile and Claude Opus 4.8
47199f1e4e
[DOCS] Contesto sessione 2026-06-15 (sera): A4 Fase 4.1 Organigramma implementata e live (org_roles, OrgRoleController, organigramma.html, help+KB), prossimo passo 4.2 skill/gap competenze
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 18:08:10 +02:00
DevEnv nis2-agile and Claude Opus 4.8
8c28d5ae97
[DOCS] Contesto sessione 2026-06-15: segnalazioni Fattori (A1/A2/A3 implementate, A4 disegnato), Unica UI (-28 -bi), tester provisioning
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:42:43 +02:00
DevEnv nis2-agile and Claude Opus 4.8
eeeb014c49
[DOCS] Contesto: PWA v1.15.0 pushata+verificata + cron supervisore conferma autonoma (4 cicli rc=0)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 00:56:39 +02:00
DevEnv nis2-agile and Claude Opus 4.8
36513fa722
[FEAT] PWA installabile Android/iOS conforme AGID (v1.15.0)
...
- manifest.webmanifest + service worker (offline shell, /api network-only, asset stale-while-revalidate)
- set icone (192/512 + maskable + apple-touch + favicon), generate zero-deps (pure Node+zlib)
- tag PWA + viewport viewport-fit=cover (zoom mantenuto, WCAG 1.4.4) in 77 pagine HTML
- AGID/WCAG 2.1 AA: touch target >=44px, orientamento/zoom liberi, safe-area standalone
- generatori riproducibili: scripts/gen-pwa-icons.mjs + scripts/inject-pwa-head.mjs
- bump version 1.14.1 -> 1.15.0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 21:09:54 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b80bf2361c
[BACKUP] Sessione 2026-06-14: supervisore autonomo + contesto + mig.039 + UI V2 plan
...
- Supervisore autonomo ticket: prompt operativo + dry-run (scripts/), DRAFT rimosso; gate normativo gia' committato
- docs/CONTEXT_LAST_SESSION.md: sessione 2026-06-14 (supervisore LIVE, run#1/#2, rotazione Anthropic rinviata)
- docs/sql/039_integrity_keys.sql: migrazione integrita' DB (PK/UNIQUE/FK) gia' applicata in prod 12/6
- docs/MIGRATION_UI_V2.md: piano migrazione UI V2
- docs/nis2/incidente_r00/: 2 mockup incidente (gateway+dashboard)
- .gitignore: versiona public/vendor/ (asset Bootstrap Italia self-hosted)
- Fix accumulati: EmailService (kill-switch email), Incident/Onboarding/Organization/Services controllers, questionnaire, ReportService, CLAUDE.md standard
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 16:35:41 +02:00
DevEnv nis2-agile and Claude Opus 4.8
66d50cd2cf
[DOCS] TLS-DB nis2: CUTOVER FATTO 2026-06-11 — app su container nis2-db (TCP+TLSv1.3, REQUIRE SSL)
...
Anomalia socket chiusa. App ora client TCP+TLS verso il proprio container nis2-db
(DB_HOST=172.21.0.4), dati migrati (19 utenti), Ssl_version=TLSv1.3, REQUIRE SSL enforced
(plain rifiutato 1045), verificato dal worker fpm reale (login Fattori 200, ARIA RAG ok).
Runbook + context aggiornati. Guard anti-outage gia' in 4548cc6 .
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 10:10:22 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d98d52ed58
[DOCS] TLS-DB nis2: verità topologia (fpm→host SOCKET) + tentativo socket→TCP fallito su path fpm
...
CONTEXT/runbook aggiornati con le conclusioni 2026-06-10 sera:
- L'app HTTP (php-fpm) usa il MySQL HOST via UNIX SOCKET (localhost), NON il container
(la "scoperta container" precedente era basata sul path CLI = falso positivo).
- TLS su socket non si applica e rompe (outage rientrato: rm flag + USR2).
- Switch socket→TCP via vault-net (172.30.0.1): CLI(root) OK ma fpm(www-data) esce con
source=gateway → masquerade → 135.x → 1045. Switch NON eseguito (sarebbe outage).
- Lezione: validare SEMPRE sul path fpm reale (diag servito da php-fpm), mai CLI/docker exec.
- Pre-equip codice resta committato e inerte (flag OFF); attivabile quando il path TCP
fpm sarà grantabile (bind 172.21 in finestra con restart MySQL).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 23:46:55 +02:00
DevEnv nis2-agile and Claude Opus 4.8
16790d25a4
[DOCS] CONTEXT: modulo Gap Analysis ACN + review 4 agenti + landing aggiornata
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 17:15:57 +02:00
DevEnv nis2-agile and Claude Opus 4.8
4af5e4caab
[DOCS] CONTEXT: kill-switch email (EMAIL_SENDING_ENABLED) + fix sendViaTemplate
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:53:24 +02:00
DevEnv nis2-agile and Claude Opus 4.8
ccea3ab7b7
[DOCS] CONTEXT: sessione Fasi 2-4 questionari fornitori + corpus ACN (v1.12.0)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:48:45 +02:00
DevEnv nis2-agile and Claude Opus 4.8
355c3fb6e6
[DOCS] CONTEXT_LAST_SESSION: sessione 2026-05-31 (modulo fornitori Fase 0+1 + review 22 agenti + help completo)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 16:51:40 +02:00
DevEnv nis2-agile and Claude Opus 4.8
74e36d2474
[DOCS] CONTEXT: guida allineata (10 funzionalita) + email invito via relay AgileHub (X-Internal-Key)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 12:56:34 +02:00
DevEnv nis2-agile and Claude Opus 4.8
634c3bfc87
[DOCS] CONTEXT: correzione hash Bug #3 (4e8a90c)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 12:19:50 +02:00
DevEnv nis2-agile and Claude Opus 4.8
897a5a4339
[DOCS] CONTEXT: risolti bug residui review (supply chain coerenza+atomico, FAIR range, benchmark dedup)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 12:18:33 +02:00
DevEnv nis2-agile and Claude Opus 4.8
98fd207096
[DOCS] CONTEXT: review multi-agente + 5 fix (risks/connettori/policy/ingestion/P2)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 11:42:43 +02:00
DevEnv nis2-agile and Claude Opus 4.8
109aa57d04
[DOCS] CONTEXT: connettori per-azienda implementati (org_connectors, secret nel vault via CLI)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 10:52:03 +02:00
DevEnv nis2-agile and Claude Opus 4.8
9deff7002a
[DOCS] CONTEXT: P2/P3 completati+verificati; finding vault write-path per connettori per-azienda
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 10:46:07 +02:00
DevEnv nis2-agile and Claude Opus 4.8
c15d8db510
[DOCS] CONTEXT: implementati gap P2 benchmark + P3 supply-chain self-assessment + P3 policy attestation/versioning
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 10:22:33 +02:00
DevEnv nis2-agile and Claude Opus 4.8
e3e4aae1e4
[DOCS] CONTEXT: completamento UI frontend gap competitivi (FAIR/KRI/monitoring/import) + help/i18n/OpenAPI/scorecard
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 09:52:59 +02:00
DevEnv nis2-agile and Claude Opus 4.8
db4cc7f660
[DOCS] CONTEXT: sessione 2026-05-30 - 4 feature gap competitivi Evix (ingestion/evidence/asset import/FAIR)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 09:26:31 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d5d83bb3b9
[FEAT] AiController /api/ai/ask (ARIA) -> askWithRag + fix DNS Qdrant php-fpm
...
Il FAB ARIA (common.js) chiamava POST /api/ai/ask ma il controller non esisteva
(assistente AI rotto). Creato AiController::ask -> AIService::askWithRag con RAG su KB
+ grounding fonti certe. Verificato in produzione: rag_used=True, cita Ambiti NIS2 / Determina ACN.
Fix DNS Qdrant: nei worker php-fpm (musl) getenv e gethostbyname NON funzionano per
hostname Docker single-label; funziona solo un IP letterale. VectorService fallback ->
172.21.0.3 (fpm-safe); QDRANT_URL compose resta hostname per CLI. Vedi nota drift in VectorService.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-29 18:55:44 +02:00
DevEnv nis2-agile and Claude Opus 4.8
0330bcf29d
[DOCS] CONTEXT_LAST_SESSION: sessione 2026-05-29 pomeriggio (reboot, 5 commit, utenti/org Agile)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-29 17:19:05 +02:00
DevEnv nis2-agile and Claude Opus 4.7
e4f9e9179e
[FEAT] Allineamento NIS2 ↔ TRPG (Fasi 1-5): SSO + Sessions + Reset + Impersonate + Branding
...
Implementazione completa del progetto allineamento alla suite Evix (TRPG/lg231),
basato sul doc canonico docs/GAP_TRPG_NIS2_ALIGNMENT.md (5 fasi, 18 gap).
Version 1.0.0 → 1.5.0
Fase 1 — SSO Federation (v1.1.0)
- Migration 015_sso_columns: users.sso_identity_id + password_version
- application/services/SsoHelper.php (client SSO dual-mode, cURL nativo, zero deps)
- AuthController::login() + changePassword() conditional SSO (SSO_MODE=local default)
Fase 2 — Multi-device Sessions (v1.2.0)
- Migration 016_active_sessions: tabella + refresh_tokens.session_jti
- BaseController::requireAuth() verifica jti + last_activity throttle + parseDeviceLabel
- login() genera jti, logout/changePassword revoca selettiva
- GET/DELETE /auth/sessions[/{id}]
- UI settings.html tab Sicurezza con lista device + revoca
Fase 3 — Password Reset + Tenant Switcher (v1.3.0)
- Migration 017_password_reset_tokens (TTL 30min, single-use)
- POST /auth/forgot-password (risposta opaca) + reset-password
- Pagine forgot-password.html + reset-password.html (con strength bar)
- EmailService::sendPasswordReset
- POST /auth/switchContext con rotazione JWT + organization_id claim
- Dropdown tenant in sidebar esposto a tutti gli utenti con ≥2 org
Fase 4 — Impersonate + Preferences + Versioning UI (v1.4.0)
- POST /auth/impersonate (super_admin o consulente stesso firm, TTL 1h, audit)
- Migration 018_user_preferences: users.theme/timezone/notif_email/notif_inapp
- GET/PUT /auth/preferences
- Sidebar footer mostra versione + changelog modal su click
Fase 5 — Branding white-label + Auth-gate (v1.5.0)
- Migration 019_firm_branding (logo/colori/brand_name per consulting firm)
- BrandingController GET /branding/current (auth opzionale) + PUT
- common.js auto-applica CSS variables al boot
- public/js/auth-gate.js (gate password client-side per docs riservati, da TRPG)
Skip motivati:
- G15 demo login: simulator esistenti coprono
- G18 refactor controllers: rinviato (~5gg, valore tecnico solo)
Cron sync SSO: AgileHub Ticket #220 aperto a team AGILEHUB per estendere
sso-password-sync.sh al DB nis2_agile_db. Prerequisito per switch SSO_MODE=dual.
Backup files: tutti i file modificati hanno .bak.pre-{fase}-{ts} sia in DEV
sia in /var/www/nis2-agile/.backups/ su Hetzner (rollback ready).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-29 13:18:35 +02:00
DevEnv nis2-agile
c37423f900
[DOCS] CONTEXT_LAST_SESSION: BigSim v2.0 completata + bug fix log
2026-03-17 15:59:41 +01:00
DevEnv nis2-agile and Claude Sonnet 4.6
56df54f8b1
[FEAT] Services API: full-snapshot endpoint + BigSim SSE wrapper
...
- ServicesController: nuovo endpoint GET /api/services/full-snapshot
Aggrega gap-analysis, measures, incidents, training, deadlines,
compliance-summary in una sola chiamata (reduce 6 round-trip → 1)
Parametro ?days=N per finestra deadlines (default 30, max 365)
- public/index.php: route GET:fullSnapshot aggiunta all'action map services
- public/simulate-nis2-big.php: wrapper SSE per simulate-nis2-big.php
Esegue il simulatore come sottoprocesso CLI con NIS2_SSE=1 e
streama l'output al browser tramite Server-Sent Events
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 15:16:00 +01:00
DevEnv nis2-agile
8304da91b4
[DOCS] Aggiornamento contesto sessione 2026-03-10
2026-03-10 12:04:01 +01:00
DevEnv nis2-agile and Claude Sonnet 4.6
1382530189
[FEAT] Sistema Segnalazioni & Risoluzione AI (feedback)
...
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 >
2026-03-10 08:51:52 +01:00
DevEnv nis2-agile
902423d768
[DOCS] Aggiorna CONTEXT_LAST_SESSION: sprint fix simulazione + test suite ✓36/36
2026-03-09 10:24:09 +01:00
CertiSource Server
32bfb82d4b
[SERVER] Auto-commit: allineamento repository
2026-02-24 12:56:23 +00:00