DevEnv nis2-agile and Claude Opus 4.8
92d101b6f4
[FEAT] Epic C / C1 — Elenco Misure/Requisiti consultabile (read-only) + FrameworkController
...
UI data-driven sulle tabelle di config cfg_nis2_* (mig.046):
- FrameworkController::catalog (GET /api/framework/catalog): 43 misure / 116 requisiti,
procedura+rischio di default per requisito, flag importanti/essenziali, classe org.
- public/misure-requisiti.html (Bootstrap Italia/AGID): vista per misura / per area politica,
selettore soggetto (auto/importante/essenziale/tutti), righe che si 'spengono' per classe,
ricerca, sola lettura (codifica non modificabile). Voce sidebar in sezione Compliance.
- api.js frameworkCatalog(); routing index.php; i18n nav.framework IT/EN.
- help.js: guida 'misure-requisiti' (struttura, importanti/essenziali, riferimenti art.23/24 D.Lgs.).
- KB AI: doc SYSTEM ingestato (uuid 7871c1ea).
- Cache-buster ?v=20260621 (35 pagine), version 1.18.0, SW cache nis2-shell-v1.18.0.
- docs/simon/: file sorgente autoritativi (provenienza seed, codifica Simon non variata).
Smoke prod: /framework/catalog 200 (43/116, 6 misure solo-essenziali, GV.OC-04->Proc.01/Risk.01),
pagina 200, USR2 applicato. Additivo, nessuna modifica a dati esistenti.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 17:29:08 +02:00
DevEnv nis2-agile and Claude Opus 4.8
c5b00ccd96
[FEAT] A4 Fasi 4.4 + 4.5 (A4 COMPLETA 5/5): scadenziario centralizzato review_schedule (mig.044; ReviewScheduleController list/create/update/delete/complete/sync) + stakeholder estesi clienti/partner GV.SC-02 (mig.045 suppliers.stakeholder_type, SupplyChainController::stakeholderMap). Pagine review-schedule.html + stakeholders.html (Bootstrap Italia/AGID). Workflow build+review adversariale (3 major risolti: 045 da DELIMITER -> ALTER bare runner-safe). help GV.SC-04/05 allineati al titolo canonico ACN. Cache-buster ?v=20260620.
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 23:10:28 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b4d47d58a2
[FEAT] A4 Fase 4.3 — Matrice RACI + link m2m: raci_assignments + procedure_inventory/procedure_risk/inventory_risk/risk_measure (mig.043), RaciController org-scoped (anti-IDOR, validazione object/measure), raci.html+raci.js (Bootstrap Italia/AGID), routing+sidebar+api+help+i18n. Build+review adversariale via workflow (0 finding critical/major). Cache-buster ?v=20260619.
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 22:44:08 +02:00
DevEnv nis2-agile and Claude Opus 4.8
5368b0a61c
[FEAT] A4 Fase 4.2 — Competenze (skill/requisiti ruolo/gap) + alert→azione NCR+CAPA
...
Secondo modulo del modello relazionale A4 (docs/DESIGN_A4_RELATIONAL.md).
Backend:
- Migration 042 (docs/sql/042_competences.sql) + runner aggiornato (scripts/migrate-a4.php).
4 tabelle additive/idempotenti: skills (org-owned o globali), role_skills
(competenze richieste dal ruolo, UNIQUE role+skill), user_skills (possedute,
UNIQUE org+user+skill), skill_course_map. APPLICATA su prod (nis2-db v8.0.45,
TLSv1.3).
- CompetenceController (route 'competences'): catalog, skills CRUD, roleSkills,
userSkills, skillCourses (map/unmap), gapGrid (richiesto−posseduto per ruolo
con titolare), openAction. Multi-tenancy + anti-IDOR + livelli 1-5; competenze
globali in sola lettura per gli utenti org.
- alert→azione: openAction RIUSA il workflow NCR/CAPA reale (la tabella azioni è
capa_actions figlia di non_conformities, NON 'corrective_actions' che non
esiste): crea NCR (source='management_review', source_entity_type='competence_gap',
source_entity_id=role_skills.id) + capa_actions figlia. Anti-duplicato sul gap.
Zero ALTER alle tabelle esistenti. Ancoraggio PR.AT-01/02, GV.RR-04, art.24 D.Lgs.
Frontend:
- competenze.html (4 schede: Catalogo, Requisiti per ruolo, Competenze persone,
Gap & azioni) + js/competenze.js. Bootstrap Italia V2. CTA "Assegna corso"
(riuso /training/assign) e "Apri non conformità".
- Voce sidebar "Competenze" (common.js + common-bi.js + BI_PAGES) + nav.competences
i18n IT/EN. api.js: metodi comp* + assignTraining.
Help/KB/PWA:
- help.js: guida contestuale 'competences' (schede, calcolo gap, PR.AT-01/02,
GV.RR-04, art.24 D.Lgs., disclaimer no-parere-legale) + mappa pagina.
- sw.js: nome cache nis2-shell-v1.17.0 (allineamento PWA).
- Design doc corretto (rettifica capa_actions vs corrective_actions) + avanzamento 4.1/4.2.
Cache-buster: ?v=20260618 dei 5 JS condivisi su 32 HTML. version.json 1.16.0 -> 1.17.0.
Smoke E2E su prod (fpm reale): catalogo, requisito, competenza, gap=2, openAction
(NCR+CAPA), anti-dup 409, mappatura corso — tutti verdi; dati di test ripuliti.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 19:01:32 +02:00
DevEnv nis2-agile and Claude Opus 4.8
8540b53cb2
[FEAT] A4 Fase 4.1 — Organigramma (org_roles): ruoli/gerarchia + nodo governance Art.23
...
Primo modulo del modello relazionale A4 (docs/DESIGN_A4_RELATIONAL.md).
Backend:
- Migration 041 (docs/sql/041_org_roles.sql) + runner scripts/migrate-a4.php.
Tabella org_roles additiva/idempotente: gerarchia self-FK (parent_role_id),
titolare (holder_user_id), is_governance_body (organi amministrazione/direttivi
Art.23 D.Lgs.138/2024), description (GV.RR-02). APPLICATA su prod (container
nis2-db v8.0.45, TLSv1.3, 11 col, 4 FK).
- OrgRoleController: list (flat+tree arricchiti), get, create, update, delete,
assignableUsers. Multi-tenancy ancorata a getCurrentOrgId(), anti-IDOR
(id+organization_id), prevenzione cicli nella gerarchia, holder = membro org,
delete bloccato se ha figli (409). Route registrate in public/index.php.
Frontend:
- public/organigramma.html + js/organigramma.js: vista ad albero (badge governance,
titolare/vacante), editor crea/modifica/elimina con select padre anti-ciclo,
"crea struttura di base". Bootstrap Italia V2.
- Voce sidebar "Organigramma" (common.js + common-bi.js) + nav.org_chart i18n IT/EN.
- api.js: metodi orgRole* (wrapper _acn).
Help/KB:
- help.js: guida contestuale 'org' (cosa rappresenta, nodo Art.23, come si usa,
fonti certe D.Lgs.138/2024 art.23 + GV.RR-02 best practice, disclaimer no-parere-legale).
Cache-buster: bump ?v=20260617 dei 5 JS condivisi su tutte le 32 HTML referenti.
version.json 1.15.2 -> 1.16.0. Smoke E2E su prod (fpm reale): login, CRUD, tree,
anti-ciclo (422), delete-con-figli (409), cleanup tutti verdi.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 18:05:56 +02:00
DevEnv nis2-agile and Claude Opus 4.8
121b8c2003
[FIX] Allineamento normativo segnalazioni Fattori (A1+A3): citazioni obblighi -> D.Lgs.138/2024 art.23/24/25 (non Direttiva) + terminologia Asset -> Inventario
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 15:27:07 +02:00
DevEnv nis2-agile and Claude Opus 4.8
36967f9452
[UI] V2 completezza Bootstrap Italia: 11 pagine app -bi mancanti + companies + help.js + KB doc
...
Completa la copertura V2 al 100% delle pagine app autenticate (pre-swap).
Additivo: nessun file live HTML promosso ancora (lo swap e separato).
- 9 pagine app -bi: isms, acn-gap, normative, whistleblowing, kb, cross-analysis,
service-continuity (doc standalone), guida, companies
- admin/{index,organizations,users}-bi.html (path corretti, common-bi.js)
- help.js: +89 righe help contestuale pagine V2 (vincolo fonti certe)
- docs/kb/V2_UI_NAVIGAZIONE.md: doc UI/navigazione V2 per la KB AI (ARIA)
- Verifica: tutte servite 200, 0 CDN/FontAwesome, sprite validi, parita ID
Prodotto via Workflow a trittici (run wf_c4962fbe-93f) + fix manuale companies/sprite.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-12 14:46:37 +02:00
DevEnv nis2-agile
3f74165531
[FEAT] Modello Organizzativo SGSI (ISO 27001/27017/27018) + SoA pre-popolato da NIS2
...
Nuovo modulo guidato in 6 step (cl. 4-10 + Statement of Applicability):
- migration 037 (isms_models/roles/soa/documents) + 038 (dataset 111 controlli:
93 Annex A:2022 + 7 CLD/27017 + 11 PII/27018) + runner scripts/migrate-isms.php
- IsmsModelController (16 endpoint) registrato in index.php
- SoA pre-popolato dalle risposte Gap Analysis NIS2 (mapping iso27001_control)
- estensioni cloud condizionali 27017/27018 via flag uses_public_cloud/
is_cloud_provider/processes_pii_in_cloud
- AIService::generateIsmsDocument + fonti ISO in nis2_sources.php
- frontend isms.html/isms.js + api client + sidebar + help + i18n IT/EN
- ingest KB ISO (scope SYSTEM, solo titoli/sintesi: no testo coperto da copyright)
- version.json 1.14.0; doc studio + deploy handoff
Strumento di supporto/pre-audit (non certificazione). Migration DA APPLICARE su host.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 11:32:42 +02:00
DevEnv nis2-agile and Claude Opus 4.8
035df49e07
[DOCS] Gate Gap Analysis ACN: guida cap-5b + help + i18n IT/EN + version 1.13.0
...
- guida.html: nuovo cap-5b "Gap Analysis ACN" (importanti vs essenziali con
tabella 37/87 e 43/116, 6 funzioni FW, scoring, piano d'azione, quale-uso-quando).
- help.js: voce contestuale 'acn' + mappature page->help->guida (cap-5b).
- i18n.js: nav.acn_gap + 15 chiavi acn.* IT/EN.
- version.json -> 1.13.0.
- AI/KB: gia a posto — nis2_sources.php cita Allegati 1/2 (37/87, 43/116) con
GV.RR-04/GV.PO-01; 203 requisiti ACN gia in Qdrant per il grounding.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 08:18:40 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b7f361b87c
[FEAT] Supply chain UI: i18n sp.* IT/EN + import mostra errors[] dettaglio righe scartate
...
- public/js/i18n.js: +38 chiavi sp.* (IT+EN) per pulsanti header, categorie, template, import.
- supply-chain.html: data-i18n sui 4 pulsanti header; l'import CSV ora mostra il
dettaglio delle righe scartate (d.errors[] dal backend) in un <details> e tiene
aperta la modale se ci sono errori (prima si chiudeva sempre, errori invisibili).
- version 1.10.1.
Inline JS validato (node --check). File statici -> live via nginx.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:37:22 +02:00
DevEnv nis2-agile and Claude Opus 4.8
dbc1784955
[FIX] Completamento UI: metodo controlsMonitoring, OpenAPI ingest endpoints, i18n format, help monitoraggio
...
Il commit 372ccb5 aveva incluso versioni con Edit falliti (ancore errate):
- AuditController::controlsMonitoring ora effettivamente presente (era 501 in prod)
- ServicesController::openapi ora espone incidents-ingest/evidence-ingest/assets-ingest/controls-monitoring
- i18n.js: chiavi nel formato corretto {it,en} (risks.fair_tab/kri_tab, assets.import_btn, audit.monitoring_tab)
- help.js: sezione Monitoraggio Continuo in reports
Verificato in prod: openapi 4/4, controlsMonitoring/fairRegister/kri tutti 200.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 10:02:47 +02:00
DevEnv nis2-agile and Claude Opus 4.7
4a85abeb3b
[DOCS] Help online + i18n IT/EN + product_knowledge AI per Fasi 2-5 (v1.6.1)
...
Aggiornamento documentazione obbligatorio post-feature (CLAUDE.md agent workflow):
- public/js/help.js: estesa sezione 'settings' con 5 nuovi heading:
Sessioni Attive (Fase 2), Preferenze utente (Fase 4), Password dimenticata
(Fase 3), Cambio organizzazione multi-tenant (Fase 3), Branding white-label
(Fase 5, solo super_admin/consulente). Riscrittura Sicurezza Account con
dettaglio sessions UI.
- public/js/i18n.js: aggiunte 60+ chiavi IT/EN per sessions.*, pwreset.*,
tenant.*, preferences.*, impersonate.*, branding.*, settings.* (preferences
+ branding).
- AgileHub product_knowledge: PUT /ai/products/NIS2/card (id=914) con
description + 11 scope tag + target_buyer + free_markdown completo
(target, moduli, auth/security Fasi 1-5, servizi B2B, AI/RAG, stack,
multi-tenancy, GDPR). Sostituisce card vuota precedente.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-29 13:50:06 +02:00
DevEnv nis2-agile and Claude Sonnet 4.6
c52766953d
[FEAT] Help online feedback, traduzioni IT/EN, AI system prompt aggiornato
...
- help.js: nuova sezione 'feedback' con 6 sotto-sezioni (come usare FAB,
risposta AI, password gate, le mie segnalazioni, worker autonomo, consigli)
- i18n.js: 30 chiavi IT/EN per tutto il sistema feedback
- AIService::callAPI: system prompt esteso con lista completa moduli NIS2 Agile
- AIService::classifyFeedback: system prompt NIS2-aware
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-10 09:05:12 +01:00
DevEnv nis2-agile and Claude Sonnet 4.6
89fd201bc2
[AI+HELP+I18N] Help workflow, traduzioni IT/EN, schema 5 livelli AI
...
- help.js: aggiunta sezione workflow (Compliance Journey) + pageMap entry
- i18n.js: 16 chiavi IT/EN per workflow (fasi, stati, etichette)
- docs/AI_LEVELS_SCHEMA.md: schema architettura 5 livelli AI con privacy matrix
L1 Guida (safe), L2 Operativo, L3 Aziendale (anonimizzato), L4 Cross-Org (k-anonymity), L5 Normativo
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-09 08:05:36 +01:00
DevEnv nis2-agile and Claude Sonnet 4.6
1bfca3fbe3
[DOCS+I18N] Guida aggiornata, i18n idle timeout, 3 documenti commerciali
...
- help.js: aggiornate sezioni per idle timeout, banner AI dismissible, matrice rischi real-time
- i18n.js: aggiunte 5 chiavi session.* per idle timeout (IT/EN)
- common.js: _showIdleWarning() usa I18n.t() per testi IT/EN
- docs/commercial/scheda-commerciale.html: scheda A4 stampabile (problema/soluzione, moduli, AI, target)
- docs/commercial/scheda-tecnica.html: specifiche stack, architettura, API, DB, sicurezza, deploy
- docs/commercial/presentazione.html: presentazione 10 slide completa (contesto, moduli, AI, compliance, ROI, roadmap)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-20 12:43:17 +01:00
AdminGit2026 and Claude Opus 4.6
52fd45fac9
[FEAT] i18n IT/EN, Help Online contestuale, pagina Architettura
...
- i18n.js: sistema traduzioni IT/EN con ~150 chiavi, localStorage, data-i18n
- help.js: help contestuale per 10 pagine con riferimenti NIS2
- architecture.html: descrizione architettura sistema completa
- common.js: language toggle sidebar (IT/EN), link Architettura, icone
- Integrato i18n + help in tutte le 14 pagine app + 3 admin
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 08:34:37 +01:00