From c7d36c910fec423350eb5d8f5e395d29334c8893 Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Mon, 15 Jun 2026 22:46:15 +0200 Subject: [PATCH] [DOCS] A4 design: Fase 4.3 RACI segnata LIVE + rettifica nomi reali (capa_actions/non_conformities, object_id polimorfico anti-IDOR) Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/DESIGN_A4_RELATIONAL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DESIGN_A4_RELATIONAL.md b/docs/DESIGN_A4_RELATIONAL.md index 7c49ce8..405978a 100644 --- a/docs/DESIGN_A4_RELATIONAL.md +++ b/docs/DESIGN_A4_RELATIONAL.md @@ -3,7 +3,7 @@ > Stato: **IN CORSO**. Contesto: segnalazioni Simon Fattori, punti **2, 3, 4, 5, 6, 7** (accolti in A4). Data: 2026-06-15. > È l'epic più grande → da realizzare a **FASI**. Ancoraggio normativo verificato (Det. ACN 164179/2025 + D.Lgs. 138/2024). Vedi `reference-dlgs-articles`, `DESIGN_A2_ONBOARDING.md`. > -> **AVANZAMENTO**: ✅ **4.1 Organigramma** (migration `041_org_roles.sql`, `OrgRoleController`, `organigramma.html`) — LIVE. ✅ **4.2 Competenze** (migration `042_competences.sql`: `skills`/`role_skills`/`user_skills`/`skill_course_map`; `CompetenceController`; `competenze.html`) — LIVE. ⏳ 4.3 RACI · 4.4 scadenziario · 4.5 stakeholder. +> **AVANZAMENTO**: ✅ **4.1 Organigramma** (`041_org_roles.sql`, `OrgRoleController`, `organigramma.html`) — LIVE. ✅ **4.2 Competenze** (`042_competences.sql`: `skills`/`role_skills`/`user_skills`/`skill_course_map`; `CompetenceController`; `competenze.html`) — LIVE. ✅ **4.3 Matrice RACI** (`043_raci.sql`: `raci_assignments` + `procedure_inventory`/`procedure_risk`/`inventory_risk`/`risk_measure`; `RaciController`; `raci.html`+`raci.js`; object_id polimorfico anti-IDOR app-layer) — LIVE (commit `b4d47d5`). ⏳ 4.4 scadenziario · 4.5 stakeholder. > > 🔴 **RETTIFICA NOMI REALI (verificata sul codice)**: questo design parlava di una tabella **`corrective_actions`** che **NON ESISTE**. La tabella delle azioni reale è **`capa_actions`** (mig.004), **figlia obbligatoria** di **`non_conformities`** (NCR) via `ncr_id NOT NULL`, e **non ha** una colonna `source_type`. L'alert "gap → azione" (impl. in 4.2) quindi **NON** crea `corrective_actions`/`source_type`: crea una **`non_conformities`** ancorata al gap (`source='management_review'`, `source_entity_type='competence_gap'`, `source_entity_id=role_skills.id`) + una **`capa_actions`** figlia. Le menzioni di `corrective_actions`/`source_type` qui sotto vanno lette in questo senso.