[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>
This commit is contained in:
DevEnv nis2-agile
2026-06-15 23:10:28 +02:00
co-authored by Claude Opus 4.8
parent c7d36c910f
commit c5b00ccd96
48 changed files with 1597 additions and 122 deletions
+16
View File
@@ -89,6 +89,7 @@ $controllerMap = [
'org-roles' => 'OrgRoleController', // A4 Fase 4.1 — Organigramma (ruoli/gerarchia, Art.23 governance)
'competences' => 'CompetenceController', // A4 Fase 4.2 — Competenze (skill, requisiti ruolo, gap, alert->azione)
'raci' => 'RaciController', // A4 Fase 4.3 — Matrice RACI + link m2m (procedure/inventario/rischi/misure)
'review-schedule' => 'ReviewScheduleController', // A4 Fase 4.4 — Scadenziario centralizzato (revisioni periodiche GV.PO-02/GV.SC-07/PR.AT/DE.CM)
'assessments' => 'AssessmentController',
'acn-gap' => 'AcnAssessmentController', // Gap Analysis ACN (Det. 164179/2025, misure/requisiti)
'isms' => 'IsmsModelController', // Modello Organizzativo SGSI (ISO 27001/27017/27018 + SoA)
@@ -235,6 +236,19 @@ $actionMap = [
'DELETE:link' => 'unlink',
],
// ── ReviewScheduleController — Scadenziario centralizzato (A4 Fase 4.4) ──
// Revisioni periodiche (GV.PO-02, GV.SC-07, PR.AT, DE.CM). Status calcolato live.
// sync = upsert idempotente da policies/compliance_controls/risk_treatments (org-scoped).
// I DELETE usano {id} numerico in URL → nessun body necessario.
'review-schedule' => [
'GET:list' => 'list',
'POST:create' => 'create',
'POST:sync' => 'sync',
'PUT:{id}' => 'update',
'DELETE:{id}' => 'delete',
'POST:{id}/complete' => 'complete',
],
// ── AssessmentController ────────────────────────
'assessments' => [
'GET:list' => 'list',
@@ -375,6 +389,8 @@ $actionMap = [
// Campagne questionario (Fase 2): cruscotto + invio template a fornitore
'GET:campaigns' => 'campaigns',
'POST:{id}/campaigns' => 'createCampaign', // {id} = supplier id
// Stakeholder estesi (A4 Fase 4.5): vista di sintesi fornitori+clienti+partner (GV.SC-02). Riusa suppliers.
'GET:stakeholderMap' => 'stakeholderMap', // URL: /api/supply-chain/stakeholder-map
'GET:{id}' => 'get',
'PUT:{id}' => 'update',
'DELETE:{id}' => 'delete',