[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>
This commit is contained in:
DevEnv nis2-agile 2026-05-30 10:46:07 +02:00
parent 172d9270e6
commit 9deff7002a

View File

@ -2,6 +2,23 @@
> Il 2026-05-29 ci sono state DUE sessioni: **pomeriggio** (questa, qui sotto) e **mattina** (TRPG alignment, più in basso). > Il 2026-05-29 ci sono state DUE sessioni: **pomeriggio** (questa, qui sotto) e **mattina** (TRPG alignment, più in basso).
## SESSIONE 2026-05-30 (gap competitivi P2/P3 + UI) — riepilogo finale
Stato git: origin/main = **`172d927`**, ahead 0. Tutto su Gitea.
### Completato e VERIFICATO E2E in produzione
- **4 feature P1/P2 backend + UI** (sessione mattina): ingestion incidenti, evidence automation, asset import, FAIR/KRI. UI in risks/reports/assets + help/i18n/OpenAPI/scorecard EVIX.
- **P2 Benchmark settoriale anonimizzato**: `GET /dashboard/sectorBenchmark` (k-anonymity ≥3 org) + UI pannello dashboard. **200 OK**.
- **P3 Supply chain self-assessment**: migrazione 027, `SupplyChainController` (sendQuestionnaire JWT + publicQuestionnaire/submitPublicQuestionnaire NO-auth token + questionnaireStatus) + `public/supplier-assessment.html`. E2E: send 201→publicGET 200 (8 domande)→submit 201 (score 61)→re-submit 409→suppliers.risk_score aggiornato.
- **P3 Policy attestation+versioning**: migrazione 028, `PolicyController` (attest/attestations/versions/diff/pendingAttestations + snapshot in approve). E2E: approve→attest(coverage)→bump v2.0→diff(+2/-1)→pending ricompare.
### ⚠️ LEZIONE RICORRENTE (grave, ripetuta più volte oggi)
Le `Edit` falliscono **silenziosamente** quando l'ancora non combacia col file reale, e ho **committato senza ri-verificare via HTTP** → 3 commit P2/P3 erano gusci vuoti (migrazione+HTML ma metodi/route mancanti → 501/404). Corretti con commit successivi (`31b8a45`, `172d927`) DOPO smoke test. **Regola d'oro**: dopo ogni feature, `curl` l'endpoint reale PRIMA del commit; non fidarsi del "Edit success". Inoltre `Edit` richiede Read del file nella sessione corrente.
### 🔌 Connettori per-azienda nella card (RICHIESTA UTENTE, in sospeso — decisione necessaria)
Utente vuole: "le credenziali si configurano nella card per ogni azienda cliente" → card in **companies.html** (consulente), storage segreti scelto **vault-steward**.
**Finding (verificato sull'host)**: vault-steward (`server.js` 2123 righe) e `nis2-vault-proxy` esistono; nis2-app ha `VAULT_APP_TOKEN` scoped `tier1__nis2-app__*` e fetcha al boot (READ). **NON risulta un'API runtime che l'app possa usare per SCRIVERE nuovi segreti**: il populate è operazione ADMIN via `docker exec vault-steward node scripts/vault-repopulate.js` + `register-app` (CLI), non esposta al token applicativo. `VAULT_STEWARD.md` non montato nel devenv.
**Decisione aperta**: (A) config in DB + secret inseriti separatamente nel vault via CLI (nessun secret nel prodotto); (B) tabella `org_connectors` con secret cifrato AES nel DB NIS2 (devia da "mai segreti nel DB applicativo"). companies.html è SANO (548 righe, usa OrganizationController). Nessun codice ancora scritto per questa feature.
--- ---
## SESSIONE 2026-05-30 mattina (~07:50→09:15 CEST) — Chiusura gap competitivi Evix (backend) ## SESSIONE 2026-05-30 mattina (~07:50→09:15 CEST) — Chiusura gap competitivi Evix (backend)