[FEAT] UI frontend gap competitivi + help/i18n + OpenAPI + scorecard EVIX
UI delle 4 feature backend (ora usabili dagli utenti, non solo via API): - risks.html: vista 'Quantitativo (FAIR)' con form + istogramma distribuzione ALE + registro portafoglio; vista 'KRI' con dashboard semafori green/amber/red + CRUD - reports.html: tab 'Monitoraggio Continuo' con semafori freschezza controlli (healthy/warning/stale/failing) + copertura - assets.html: bottone 'Importa' CSV/CMDB con parsing client + anteprima + scoring auto GV.OC-04 - api.js: metodi computeFair/getFairRegister/listKri/createKri/updateKri/importAssets/getControlsMonitoring Trasversale: - help.js: sezioni guida FAIR+KRI (risks), import CMDB (assets), monitoraggio continuo (reports) - i18n.js: chiavi IT/EN (risks.fair_tab, risks.kri_tab, assets.import_btn, audit.monitoring_tab) - ServicesController::openapi esteso con incidents-ingest/evidence-ingest/assets-ingest/controls-monitoring + securityScheme ApiKeyAuth - AuditController::controlsMonitoring (versione JWT per la UI) + route audit/controlsMonitoring - EVIX scorecard: gap P1/P2 marcati chiusi (backend), roadmap aggiornata Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
edf0394616
commit
372ccb5ec1
@@ -200,6 +200,12 @@ class NIS2API {
|
||||
deleteRisk(id) { return this.del(`/risks/${id}`); }
|
||||
getRiskMatrix() { return this.get('/risks/matrix'); }
|
||||
aiSuggestRisks() { return this.post('/risks/ai-suggest', {}); }
|
||||
// FAIR quantitativo + KRI (P2)
|
||||
computeFair(id, data) { return this.post(`/risks/${id}/fair`, data); }
|
||||
getFairRegister() { return this.get('/risks/fairRegister'); }
|
||||
listKri() { return this.get('/risks/kri'); }
|
||||
createKri(data) { return this.post('/risks/kri', data); }
|
||||
updateKri(id, data) { return this.put(`/risks/kri/${id}`, data); }
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
// Incidents
|
||||
@@ -260,6 +266,8 @@ class NIS2API {
|
||||
getScoringGrid() { return this.get('/assets/scoringGrid'); }
|
||||
scoreAsset(id, criteria) { return this.post(`/assets/${id}/score`, { criteria }); }
|
||||
listRelevantSystems() { return this.get('/assets/relevantSystems'); }
|
||||
importAssets(data) { return this.post('/assets/import', data); } // P2 import CMDB/CSV
|
||||
getControlsMonitoring() { return this.get('/audit/controlsMonitoring'); } // P1 continuous control monitoring (JWT)
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
// Audit
|
||||
|
||||
Reference in New Issue
Block a user