Reperti prioritari per il team
Sintesi azionabile dei reperti emersi dal recupero (21 domini di regole, 489 regole, 22 flussi). Rilievi di
documentazione — il codice NON è stato modificato. Confidenza SUPPORTED salvo diversa indicazione;
da confermare e triare col team. Ordinati per severità.
🔴 Sicurezza
| ID | Reperto | Dove | Impatto |
|---|---|---|---|
| SEC-001 | Credenziali Oracle in chiaro committate | CASSANDRA/Web.config (+ altri app.config) |
Segreti nella storia Git |
| TD-008 | Grant UI non ri-verificati oltre il confine .NET Remoting/WCF — sistemico, 9 domini | BR-CEN-001, BR-QC-012, BR-BLK-025, BR-CHK-002, BR-RPT-003, BR-DOC-029, BR-EXP-002, BR-PRJ-024, BR-GLB-017 |
Operazioni riservate eseguibili da chiamanti server-side/integrazione (bypass autorizzazione) |
| TD-006 | Validazioni solo-UI non ripetute in BL/WCF | es. BR-BOOK-003 vs WCF BR-BOOK-021; BR-QC-014 |
Integrità dati aggirabile via canali non-UI |
🟠 Difetti probabili (VERIFIED salvo nota)
| ID | Difetto | Dove |
|---|---|---|
BR-CHK-013 |
DeleteHistoryByCheckID(21) hard-coded eseguito a ogni Page_Load (anche in lettura, senza grant): cancella lo storico del check id 21 |
CheckItemDetail.ascx.vb:395-396 |
BR-CHK-012 |
Insert passa BuildingID due volte → ROOM_ID salvato = BUILDING_ID (vano errato) sul path UI |
CheckItem_BL.vb:90-108 |
BR-CHK-014 |
CHK_FINALDELETECHECKITEM invocata dal DAL ma assente dal DB → fallimento runtime (PLS-00201) — SUPPORTED |
CheckItem_DAL.vb:151 |
BR-PROP-029 |
Trigger CNT_EDIFICI: ramo DELETING usa :NEW.ID_EDIFICIO (NULL in DELETE) → binding tenant non rimosso |
trigger CNT_EDIFICI |
BR-BIM-011 |
Guardia ORA-20000 su UPDATE = dead code (trigger solo su INSERT) |
trigger BIM_PROJECTS |
BR-ACC-006 |
ALTER SESSION NLS non ripristinato → landmine sul connection pool |
WRKACC_* |
BR-STK-025/009 |
STK_ADDITEMMOVE può portare la giacenza negativa; DateMove ignorata (MOVE_DATE=SYSDATE) |
Stock DAL / proc |
BR-ACC-019 |
Discrepanza codice↔DB su WRKACC_CLOSESAL (param PSTATUS) |
WorkAccounting DAL |
BR-GLB-018 |
Unicità nome/tenant solo-UI: nessun UNIQUE su GLOBAL_OBJECTS.NAME → duplicati inseribili via remoting/bulk |
RPS_GETMOBJECTBYCODEANDTNT / catalogo |
BR-GLB-007 |
Trigger code-gen con COUNT/MAX(ID_OBJ) non concorrenza-safe (race su bulk) + doppio incremento COUNT |
trigger GLOBAL_OBJECTS_INSERT |
BR-GLB-009 |
RPS_UPDATEMOBJECTSSTATUS: INSERT storia incondizionato, chiusura condizionata → righe ENDDATE IS NULL multiple ri-applicando lo stesso stato |
RPS_UPDATEMOBJECTSSTATUS |
🟡 Debito architetturale
- Nessun test automatico né CI (TD-004): nessuna rete di sicurezza per la migrazione net8 (
*XNET) in corso. - Deploy senza orchestratore committato (TD-003):
ConnectionsService+ drop deploy-time. - ASMX legacy (TD-005) e stack auth duale (TD-001,
ORA_ASPNET_*+ OpenIddict). - Pattern ripetuti (candidati a refactoring condiviso):
WHEN OTHERSche inghiotte l'eccezione; full-replace dei figli su update;PRP_MANAGEENTITYcome upsert generico onnipresente.
Sovrapposizioni di dominio (tassonomia)
- Document ↔ ECM: stesso DocCenter /
DOCS_*(BR-DOC-017 ≡ BR-ECM-019). - Book ≡ Booking: stesso sottosistema
BOOK_*.
Ogni voce ha evidenza
file:riga/oggetto DB nelle rispettive pagineBR-*e nei reportdocs/_evidence/.